diff options
Diffstat (limited to 'browser/base/content/test/social/browser_blocklist.js')
-rw-r--r-- | browser/base/content/test/social/browser_blocklist.js | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/browser/base/content/test/social/browser_blocklist.js b/browser/base/content/test/social/browser_blocklist.js deleted file mode 100644 index b67d5efb3..000000000 --- a/browser/base/content/test/social/browser_blocklist.js +++ /dev/null @@ -1,211 +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/. */ - -// a place for miscellaneous social tests - -var SocialService = Cu.import("resource:///modules/SocialService.jsm", {}).SocialService; - -const URI_EXTENSION_BLOCKLIST_DIALOG = "chrome://mozapps/content/extensions/blocklist.xul"; -var blocklistURL = "http://example.com/browser/browser/base/content/test/social/blocklist.xml"; - -var manifest = { // normal provider - name: "provider ok", - origin: "https://example.com", - shareURL: "https://example.com/browser/browser/base/content/test/social/social_share.html", - iconURL: "https://example.com/browser/browser/base/content/test/general/moz.png" -}; -var manifest_bad = { // normal provider - name: "provider blocked", - origin: "https://test1.example.com", - shareURL: "https://test1.example.com/browser/browser/base/content/test/social/social_share.html", - iconURL: "https://test1.example.com/browser/browser/base/content/test/general/moz.png" -}; - -// blocklist testing -function updateBlocklist() { - var blocklistNotifier = Cc["@mozilla.org/extensions/blocklist;1"] - .getService(Ci.nsITimerCallback); - let promise = promiseObserverNotified("blocklist-updated"); - blocklistNotifier.notify(null); - return promise; -} - -var _originalTestBlocklistURL = null; -function setAndUpdateBlocklist(aURL) { - if (!_originalTestBlocklistURL) - _originalTestBlocklistURL = Services.prefs.getCharPref("extensions.blocklist.url"); - Services.prefs.setCharPref("extensions.blocklist.url", aURL); - return updateBlocklist(); -} - -function resetBlocklist() { - // XXX - this has "forked" from the head.js helpers in our parent directory :( - // But let's reuse their blockNoPlugins.xml. Later, we should arrange to - // use their head.js helpers directly - let noBlockedURL = "http://example.com/browser/browser/base/content/test/plugins/blockNoPlugins.xml"; - return new Promise(resolve => { - setAndUpdateBlocklist(noBlockedURL).then(() => { - Services.prefs.setCharPref("extensions.blocklist.url", _originalTestBlocklistURL); - resolve(); - }); - }); -} - -function test() { - waitForExplicitFinish(); - // turn on logging for nsBlocklistService.js - Services.prefs.setBoolPref("extensions.logging.enabled", true); - registerCleanupFunction(function () { - Services.prefs.clearUserPref("extensions.logging.enabled"); - }); - - runSocialTests(tests, undefined, undefined, function () { - resetBlocklist().then(finish); // restore to original pref - }); -} - -var tests = { - testSimpleBlocklist: function(next) { - // this really just tests adding and clearing our blocklist for later tests - setAndUpdateBlocklist(blocklistURL).then(() => { - ok(Services.blocklist.isAddonBlocklisted(SocialService.createWrapper(manifest_bad)), "blocking 'blocked'"); - ok(!Services.blocklist.isAddonBlocklisted(SocialService.createWrapper(manifest)), "not blocking 'good'"); - resetBlocklist().then(() => { - ok(!Services.blocklist.isAddonBlocklisted(SocialService.createWrapper(manifest_bad)), "blocklist cleared"); - next(); - }); - }); - }, - testAddingNonBlockedProvider: function(next) { - function finishTest(isgood) { - ok(isgood, "adding non-blocked provider ok"); - Services.prefs.clearUserPref("social.manifest.good"); - resetBlocklist().then(next); - } - setManifestPref("social.manifest.good", manifest); - setAndUpdateBlocklist(blocklistURL).then(() => { - try { - SocialService.addProvider(manifest, function(provider) { - try { - SocialService.disableProvider(provider.origin, function() { - ok(true, "added and removed provider"); - finishTest(true); - }); - } catch (e) { - ok(false, "SocialService.disableProvider threw exception: " + e); - finishTest(false); - } - }); - } catch (e) { - ok(false, "SocialService.addProvider threw exception: " + e); - finishTest(false); - } - }); - }, - testAddingBlockedProvider: function(next) { - function finishTest(good) { - ok(good, "Unable to add blocklisted provider"); - Services.prefs.clearUserPref("social.manifest.blocked"); - resetBlocklist().then(next); - } - setManifestPref("social.manifest.blocked", manifest_bad); - setAndUpdateBlocklist(blocklistURL).then(() => { - try { - SocialService.addProvider(manifest_bad, function(provider) { - SocialService.disableProvider(provider.origin, function() { - ok(false, "SocialService.addProvider should throw blocklist exception"); - finishTest(false); - }); - }); - } catch (e) { - ok(true, "SocialService.addProvider should throw blocklist exception: " + e); - finishTest(true); - } - }); - }, - testInstallingBlockedProvider: function(next) { - function finishTest(good) { - ok(good, "Unable to install blocklisted provider"); - resetBlocklist().then(next); - } - let activationURL = manifest_bad.origin + "/browser/browser/base/content/test/social/social_activate.html" - setAndUpdateBlocklist(blocklistURL).then(() => { - try { - // expecting an exception when attempting to install a hard blocked - // provider - let data = { - origin: manifest_bad.origin, - url: activationURL, - manifest: manifest_bad, - window: window - } - Social.installProvider(data, function(addonManifest) { - finishTest(false); - }); - } catch (e) { - finishTest(true); - } - }); - }, - testBlockingExistingProvider: function(next) { - let listener = { - _window: null, - onOpenWindow: function(aXULWindow) { - Services.wm.removeListener(this); - this._window = aXULWindow; - let domwindow = aXULWindow.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDOMWindow); - - domwindow.addEventListener("load", function _load() { - domwindow.removeEventListener("load", _load, false); - - domwindow.addEventListener("unload", function _unload() { - domwindow.removeEventListener("unload", _unload, false); - info("blocklist window was closed"); - Services.wm.removeListener(listener); - next(); - }, false); - - is(domwindow.document.location.href, URI_EXTENSION_BLOCKLIST_DIALOG, "dialog opened and focused"); - // wait until after load to cancel so the dialog has initalized. we - // don't want to accept here since that restarts the browser. - executeSoon(() => { - let cancelButton = domwindow.document.documentElement.getButton("cancel"); - info("***** hit the cancel button\n"); - cancelButton.doCommand(); - }); - }, false); - }, - onCloseWindow: function(aXULWindow) { }, - onWindowTitleChange: function(aXULWindow, aNewTitle) { } - }; - - Services.wm.addListener(listener); - - setManifestPref("social.manifest.blocked", manifest_bad); - try { - SocialService.addProvider(manifest_bad, function(provider) { - // the act of blocking should cause a 'provider-disabled' notification - // from SocialService. - SocialService.registerProviderListener(function providerListener(topic, origin, providers) { - if (topic != "provider-disabled") - return; - SocialService.unregisterProviderListener(providerListener); - is(origin, provider.origin, "provider disabled"); - SocialService.getProvider(provider.origin, function(p) { - ok(p == null, "blocklisted provider disabled"); - Services.prefs.clearUserPref("social.manifest.blocked"); - resetBlocklist(); - }); - }); - // no callback - the act of updating should cause the listener above - // to fire. - setAndUpdateBlocklist(blocklistURL); - }); - } catch (e) { - ok(false, "unable to add provider " + e); - next(); - } - } -} |