mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-26 20:30:41 +00:00
Bug 1267910 - Part 3: Add test cases for add() and getCookiesFromHost() of the nsICookieManager2. r=jdm
--HG-- extra : rebase_source : c81c3692ee7203e0023e7e2aab42c5ca1cad1b87
This commit is contained in:
parent
ad550d017f
commit
bfd4ca4961
196
netwerk/cookie/test/unit/test_bug1267910.js
Normal file
196
netwerk/cookie/test/unit/test_bug1267910.js
Normal file
@ -0,0 +1,196 @@
|
||||
/*
|
||||
* Bug 1267910 - Add test cases for the backward compatiability and originAttributes
|
||||
* of nsICookieManager2.
|
||||
*/
|
||||
|
||||
var {utils: Cu, interfaces: Ci, classes: Cc} = Components;
|
||||
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
const BASE_URL = "http://example.org/";
|
||||
|
||||
const COOKIE = {
|
||||
host: BASE_URL,
|
||||
path: "/",
|
||||
name: "test1",
|
||||
value: "yes",
|
||||
isSecure: false,
|
||||
isHttpOnly: false,
|
||||
isSession: true,
|
||||
expiry: 2145934800,
|
||||
};
|
||||
|
||||
const COOKIE_OA_DEFAULT = {
|
||||
host: BASE_URL,
|
||||
path: "/",
|
||||
name: "test0",
|
||||
value: "yes0",
|
||||
isSecure: false,
|
||||
isHttpOnly: false,
|
||||
isSession: true,
|
||||
expiry: 2145934800,
|
||||
originAttributes: {},
|
||||
};
|
||||
|
||||
const COOKIE_OA_1 = {
|
||||
host: BASE_URL,
|
||||
path: "/",
|
||||
name: "test1",
|
||||
value: "yes1",
|
||||
isSecure: false,
|
||||
isHttpOnly: false,
|
||||
isSession: true,
|
||||
expiry: 2145934800,
|
||||
originAttributes: {userContextId: 1},
|
||||
};
|
||||
|
||||
function checkCookie(cookie, cookieObj) {
|
||||
for (let prop of Object.keys(cookieObj)) {
|
||||
if (prop === "originAttributes") {
|
||||
ok(ChromeUtils.isOriginAttributesEqual(cookie[prop], cookieObj[prop]),
|
||||
"Check cookie: " + prop);
|
||||
} else {
|
||||
equal(cookie[prop], cookieObj[prop], "Check cookie: " + prop);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function countCookies(enumerator) {
|
||||
let cnt = 0;
|
||||
|
||||
while (enumerator.hasMoreElements()) {
|
||||
cnt++;
|
||||
enumerator.getNext();
|
||||
}
|
||||
|
||||
return cnt;
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
// Allow all cookies.
|
||||
Services.prefs.setIntPref("network.cookie.cookieBehavior", 0);
|
||||
|
||||
// Enable user context id
|
||||
Services.prefs.setBoolPref("privacy.userContext.enabled", true);
|
||||
|
||||
add_test(test_backward_compatiability);
|
||||
add_test(test_originAttributes);
|
||||
|
||||
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for backward compatiablility that APIs works correctly without
|
||||
* originAttributes.
|
||||
*/
|
||||
function test_backward_compatiability() {
|
||||
// Clear cookies.
|
||||
Services.cookies.removeAll();
|
||||
|
||||
// Call Add() to add a cookie without originAttributes
|
||||
Services.cookies.add(COOKIE.host,
|
||||
COOKIE.path,
|
||||
COOKIE.name,
|
||||
COOKIE.value,
|
||||
COOKIE.isSecure,
|
||||
COOKIE.isHttpOnly,
|
||||
COOKIE.isSession,
|
||||
COOKIE.expiry);
|
||||
|
||||
// Call getCookiesFromHost() to get cookies without originAttributes
|
||||
let enumerator = Services.cookies.getCookiesFromHost(BASE_URL);
|
||||
|
||||
ok(enumerator.hasMoreElements(), "Cookies available");
|
||||
let foundCookie = enumerator.getNext().QueryInterface(Ci.nsICookie2);
|
||||
|
||||
checkCookie(foundCookie, COOKIE);
|
||||
|
||||
ok(!enumerator.hasMoreElements(), "We should get only one cookie");
|
||||
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
/*
|
||||
* Test for originAttributes.
|
||||
*/
|
||||
function test_originAttributes() {
|
||||
// Clear cookies.
|
||||
Services.cookies.removeAll();
|
||||
|
||||
// Add a cookie for default originAttributes.
|
||||
Services.cookies.add(COOKIE_OA_DEFAULT.host,
|
||||
COOKIE_OA_DEFAULT.path,
|
||||
COOKIE_OA_DEFAULT.name,
|
||||
COOKIE_OA_DEFAULT.value,
|
||||
COOKIE_OA_DEFAULT.isSecure,
|
||||
COOKIE_OA_DEFAULT.isHttpOnly,
|
||||
COOKIE_OA_DEFAULT.isSession,
|
||||
COOKIE_OA_DEFAULT.expiry,
|
||||
COOKIE_OA_DEFAULT.originAttributes);
|
||||
|
||||
// Get cookies for default originAttributes.
|
||||
let enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_DEFAULT.originAttributes);
|
||||
|
||||
// Check that do we get cookie correctly.
|
||||
ok(enumerator.hasMoreElements(), "Cookies available");
|
||||
let foundCookie = enumerator.getNext().QueryInterface(Ci.nsICookie2);
|
||||
checkCookie(foundCookie, COOKIE_OA_DEFAULT);
|
||||
|
||||
// We should only get one cookie.
|
||||
ok(!enumerator.hasMoreElements(), "We should get only one cookie");
|
||||
|
||||
// Get cookies for originAttributes with user context id 1.
|
||||
enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_1.originAttributes);
|
||||
|
||||
// Check that we will not get cookies if the originAttributes is different.
|
||||
ok(!enumerator.hasMoreElements(), "No cookie should be here");
|
||||
|
||||
// Add a cookie for originAttributes with user context id 1.
|
||||
Services.cookies.add(COOKIE_OA_1.host,
|
||||
COOKIE_OA_1.path,
|
||||
COOKIE_OA_1.name,
|
||||
COOKIE_OA_1.value,
|
||||
COOKIE_OA_1.isSecure,
|
||||
COOKIE_OA_1.isHttpOnly,
|
||||
COOKIE_OA_1.isSession,
|
||||
COOKIE_OA_1.expiry,
|
||||
COOKIE_OA_1.originAttributes);
|
||||
|
||||
// Get cookies for originAttributes with user context id 1.
|
||||
enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_1.originAttributes);
|
||||
|
||||
// Check that do we get cookie correctly.
|
||||
ok(enumerator.hasMoreElements(), "Cookies available");
|
||||
foundCookie = enumerator.getNext().QueryInterface(Ci.nsICookie2);
|
||||
checkCookie(foundCookie, COOKIE_OA_1);
|
||||
|
||||
// We should only get one cookie.
|
||||
ok(!enumerator.hasMoreElements(), "We should get only one cookie");
|
||||
|
||||
// Check that add a cookie will not affect cookies in different originAttributes.
|
||||
enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_DEFAULT.originAttributes);
|
||||
equal(countCookies(enumerator), 1, "We should get only one cookie for default originAttributes");
|
||||
|
||||
// Remove a cookie for originAttributes with user context id 1.
|
||||
Services.cookies.remove(COOKIE_OA_1.host, COOKIE_OA_1.name, COOKIE_OA_1.path,
|
||||
false, COOKIE_OA_1.originAttributes);
|
||||
|
||||
// Check that remove will not affect cookies in default originAttributes.
|
||||
enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_DEFAULT.originAttributes);
|
||||
equal(countCookies(enumerator), 1, "Get one cookie for default originAttributes.");
|
||||
|
||||
// Check that should be no cookie for originAttributes with user context id 1.
|
||||
enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_1.originAttributes);
|
||||
equal(countCookies(enumerator), 0, "No cookie shold be here");
|
||||
|
||||
// Remove a cookie for default originAttributes.
|
||||
Services.cookies.remove(COOKIE_OA_DEFAULT.host, COOKIE_OA_DEFAULT.name, COOKIE_OA_DEFAULT.path,
|
||||
false, COOKIE_OA_DEFAULT.originAttributes);
|
||||
|
||||
// Check remove() works correctly for default originAttributes.
|
||||
enumerator = Services.cookies.getCookiesFromHost(BASE_URL, COOKIE_OA_DEFAULT.originAttributes);
|
||||
equal(countCookies(enumerator), 0, "No cookie shold be here");
|
||||
|
||||
run_next_test();
|
||||
}
|
@ -5,5 +5,6 @@ skip-if = toolkit == 'gonk'
|
||||
|
||||
[test_bug643051.js]
|
||||
[test_bug1155169.js]
|
||||
[test_bug1267910.js]
|
||||
[test_parser_0001.js]
|
||||
[test_parser_0019.js]
|
||||
|
Loading…
x
Reference in New Issue
Block a user