123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- /* 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';
- module.metadata = {
- engines: {
- 'Firefox': '*'
- }
- };
- const { isTabOpen, activateTab, openTab,
- closeTab, getURI } = require('sdk/tabs/utils');
- const windows = require('sdk/deprecated/window-utils');
- const { LoaderWithHookedConsole } = require('sdk/test/loader');
- const { setTimeout } = require('sdk/timers');
- const { is } = require('sdk/system/xul-app');
- const tabs = require('sdk/tabs');
- const isAustralis = "gCustomizeMode" in windows.activeBrowserWindow;
- const { set: setPref } = require("sdk/preferences/service");
- const DEPRECATE_PREF = "devtools.errorconsole.deprecation_warnings";
- let uri = require('sdk/self').data.url('index.html');
- function isChromeVisible(window) {
- let x = window.document.documentElement.getAttribute('disablechrome')
- return x !== 'true';
- }
- exports['test add-on page deprecation message'] = function(assert) {
- let { loader, messages } = LoaderWithHookedConsole(module);
- loader.require('sdk/addon-page');
- setPref(DEPRECATE_PREF, true);
- assert.equal(messages.length, 1, "only one error is dispatched");
- assert.equal(messages[0].type, "error", "the console message is an error");
- let msg = messages[0].msg;
- assert.ok(msg.indexOf("DEPRECATED") === 0,
- "The message is deprecation message");
- loader.unload();
- };
- exports['test that add-on page has no chrome'] = function(assert, done) {
- let { loader } = LoaderWithHookedConsole(module);
- loader.require('sdk/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') || isAustralis,
- 'chrome is not visible for addon page');
- closeTab(tab);
- assert.ok(isChromeVisible(window), 'chrome is visible again');
- loader.unload();
- assert.ok(!isTabOpen(tab), 'add-on page tab is closed on unload');
- done();
- });
- };
- exports['test that add-on page with hash has no chrome'] = function(assert, done) {
- let { loader } = LoaderWithHookedConsole(module);
- loader.require('sdk/addon-page');
- let window = windows.activeBrowserWindow;
- let tab = openTab(window, uri + "#foo");
- 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') || isAustralis,
- 'chrome is not visible for addon page');
- closeTab(tab);
- assert.ok(isChromeVisible(window), 'chrome is visible again');
- loader.unload();
- assert.ok(!isTabOpen(tab), 'add-on page tab is closed on unload');
- done();
- });
- };
- exports['test that add-on page with querystring has no chrome'] = function(assert, done) {
- let { loader } = LoaderWithHookedConsole(module);
- loader.require('sdk/addon-page');
- let window = windows.activeBrowserWindow;
- let tab = openTab(window, uri + '?foo=bar');
- 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') || isAustralis,
- 'chrome is not visible for addon page');
- closeTab(tab);
- assert.ok(isChromeVisible(window), 'chrome is visible again');
- loader.unload();
- assert.ok(!isTabOpen(tab), 'add-on page tab is closed on unload');
- done();
- });
- };
- exports['test that add-on page with hash and querystring has no chrome'] = function(assert, done) {
- let { loader } = LoaderWithHookedConsole(module);
- loader.require('sdk/addon-page');
- let window = windows.activeBrowserWindow;
- let tab = openTab(window, uri + '#foo?foo=bar');
- 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') || isAustralis,
- 'chrome is not visible for addon page');
- closeTab(tab);
- assert.ok(isChromeVisible(window), 'chrome is visible again');
- loader.unload();
- assert.ok(!isTabOpen(tab), 'add-on page tab is closed on unload');
- done();
- });
- };
- exports['test that malformed uri is not an addon-page'] = function(assert, done) {
- let { loader } = LoaderWithHookedConsole(module);
- loader.require('sdk/addon-page');
- let window = windows.activeBrowserWindow;
- let tab = openTab(window, uri + 'anguage');
- // 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.ok(isChromeVisible(window), 'chrome is visible for malformed uri');
- closeTab(tab);
- loader.unload();
- done();
- });
- };
- require('sdk/test/runner').runTestsFromModule(module);
|