summaryrefslogtreecommitdiffstats
path: root/dom/system/tests/preload-SystemUpdateManager-jsm.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/tests/preload-SystemUpdateManager-jsm.js')
-rw-r--r--dom/system/tests/preload-SystemUpdateManager-jsm.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/dom/system/tests/preload-SystemUpdateManager-jsm.js b/dom/system/tests/preload-SystemUpdateManager-jsm.js
new file mode 100644
index 000000000..005b70461
--- /dev/null
+++ b/dom/system/tests/preload-SystemUpdateManager-jsm.js
@@ -0,0 +1,80 @@
+/* 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/. */
+
+'use strict';
+
+const {classes: Cc, interfaces: Ci, utils: Cu, manager: Cm} = Components;
+
+Cu.import('resource://gre/modules/XPCOMUtils.jsm');
+
+const cid = '{17a84227-28f4-453d-9b80-9ae75a5682e0}';
+const contractId = '@mozilla.org/test-update-provider;1';
+
+function TestUpdateProvider() {}
+TestUpdateProvider.prototype = {
+ QueryInterface: XPCOMUtils.generateQI([Ci.nsISystemUpdateProvider]),
+
+ checkForUpdate: function() {
+ dump('check for update');
+ this._listener.onUpdateAvailable('test-type', 'test-version', 'test-description', Date.now().valueOf(), 5566);
+ },
+
+ startDownload: function() {
+ dump('test start download');
+ this._listener.onProgress(10, 100);
+ },
+
+ stopDownload: function() {
+ dump('test stop download');
+ },
+
+ applyUpdate: function() {
+ dump('apply update');
+ },
+
+ setParameter: function(name, value) {
+ dump('set parameter');
+ return (name === 'dummy' && value === 'dummy-value');
+ },
+
+ getParameter: function(name) {
+ dump('get parameter');
+ if (name === 'dummy') {
+ return 'dummy-value';
+ }
+ },
+
+ setListener: function(listener) {
+ this._listener = listener;
+ },
+
+ unsetListener: function() {
+ this._listener = null;
+ },
+};
+
+var factory = {
+ createInstance: function(outer, iid) {
+ if (outer) {
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+ }
+
+ return new TestUpdateProvider().QueryInterface(iid);
+ },
+ lockFactory: function(aLock) {
+ throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
+ },
+ QueryInterface: XPCOMUtils.generateQI([Ci.nsIFactory])
+};
+
+Cm.nsIComponentRegistrar.registerFactory(Components.ID(cid), '', contractId, factory);
+
+var cm = Cc['@mozilla.org/categorymanager;1'].getService(Ci.nsICategoryManager);
+cm.addCategoryEntry('system-update-provider', 'DummyProvider',
+ contractId + ',' + cid, false, true);
+
+Cu.import('resource://gre/modules/SystemUpdateService.jsm');
+this.SystemUpdateService.addProvider('{17a84227-28f4-453d-9b80-9ae75a5682e0}',
+ '@mozilla.org/test-update-provider;1',
+ 'DummyProvider'); \ No newline at end of file