diff options
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.js | 65 |
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); |