diff options
Diffstat (limited to 'toolkit/forgetaboutsite')
9 files changed, 1 insertions, 829 deletions
diff --git a/toolkit/forgetaboutsite/moz.build b/toolkit/forgetaboutsite/moz.build index 73bb42b0b..9f77df751 100644 --- a/toolkit/forgetaboutsite/moz.build +++ b/toolkit/forgetaboutsite/moz.build @@ -4,12 +4,4 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] -XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini'] - -EXTRA_JS_MODULES += [ - 'ForgetAboutSite.jsm', -] - -with Files('**'): - BUG_COMPONENT = ('Toolkit', 'Forget About Site') +EXTRA_JS_MODULES += ['ForgetAboutSite.jsm'] diff --git a/toolkit/forgetaboutsite/test/browser/.eslintrc.js b/toolkit/forgetaboutsite/test/browser/.eslintrc.js deleted file mode 100644 index c764b133d..000000000 --- a/toolkit/forgetaboutsite/test/browser/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -module.exports = { - "extends": [ - "../../../../testing/mochitest/browser.eslintrc.js" - ] -}; diff --git a/toolkit/forgetaboutsite/test/browser/browser.ini b/toolkit/forgetaboutsite/test/browser/browser.ini deleted file mode 100644 index 517d89d78..000000000 --- a/toolkit/forgetaboutsite/test/browser/browser.ini +++ /dev/null @@ -1,4 +0,0 @@ -[DEFAULT] -support-files = browser_clearplugindata.html - -[browser_clearplugindata.js] diff --git a/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.html b/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.html deleted file mode 100644 index b2bba12ce..000000000 --- a/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.html +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ ---> -<html> - <head> - <title>Plugin Clear Site Data clear by domain test</title> - - <embed id="plugin1" type="application/x-test" width="200" height="200"></embed> - - <script type="application/javascript"> - function testSteps() - { - var p = document.getElementById("plugin1"); - - p.setSitesWithData( - "foo.com:0:0," + - "bar.foo.com:0:0," + - "baz.foo.com:0:0," + - "bar.com:1:0," + - "[192.168.1.1]:0:0," + - "localhost:0:0" - ); - } - </script> - </head> - - <body></body> - -</html> diff --git a/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.js b/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.js deleted file mode 100644 index ca0d394c3..000000000 --- a/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.js +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -Components.utils.import("resource://gre/modules/ForgetAboutSite.jsm"); - -// Test clearing plugin data by domain using ForgetAboutSite. -const testURL = "http://mochi.test:8888/browser/toolkit/forgetaboutsite/test/browser/browser_clearplugindata.html"; - -const pluginHostIface = Ci.nsIPluginHost; -var pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost); -pluginHost.QueryInterface(pluginHostIface); - -var pluginTag; - -function stored(needles) { - var something = pluginHost.siteHasData(this.pluginTag, null); - if (!needles) - return something; - - if (!something) - return false; - - for (var i = 0; i < needles.length; ++i) { - if (!pluginHost.siteHasData(this.pluginTag, needles[i])) - return false; - } - return true; -} - -function setTestPluginEnabledState(newEnabledState, plugin) { - var oldEnabledState = plugin.enabledState; - plugin.enabledState = newEnabledState; - SimpleTest.registerCleanupFunction(function() { - plugin.enabledState = oldEnabledState; - }); -} - -add_task(function* () { - var tags = pluginHost.getPluginTags(); - - // Find the test plugin - for (var i = 0; i < tags.length; i++) - { - if (tags[i].name == "Test Plug-in") - { - pluginTag = tags[i]; - } - } - if (!pluginTag) { - ok(false, "Test Plug-in not available, can't run test"); - return; - } - setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, pluginTag); - yield BrowserTestUtils.openNewForegroundTab(gBrowser, testURL); - - // Set data for the plugin after the page load. - yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() { - content.wrappedJSObject.testSteps(); - }); - - ok(stored(["192.168.1.1", "foo.com", "nonexistent.foo.com", "bar.com", "localhost"]), - "Data stored for sites"); - - // Clear data for "foo.com" and its subdomains. - yield ForgetAboutSite.removeDataFromDomain("foo.com"); - - ok(stored(["bar.com", "192.168.1.1", "localhost"]), "Data stored for sites"); - ok(!stored(["foo.com"]), "Data cleared for foo.com"); - ok(!stored(["bar.foo.com"]), "Data cleared for subdomains of foo.com"); - - // Clear data for "bar.com" using a subdomain. - yield ForgetAboutSite.removeDataFromDomain("foo.bar.com"); - ok(!stored(["bar.com"]), "Data cleared for bar.com"); - - // Clear data for "192.168.1.1". - yield ForgetAboutSite.removeDataFromDomain("192.168.1.1"); - ok(!stored(["192.168.1.1"]), "Data cleared for 192.168.1.1"); - - // Clear data for "localhost". - yield ForgetAboutSite.removeDataFromDomain("localhost"); - ok(!stored(null), "All data cleared"); - - gBrowser.removeCurrentTab(); -}); diff --git a/toolkit/forgetaboutsite/test/unit/.eslintrc.js b/toolkit/forgetaboutsite/test/unit/.eslintrc.js deleted file mode 100644 index fee088c17..000000000 --- a/toolkit/forgetaboutsite/test/unit/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -module.exports = { - "extends": [ - "../../../../testing/xpcshell/xpcshell.eslintrc.js" - ] -}; diff --git a/toolkit/forgetaboutsite/test/unit/head_forgetaboutsite.js b/toolkit/forgetaboutsite/test/unit/head_forgetaboutsite.js deleted file mode 100644 index d3828d5d8..000000000 --- a/toolkit/forgetaboutsite/test/unit/head_forgetaboutsite.js +++ /dev/null @@ -1,31 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -var Cc = Components.classes; -var Ci = Components.interfaces; -var Cu = Components.utils; - -var dirSvc = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties); -var profileDir = do_get_profile(); - -/** - * Removes any files that could make our tests fail. - */ -function cleanUp() -{ - let files = [ - "places.sqlite", - "cookies.sqlite", - "signons.sqlite", - "permissions.sqlite" - ]; - - for (let i = 0; i < files.length; i++) { - let file = dirSvc.get("ProfD", Ci.nsIFile); - file.append(files[i]); - if (file.exists()) - file.remove(false); - } -} -cleanUp(); diff --git a/toolkit/forgetaboutsite/test/unit/test_removeDataFromDomain.js b/toolkit/forgetaboutsite/test/unit/test_removeDataFromDomain.js deleted file mode 100644 index d2db95e6a..000000000 --- a/toolkit/forgetaboutsite/test/unit/test_removeDataFromDomain.js +++ /dev/null @@ -1,647 +0,0 @@ -/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- - * vim: sw=2 ts=2 sts=2 - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * Test added with bug 460086 to test the behavior of the new API that was added - * to remove all traces of visiting a site. - */ - -// Globals - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/PlacesUtils.jsm"); -Cu.import("resource://gre/modules/ForgetAboutSite.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "Promise", - "resource://gre/modules/Promise.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "PlacesTestUtils", - "resource://testing-common/PlacesTestUtils.jsm"); - -const COOKIE_EXPIRY = Math.round(Date.now() / 1000) + 60; -const COOKIE_NAME = "testcookie"; -const COOKIE_PATH = "/"; - -const LOGIN_USERNAME = "username"; -const LOGIN_PASSWORD = "password"; -const LOGIN_USERNAME_FIELD = "username_field"; -const LOGIN_PASSWORD_FIELD = "password_field"; - -const PERMISSION_TYPE = "test-perm"; -const PERMISSION_VALUE = Ci.nsIPermissionManager.ALLOW_ACTION; - -const PREFERENCE_NAME = "test-pref"; - -// Utility Functions - -/** - * Creates an nsIURI object for the given string representation of a URI. - * - * @param aURIString - * The spec of the URI to create. - * @returns an nsIURI representing aURIString. - */ -function uri(aURIString) -{ - return Cc["@mozilla.org/network/io-service;1"]. - getService(Ci.nsIIOService). - newURI(aURIString, null, null); -} - -/** - * Asynchronously check a url is visited. - * - * @param aURI - * The URI. - * - * @return {Promise} - * @resolves When the check has been added successfully. - * @rejects JavaScript exception. - */ -function promiseIsURIVisited(aURI) -{ - let deferred = Promise.defer(); - PlacesUtils.asyncHistory.isURIVisited(aURI, function(unused, aIsVisited) { - deferred.resolve(aIsVisited); - }); - - return deferred.promise; -} - -/** - * Add a cookie to the cookie service. - * - * @param aDomain - */ -function add_cookie(aDomain) -{ - check_cookie_exists(aDomain, false); - let cm = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager2); - cm.add(aDomain, COOKIE_PATH, COOKIE_NAME, "", false, false, false, - COOKIE_EXPIRY, {}); - check_cookie_exists(aDomain, true); -} - -/** - * Checks to ensure that a cookie exists or not for a domain. - * - * @param aDomain - * The domain to check for the cookie. - * @param aExists - * True if the cookie should exist, false otherwise. - */ -function check_cookie_exists(aDomain, aExists) -{ - let cm = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager2); - let cookie = { - host: aDomain, - name: COOKIE_NAME, - path: COOKIE_PATH - } - let checker = aExists ? do_check_true : do_check_false; - checker(cm.cookieExists(cookie)); -} - -/** - * Adds a disabled host to the login manager. - * - * @param aHost - * The host to add to the list of disabled hosts. - */ -function add_disabled_host(aHost) -{ - check_disabled_host(aHost, false); - let lm = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - lm.setLoginSavingEnabled(aHost, false); - check_disabled_host(aHost, true); -} - -/** - * Checks to see if a host is disabled for storing logins or not. - * - * @param aHost - * The host to check if it is disabled. - * @param aIsDisabled - * True if the host should be disabled, false otherwise. - */ -function check_disabled_host(aHost, aIsDisabled) -{ - let lm = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - let checker = aIsDisabled ? do_check_false : do_check_true; - checker(lm.getLoginSavingEnabled(aHost)); -} - -/** - * Adds a login for the specified host to the login manager. - * - * @param aHost - * The host to add the login for. - */ -function add_login(aHost) -{ - check_login_exists(aHost, false); - let login = Cc["@mozilla.org/login-manager/loginInfo;1"]. - createInstance(Ci.nsILoginInfo); - login.init(aHost, "", null, LOGIN_USERNAME, LOGIN_PASSWORD, - LOGIN_USERNAME_FIELD, LOGIN_PASSWORD_FIELD); - let lm = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - lm.addLogin(login); - check_login_exists(aHost, true); -} - -/** - * Checks to see if a login exists for a host. - * - * @param aHost - * The host to check for the test login. - * @param aExists - * True if the login should exist, false otherwise. - */ -function check_login_exists(aHost, aExists) -{ - let lm = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - let count = { value: 0 }; - lm.findLogins(count, aHost, "", null); - do_check_eq(count.value, aExists ? 1 : 0); -} - -/** - * Adds a permission for the specified URI to the permission manager. - * - * @param aURI - * The URI to add the test permission for. - */ -function add_permission(aURI) -{ - check_permission_exists(aURI, false); - let pm = Cc["@mozilla.org/permissionmanager;1"]. - getService(Ci.nsIPermissionManager); - let ssm = Cc["@mozilla.org/scriptsecuritymanager;1"] - .getService(Ci.nsIScriptSecurityManager); - let principal = ssm.createCodebasePrincipal(aURI, {}); - - pm.addFromPrincipal(principal, PERMISSION_TYPE, PERMISSION_VALUE); - check_permission_exists(aURI, true); -} - -/** - * Checks to see if a permission exists for the given URI. - * - * @param aURI - * The URI to check if a permission exists. - * @param aExists - * True if the permission should exist, false otherwise. - */ -function check_permission_exists(aURI, aExists) -{ - let pm = Cc["@mozilla.org/permissionmanager;1"]. - getService(Ci.nsIPermissionManager); - let ssm = Cc["@mozilla.org/scriptsecuritymanager;1"] - .getService(Ci.nsIScriptSecurityManager); - let principal = ssm.createCodebasePrincipal(aURI, {}); - - let perm = pm.testExactPermissionFromPrincipal(principal, PERMISSION_TYPE); - let checker = aExists ? do_check_eq : do_check_neq; - checker(perm, PERMISSION_VALUE); -} - -/** - * Adds a content preference for the specified URI. - * - * @param aURI - * The URI to add a preference for. - */ -function add_preference(aURI) -{ - let deferred = Promise.defer(); - let cp = Cc["@mozilla.org/content-pref/service;1"]. - getService(Ci.nsIContentPrefService2); - cp.set(aURI.spec, PREFERENCE_NAME, "foo", null, { - handleCompletion: () => deferred.resolve() - }); - return deferred.promise; -} - -/** - * Checks to see if a content preference exists for the given URI. - * - * @param aURI - * The URI to check if a preference exists. - */ -function preference_exists(aURI) -{ - let deferred = Promise.defer(); - let cp = Cc["@mozilla.org/content-pref/service;1"]. - getService(Ci.nsIContentPrefService2); - let exists = false; - cp.getByDomainAndName(aURI.spec, PREFERENCE_NAME, null, { - handleResult: () => exists = true, - handleCompletion: () => deferred.resolve(exists) - }); - return deferred.promise; -} - -// Test Functions - -// History -function* test_history_cleared_with_direct_match() -{ - const TEST_URI = uri("http://mozilla.org/foo"); - do_check_false(yield promiseIsURIVisited(TEST_URI)); - yield PlacesTestUtils.addVisits(TEST_URI); - do_check_true(yield promiseIsURIVisited(TEST_URI)); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - do_check_false(yield promiseIsURIVisited(TEST_URI)); -} - -function* test_history_cleared_with_subdomain() -{ - const TEST_URI = uri("http://www.mozilla.org/foo"); - do_check_false(yield promiseIsURIVisited(TEST_URI)); - yield PlacesTestUtils.addVisits(TEST_URI); - do_check_true(yield promiseIsURIVisited(TEST_URI)); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - do_check_false(yield promiseIsURIVisited(TEST_URI)); -} - -function* test_history_not_cleared_with_uri_contains_domain() -{ - const TEST_URI = uri("http://ilovemozilla.org/foo"); - do_check_false(yield promiseIsURIVisited(TEST_URI)); - yield PlacesTestUtils.addVisits(TEST_URI); - do_check_true(yield promiseIsURIVisited(TEST_URI)); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - do_check_true(yield promiseIsURIVisited(TEST_URI)); - - // Clear history since we left something there from this test. - yield PlacesTestUtils.clearHistory(); -} - -// Cookie Service -function* test_cookie_cleared_with_direct_match() -{ - const TEST_DOMAIN = "mozilla.org"; - add_cookie(TEST_DOMAIN); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_cookie_exists(TEST_DOMAIN, false); -} - -function* test_cookie_cleared_with_subdomain() -{ - const TEST_DOMAIN = "www.mozilla.org"; - add_cookie(TEST_DOMAIN); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_cookie_exists(TEST_DOMAIN, false); -} - -function* test_cookie_not_cleared_with_uri_contains_domain() -{ - const TEST_DOMAIN = "ilovemozilla.org"; - add_cookie(TEST_DOMAIN); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_cookie_exists(TEST_DOMAIN, true); -} - -// Login Manager -function* test_login_manager_disabled_hosts_cleared_with_direct_match() -{ - const TEST_HOST = "http://mozilla.org"; - add_disabled_host(TEST_HOST); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_disabled_host(TEST_HOST, false); -} - -function* test_login_manager_disabled_hosts_cleared_with_subdomain() -{ - const TEST_HOST = "http://www.mozilla.org"; - add_disabled_host(TEST_HOST); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_disabled_host(TEST_HOST, false); -} - -function* test_login_manager_disabled_hosts_not_cleared_with_uri_contains_domain() -{ - const TEST_HOST = "http://ilovemozilla.org"; - add_disabled_host(TEST_HOST); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_disabled_host(TEST_HOST, true); - - // Reset state - let lm = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - lm.setLoginSavingEnabled(TEST_HOST, true); - check_disabled_host(TEST_HOST, false); -} - -function* test_login_manager_logins_cleared_with_direct_match() -{ - const TEST_HOST = "http://mozilla.org"; - add_login(TEST_HOST); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_login_exists(TEST_HOST, false); -} - -function* test_login_manager_logins_cleared_with_subdomain() -{ - const TEST_HOST = "http://www.mozilla.org"; - add_login(TEST_HOST); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_login_exists(TEST_HOST, false); -} - -function* test_login_manager_logins_not_cleared_with_uri_contains_domain() -{ - const TEST_HOST = "http://ilovemozilla.org"; - add_login(TEST_HOST); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_login_exists(TEST_HOST, true); - - let lm = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); - lm.removeAllLogins(); - check_login_exists(TEST_HOST, false); -} - -// Permission Manager -function* test_permission_manager_cleared_with_direct_match() -{ - const TEST_URI = uri("http://mozilla.org"); - add_permission(TEST_URI); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_permission_exists(TEST_URI, false); -} - -function* test_permission_manager_cleared_with_subdomain() -{ - const TEST_URI = uri("http://www.mozilla.org"); - add_permission(TEST_URI); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_permission_exists(TEST_URI, false); -} - -function* test_permission_manager_not_cleared_with_uri_contains_domain() -{ - const TEST_URI = uri("http://ilovemozilla.org"); - add_permission(TEST_URI); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - check_permission_exists(TEST_URI, true); - - // Reset state - let pm = Cc["@mozilla.org/permissionmanager;1"]. - getService(Ci.nsIPermissionManager); - pm.removeAll(); - check_permission_exists(TEST_URI, false); -} - -function waitForPurgeNotification() { - let deferred = Promise.defer(); - - let observer = { - observe: function(aSubject, aTopic, aData) - { - Services.obs.removeObserver(observer, "browser:purge-domain-data"); - // test_storage_cleared needs this extra executeSoon because - // the DOMStorage clean-up is also listening to this same observer - // which is run synchronously. - Services.tm.mainThread.dispatch(function() { - deferred.resolve(); - }, Components.interfaces.nsIThread.DISPATCH_NORMAL); - } - }; - Services.obs.addObserver(observer, "browser:purge-domain-data", false); - - return deferred.promise; -} - -// Content Preferences -function* test_content_preferences_cleared_with_direct_match() -{ - const TEST_URI = uri("http://mozilla.org"); - do_check_false(yield preference_exists(TEST_URI)); - yield add_preference(TEST_URI); - do_check_true(yield preference_exists(TEST_URI)); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - yield waitForPurgeNotification(); - do_check_false(yield preference_exists(TEST_URI)); -} - -function* test_content_preferences_cleared_with_subdomain() -{ - const TEST_URI = uri("http://www.mozilla.org"); - do_check_false(yield preference_exists(TEST_URI)); - yield add_preference(TEST_URI); - do_check_true(yield preference_exists(TEST_URI)); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - yield waitForPurgeNotification(); - do_check_false(yield preference_exists(TEST_URI)); -} - -function* test_content_preferences_not_cleared_with_uri_contains_domain() -{ - const TEST_URI = uri("http://ilovemozilla.org"); - do_check_false(yield preference_exists(TEST_URI)); - yield add_preference(TEST_URI); - do_check_true(yield preference_exists(TEST_URI)); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - yield waitForPurgeNotification(); - do_check_true(yield preference_exists(TEST_URI)); - - // Reset state - yield ForgetAboutSite.removeDataFromDomain("ilovemozilla.org"); - yield waitForPurgeNotification(); - do_check_false(yield preference_exists(TEST_URI)); -} - -function push_registration_exists(aURL, ps) -{ - return new Promise(resolve => { - let ssm = Cc["@mozilla.org/scriptsecuritymanager;1"] - .getService(Ci.nsIScriptSecurityManager); - let principal = ssm.createCodebasePrincipalFromOrigin(aURL); - return ps.getSubscription(aURL, principal, (status, record) => { - if (!Components.isSuccessCode(status)) { - resolve(false); - } else { - resolve(!!record); - } - }); - }); -} - -// Push -function* test_push_cleared() -{ - let ps; - try { - ps = Cc["@mozilla.org/push/Service;1"]. - getService(Ci.nsIPushService); - } catch (e) { - // No push service, skip test. - return; - } - - do_get_profile(); - setPrefs(); - const {PushDB, PushService, PushServiceWebSocket} = serviceExports; - const userAgentID = 'bd744428-f125-436a-b6d0-dd0c9845837f'; - const channelID = '0ef2ad4a-6c49-41ad-af6e-95d2425276bf'; - - let db = PushServiceWebSocket.newPushDB(); - - try { - PushService.init({ - serverURI: "wss://push.example.org/", - db, - makeWebSocket(uriObj) { - return new MockWebSocket(uriObj, { - onHello(request) { - this.serverSendMsg(JSON.stringify({ - messageType: 'hello', - status: 200, - uaid: userAgentID, - })); - }, - }); - } - }); - - const TEST_URL = "https://www.mozilla.org/scope/"; - do_check_false(yield push_registration_exists(TEST_URL, ps)); - yield db.put({ - channelID, - pushEndpoint: 'https://example.org/update/clear-success', - scope: TEST_URL, - version: 1, - originAttributes: '', - quota: Infinity, - }); - do_check_true(yield push_registration_exists(TEST_URL, ps)); - - let promisePurgeNotification = waitForPurgeNotification(); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - yield promisePurgeNotification; - - do_check_false(yield push_registration_exists(TEST_URL, ps)); - } finally { - yield PushService._shutdownService(); - } -} - -// Cache -function* test_cache_cleared() -{ - // Because this test is asynchronous, it should be the last test - do_check_true(tests[tests.length - 1] == arguments.callee); - - // NOTE: We could be more extensive with this test and actually add an entry - // to the cache, and then make sure it is gone. However, we trust that - // the API is well tested, and that when we get the observer - // notification, we have actually cleared the cache. - // This seems to happen asynchronously... - let os = Cc["@mozilla.org/observer-service;1"]. - getService(Ci.nsIObserverService); - let observer = { - observe: function(aSubject, aTopic, aData) - { - os.removeObserver(observer, "cacheservice:empty-cache"); - // Shutdown the download manager. - Services.obs.notifyObservers(null, "quit-application", null); - do_test_finished(); - } - }; - os.addObserver(observer, "cacheservice:empty-cache", false); - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - do_test_pending(); -} - -function* test_storage_cleared() -{ - function getStorageForURI(aURI) - { - let ssm = Cc["@mozilla.org/scriptsecuritymanager;1"] - .getService(Ci.nsIScriptSecurityManager); - let principal = ssm.createCodebasePrincipal(aURI, {}); - - let dsm = Cc["@mozilla.org/dom/localStorage-manager;1"]. - getService(Ci.nsIDOMStorageManager); - return dsm.createStorage(null, principal, ""); - } - - let s = [ - getStorageForURI(uri("http://mozilla.org")), - getStorageForURI(uri("http://my.mozilla.org")), - getStorageForURI(uri("http://ilovemozilla.org")), - ]; - - for (let i = 0; i < s.length; ++i) { - let storage = s[i]; - storage.setItem("test", "value" + i); - do_check_eq(storage.length, 1); - do_check_eq(storage.key(0), "test"); - do_check_eq(storage.getItem("test"), "value" + i); - } - - yield ForgetAboutSite.removeDataFromDomain("mozilla.org"); - yield waitForPurgeNotification(); - - do_check_eq(s[0].getItem("test"), null); - do_check_eq(s[0].length, 0); - do_check_eq(s[1].getItem("test"), null); - do_check_eq(s[1].length, 0); - do_check_eq(s[2].getItem("test"), "value2"); - do_check_eq(s[2].length, 1); -} - -var tests = [ - // History - test_history_cleared_with_direct_match, - test_history_cleared_with_subdomain, - test_history_not_cleared_with_uri_contains_domain, - - // Cookie Service - test_cookie_cleared_with_direct_match, - test_cookie_cleared_with_subdomain, - test_cookie_not_cleared_with_uri_contains_domain, - - // Login Manager - test_login_manager_disabled_hosts_cleared_with_direct_match, - test_login_manager_disabled_hosts_cleared_with_subdomain, - test_login_manager_disabled_hosts_not_cleared_with_uri_contains_domain, - test_login_manager_logins_cleared_with_direct_match, - test_login_manager_logins_cleared_with_subdomain, - test_login_manager_logins_not_cleared_with_uri_contains_domain, - - // Permission Manager - test_permission_manager_cleared_with_direct_match, - test_permission_manager_cleared_with_subdomain, - test_permission_manager_not_cleared_with_uri_contains_domain, - - // Content Preferences - test_content_preferences_cleared_with_direct_match, - test_content_preferences_cleared_with_subdomain, - test_content_preferences_not_cleared_with_uri_contains_domain, - - // Push - test_push_cleared, - - // Storage - test_storage_cleared, - - // Cache - test_cache_cleared, -]; - -function run_test() -{ - for (let i = 0; i < tests.length; i++) - add_task(tests[i]); - - run_next_test(); -} diff --git a/toolkit/forgetaboutsite/test/unit/xpcshell.ini b/toolkit/forgetaboutsite/test/unit/xpcshell.ini deleted file mode 100644 index a18fa718a..000000000 --- a/toolkit/forgetaboutsite/test/unit/xpcshell.ini +++ /dev/null @@ -1,8 +0,0 @@ -[DEFAULT] -head = head_forgetaboutsite.js ../../../../dom/push/test/xpcshell/head.js -tail = -skip-if = toolkit == 'android' -support-files = - !/dom/push/test/xpcshell/head.js - -[test_removeDataFromDomain.js] |