/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ function count_IsPartitioned(bool) { var cookieCountIsPartitioned = 0; Services.cookies.cookies.forEach(cookie => { if (cookie.isPartitioned === bool) { cookieCountIsPartitioned += 1; } }); return cookieCountIsPartitioned; } add_task(async function test_IsPartitioned() { let profile = do_get_profile(); let dbFile = do_get_cookie_file(profile); Assert.ok(!dbFile.exists()); let schema13db = new CookieDatabaseConnection(dbFile, 13); let now = Date.now() * 1000; // date in microseconds // add some non-partitioned cookies for key let nUnpartitioned = 5; let hostNonPartitioned = "cookie-host-non-partitioned.com"; for (let i = 0; i < nUnpartitioned; i++) { let cookie = new Cookie( "cookie-name" + i, "cookie-value" + i, hostNonPartitioned, "/", // path now, // expiry now, // last accessed now, // creation time false, // session false, // secure false, // http-only false, // inBrowserElement {} // OA ); schema13db.insertCookie(cookie); } // add some partitioned cookies let nPartitioned = 5; let hostPartitioned = "host-partitioned.com"; for (let i = 0; i < nPartitioned; i++) { let cookie = new Cookie( "cookie-name" + i, "cookie-value" + i, hostPartitioned, "/", // path now, // expiry now, // last accessed now, // creation time false, // session false, // secure false, // http-only false, // inBrowserElement { partitionKey: "(https,example.com)" } ); schema13db.insertCookie(cookie); } Assert.equal(do_count_cookies_in_db(schema13db.db), 10); // Startup the cookie service and check the cookie counts by OA let cookieCountNonPart = Services.cookies.countCookiesFromHost(hostNonPartitioned); // includes expired cookies Assert.equal(cookieCountNonPart, nUnpartitioned); let cookieCountPart = Services.cookies.getCookiesFromHost(hostPartitioned, { partitionKey: "(https,example.com)", }).length; // includes expired cookies Assert.equal(cookieCountPart, nPartitioned); // Startup the cookie service and check the cookie counts by isPartitioned (IsPartitioned()) Assert.equal(count_IsPartitioned(false), nUnpartitioned); Assert.equal(count_IsPartitioned(true), nPartitioned); schema13db.close(); });