aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.12/test/test-addon-page.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.12/test/test-addon-page.js')
-rw-r--r--tools/addon-sdk-1.12/test/test-addon-page.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.12/test/test-addon-page.js b/tools/addon-sdk-1.12/test/test-addon-page.js
new file mode 100644
index 0000000..cff3273
--- /dev/null
+++ b/tools/addon-sdk-1.12/test/test-addon-page.js
@@ -0,0 +1,65 @@
+/* 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 { isTabOpen, activateTab, openTab,
+ closeTab, getURI } = require('sdk/tabs/utils');
+const windows = require('sdk/deprecated/window-utils');
+const { Loader } = require('sdk/test/loader');
+const { setTimeout } = require('sdk/timers');
+const { is } = require('sdk/system/xul-app');
+const tabs = require('sdk/tabs');
+
+let uri = require('sdk/self').data.url('index.html');
+
+function isChromeVisible(window) {
+ let x = window.document.documentElement.getAttribute('disablechrome')
+ return x !== 'true';
+}
+
+exports['test that add-on page has no chrome'] = function(assert, done) {
+ let loader = Loader(module);
+ loader.require('addon-kit/addon-page');
+
+ let window = windows.activeBrowserWindow;
+ let tab = openTab(window, uri);
+
+ assert.ok(isChromeVisible(window), 'chrome is visible for non addon page');
+
+ // need to do this in another turn to make sure event listener
+ // that sets property has time to do that.
+ setTimeout(function() {
+ activateTab(tab);
+
+ assert.equal(isChromeVisible(window), is('Fennec'), 'chrome is not visible for addon page');
+
+ closeTab(tab);
+ assert.ok(isChromeVisible(window), 'chrome is visible again');
+ loader.unload();
+ done();
+ });
+};
+
+exports['test that add-on pages are closed on unload'] = function(assert, done) {
+ let loader = Loader(module);
+ loader.require('sdk/addon-page');
+
+ // Wait for addon page document to be loaded
+ tabs.once("ready", function listener(tab) {
+ // Ignore loading of about:blank document
+ if (tab.url != uri)
+ return;
+
+ loader.unload();
+ assert.ok(!isTabOpen(tab), 'add-on page tabs are closed on unload');
+
+ done();
+ }, false);
+
+ tabs.open(uri);
+};
+
+
+require('sdk/test').run(exports);