summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/social/browser_blocklist.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/social/browser_blocklist.js')
-rw-r--r--browser/base/content/test/social/browser_blocklist.js211
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();
- }
- }
-}