addon-sdk/source/test/addons/private-browsing-supported/test-panel.js

changeset 0
6474c204b198
     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 = {}

mercurial