diff options
Diffstat (limited to 'browser/modules/test/unit/social/head.js')
-rw-r--r-- | browser/modules/test/unit/social/head.js | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/browser/modules/test/unit/social/head.js b/browser/modules/test/unit/social/head.js deleted file mode 100644 index 0beabb685..000000000 --- a/browser/modules/test/unit/social/head.js +++ /dev/null @@ -1,210 +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 { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -var Social, SocialService; - -var manifests = [ - { - name: "provider 1", - origin: "https://example1.com", - sidebarURL: "https://example1.com/sidebar/", - }, - { - name: "provider 2", - origin: "https://example2.com", - sidebarURL: "https://example1.com/sidebar/", - } -]; - -const MANIFEST_PREFS = Services.prefs.getBranch("social.manifest."); - -// SocialProvider class relies on blocklisting being enabled. To enable -// blocklisting, we have to setup an app and initialize the blocklist (see -// initApp below). -const gProfD = do_get_profile(); - -function createAppInfo(ID, name, version, platformVersion="1.0") { - let tmp = {}; - Cu.import("resource://testing-common/AppInfo.jsm", tmp); - tmp.updateAppInfo({ - ID, name, version, platformVersion, - crashReporter: true, - }); - gAppInfo = tmp.getAppInfo(); -} - -function initApp() { - createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9"); - // prepare a blocklist file for the blocklist service - var blocklistFile = gProfD.clone(); - blocklistFile.append("blocklist.xml"); - if (blocklistFile.exists()) - blocklistFile.remove(false); - var source = do_get_file("blocklist.xml"); - source.copyTo(gProfD, "blocklist.xml"); - blocklistFile.lastModifiedTime = Date.now(); - - - let internalManager = Cc["@mozilla.org/addons/integration;1"]. - getService(Ci.nsIObserver). - QueryInterface(Ci.nsITimerCallback); - - internalManager.observe(null, "addons-startup", null); -} - -function setManifestPref(manifest) { - let string = Cc["@mozilla.org/supports-string;1"]. - createInstance(Ci.nsISupportsString); - string.data = JSON.stringify(manifest); - Services.prefs.setComplexValue("social.manifest." + manifest.origin, Ci.nsISupportsString, string); -} - -function do_wait_observer(obsTopic, cb) { - function observer(subject, topic, data) { - Services.obs.removeObserver(observer, topic); - cb(); - } - Services.obs.addObserver(observer, obsTopic, false); -} - -function do_add_providers(cb) { - // run only after social is already initialized - SocialService.addProvider(manifests[0], function() { - do_wait_observer("social:providers-changed", function() { - do_check_eq(Social.providers.length, 2, "2 providers installed"); - do_execute_soon(cb); - }); - SocialService.addProvider(manifests[1]); - }); -} - -function do_initialize_social(enabledOnStartup, cb) { - initApp(); - - if (enabledOnStartup) { - // set prefs before initializing social - manifests.forEach(function (manifest) { - setManifestPref(manifest); - }); - // Set both providers active and flag the first one as "current" - let activeVal = Cc["@mozilla.org/supports-string;1"]. - createInstance(Ci.nsISupportsString); - let active = {}; - for (let m of manifests) - active[m.origin] = 1; - activeVal.data = JSON.stringify(active); - Services.prefs.setComplexValue("social.activeProviders", - Ci.nsISupportsString, activeVal); - - do_register_cleanup(function() { - manifests.forEach(function (manifest) { - Services.prefs.clearUserPref("social.manifest." + manifest.origin); - }); - Services.prefs.clearUserPref("social.activeProviders"); - }); - - // expecting 2 providers installed - do_wait_observer("social:providers-changed", function() { - do_check_eq(Social.providers.length, 2, "2 providers installed"); - do_execute_soon(cb); - }); - } - - // import and initialize everything - SocialService = Cu.import("resource:///modules/SocialService.jsm", {}).SocialService; - do_check_eq(enabledOnStartup, SocialService.hasEnabledProviders, "Service has enabled providers"); - Social = Cu.import("resource:///modules/Social.jsm", {}).Social; - do_check_false(Social.initialized, "Social is not initialized"); - Social.init(); - do_check_true(Social.initialized, "Social is initialized"); - if (!enabledOnStartup) - do_execute_soon(cb); -} - -function AsyncRunner() { - do_test_pending(); - do_register_cleanup(() => this.destroy()); - - this._callbacks = { - done: do_test_finished, - error: function (err) { - // xpcshell test functions like do_check_eq throw NS_ERROR_ABORT on - // failure. Ignore those so they aren't rethrown here. - if (err !== Cr.NS_ERROR_ABORT) { - if (err.stack) { - err = err + " - See following stack:\n" + err.stack + - "\nUseless do_throw stack"; - } - do_throw(err); - } - }, - consoleError: function (scriptErr) { - // Try to ensure the error is related to the test. - let filename = scriptErr.sourceName || scriptErr.toString() || ""; - if (filename.indexOf("/toolkit/components/social/") >= 0) - do_throw(scriptErr); - }, - }; - this._iteratorQueue = []; - - // This catches errors reported to the console, e.g., via Cu.reportError, but - // not on the runner's stack. - Cc["@mozilla.org/consoleservice;1"]. - getService(Ci.nsIConsoleService). - registerListener(this); -} - -AsyncRunner.prototype = { - - appendIterator: function appendIterator(iter) { - this._iteratorQueue.push(iter); - }, - - next: function next(arg) { - if (!this._iteratorQueue.length) { - this.destroy(); - this._callbacks.done(); - return; - } - - try { - var { done, value: val } = this._iteratorQueue[0].next(arg); - if (done) { - this._iteratorQueue.shift(); - this.next(); - return; - } - } - catch (err) { - this._callbacks.error(err); - } - - // val is an iterator => prepend it to the queue and start on it - // val is otherwise truthy => call next - if (val) { - if (typeof(val) != "boolean") - this._iteratorQueue.unshift(val); - this.next(); - } - }, - - destroy: function destroy() { - Cc["@mozilla.org/consoleservice;1"]. - getService(Ci.nsIConsoleService). - unregisterListener(this); - this.destroy = function alreadyDestroyed() {}; - }, - - observe: function observe(msg) { - if (msg instanceof Ci.nsIScriptError && - !(msg.flags & Ci.nsIScriptError.warningFlag)) - { - this._callbacks.consoleError(msg); - } - }, -}; |