gecko/extensions/cookie/test/unit/test_permmanager_expiration.js

61 lines
1.8 KiB
JavaScript
Raw Normal View History

const Cc = Components.classes;
const Ci = Components.interfaces;
// setup a profile directory
var dir = do_get_profile();
// initialize the permission manager service
var pm = Cc["@mozilla.org/permissionmanager;1"]
.getService(Ci.nsIPermissionManager);
var ios = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService);
var permURI = ios.newURI("http://example.com", null, null);
function run_test() {
// add a permission with *now* expiration
pm.add(permURI, "test/expiration-perm-exp", 1, pm.EXPIRE_TIME, (new Date()).getTime());
// add a permission with future expiration (100 milliseconds)
pm.add(permURI, "test/expiration-perm-exp2", 1, pm.EXPIRE_TIME, (new Date()).getTime() + 100);
// add a permission with future expiration (10000 milliseconds)
pm.add(permURI, "test/expiration-perm-exp3", 1, pm.EXPIRE_TIME, (new Date()).getTime() + 10000);
// add a permission without expiration
pm.add(permURI, "test/expiration-perm-nexp", 1, pm.EXPIRE_NEVER, 0);
2009-10-16 16:17:43 -07:00
// check that the second two haven't expired yet
do_check_eq(1, pm.testPermission(permURI, "test/expiration-perm-exp3"));
do_check_eq(1, pm.testPermission(permURI, "test/expiration-perm-nexp"));
2009-10-16 16:17:43 -07:00
// ... and the first one has
do_test_pending();
do_timeout(10, verifyFirstExpiration);
2009-10-16 16:17:43 -07:00
// ... and that the short-term one will
do_test_pending();
do_timeout(200, verifyExpiration);
// clean up
do_test_pending();
do_timeout(300, end_test);
}
2009-10-16 16:17:43 -07:00
function verifyFirstExpiration() {
do_check_eq(0, pm.testPermission(permURI, "test/expiration-perm-exp"));
do_test_finished();
}
function verifyExpiration() {
do_check_eq(0, pm.testPermission(permURI, "test/expiration-perm-exp2"));
do_test_finished();
}
function end_test() {
// clean up
pm.removeAll();
do_test_finished();
}