summaryrefslogtreecommitdiffstats
path: root/dom/browser-element/mochitest/browserElement_PrivateBrowsing.js
blob: c32edcc37c0305adab309eb3197802cb60aaecb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* Any copyright is dedicated to the public domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

// Test that the mozprivatebrowsing attribute works.
"use strict";

SimpleTest.waitForExplicitFinish();
browserElementTestHelpers.setEnabledPref(true);
browserElementTestHelpers.addPermission();

function createFrame(aIsPrivate) {
  var iframe = document.createElement("iframe");
  iframe.setAttribute('mozbrowser', 'true');
  if (aIsPrivate) {
    iframe.setAttribute("mozprivatebrowsing", "true");
  }
  return iframe;
}

function createTest(aIsPrivate, aExpected, aClearStorage) {
  info("createTest " + aIsPrivate + " " + aExpected);
  return new Promise(function(resolve, reject) {
    var iframe = createFrame(aIsPrivate);
    document.body.appendChild(iframe);

    iframe.addEventListener("mozbrowsershowmodalprompt", function(e) {
      is(e.detail.message, aExpected, "Checking localstorage");
      resolve();
    });

    var src = "file_browserElement_PrivateBrowsing.html";
    iframe.src = aClearStorage ? src + "?clear=true" : src;

  });
}

function runTest() {
  // We first create a iframe in non private browsing mode, set up some
  // localstorage, reopen it to check that we get the previously set value.
  // Finally, open it in private browsing mode and check that localstorage
  // is clear.
  createTest(false, "CLEAR", true)
  .then(() => { return createTest(false, "EMPTY", false); })
  .then(() => { return createTest(false, "bar", false); })
  .then(() => { return createTest(true, "EMPTY", false); })
  .then(SimpleTest.finish);
}

addEventListener("testready", runTest);