1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/addon-sdk/source/test/addons/private-browsing-supported/test-panel.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,98 @@ 1.4 +'use strict'; 1.5 + 1.6 +const { open, focus, close } = require('sdk/window/helpers'); 1.7 +const { isPrivate } = require('sdk/private-browsing'); 1.8 +const { defer } = require('sdk/core/promise'); 1.9 +const { browserWindows: windows } = require('sdk/windows'); 1.10 + 1.11 +const BROWSER = 'chrome://browser/content/browser.xul'; 1.12 + 1.13 +exports.testRequirePanel = function(assert) { 1.14 + require('sdk/panel'); 1.15 + assert.ok('the panel module should not throw an error'); 1.16 +}; 1.17 + 1.18 +exports.testShowPanelInPrivateWindow = function(assert, done) { 1.19 + let panel = require('sdk/panel').Panel({ 1.20 + contentURL: "data:text/html;charset=utf-8," 1.21 + }); 1.22 + 1.23 + assert.ok(windows.length > 0, 'there is at least one open window'); 1.24 + for (let window of windows) { 1.25 + assert.equal(isPrivate(window), false, 'open window is private'); 1.26 + } 1.27 + 1.28 + testShowPanel(assert, panel). 1.29 + then(makeEmptyPrivateBrowserWindow). 1.30 + then(focus). 1.31 + then(function(window) { 1.32 + assert.equal(isPrivate(window), true, 'opened window is private'); 1.33 + assert.pass('private window was focused'); 1.34 + return window; 1.35 + }). 1.36 + then(function(window) { 1.37 + let { promise, resolve } = defer(); 1.38 + 1.39 + assert.ok(!panel.isShowing, 'the panel is not showing [1]'); 1.40 + 1.41 + panel.once('show', function() { 1.42 + assert.ok(panel.isShowing, 'the panel is showing'); 1.43 + 1.44 + panel.once('hide', function() { 1.45 + assert.ok(!panel.isShowing, 'the panel is not showing [2]'); 1.46 + 1.47 + resolve(window); 1.48 + }); 1.49 + 1.50 + panel.hide(); 1.51 + }); 1.52 + 1.53 + panel.show(); 1.54 + 1.55 + return promise; 1.56 + }). 1.57 + then(close). 1.58 + then(done). 1.59 + then(null, assert.fail); 1.60 +}; 1.61 + 1.62 + 1.63 +function makeEmptyPrivateBrowserWindow(options) { 1.64 + options = options || {}; 1.65 + return open(BROWSER, { 1.66 + features: { 1.67 + chrome: true, 1.68 + toolbar: true, 1.69 + private: true 1.70 + } 1.71 + }); 1.72 +} 1.73 + 1.74 +function testShowPanel(assert, panel) { 1.75 + let { promise, resolve } = defer(); 1.76 + let shown = false; 1.77 + 1.78 + assert.ok(!panel.isShowing, 'the panel is not showing [1]'); 1.79 + 1.80 + panel.once('hide', function() { 1.81 + assert.ok(!panel.isShowing, 'the panel is not showing [2]'); 1.82 + assert.ok(shown, 'the panel was shown') 1.83 + 1.84 + resolve(null); 1.85 + }); 1.86 + 1.87 + panel.once('show', function() { 1.88 + shown = true; 1.89 + 1.90 + assert.ok(panel.isShowing, 'the panel is showing'); 1.91 + 1.92 + panel.hide(); 1.93 + }); 1.94 + 1.95 + panel.show(); 1.96 + 1.97 + return promise; 1.98 +} 1.99 + 1.100 +//Test disabled because of bug 911071 1.101 +module.exports = {}