gecko/browser/base/content/test/newtab/browser_newtab_private_browsing.js

55 lines
1.6 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/*
* These tests ensure that all changes made to the new tab page in private
* browsing mode are discarded after switching back to normal mode again.
* The private browsing mode should start with the current grid shown in normal
* mode.
*/
let pb = Cc["@mozilla.org/privatebrowsing;1"]
.getService(Ci.nsIPrivateBrowsingService);
function runTests() {
// prepare the grid
yield setLinks("0,1,2,3,4,5,6,7,8,9");
ok(!pb.privateBrowsingEnabled, "private browsing is disabled");
yield addNewTabPageTab();
pinCell(0);
checkGrid("0p,1,2,3,4,5,6,7,8");
// enter private browsing mode
yield togglePrivateBrowsing();
ok(pb.privateBrowsingEnabled, "private browsing is enabled");
yield addNewTabPageTab();
checkGrid("0p,1,2,3,4,5,6,7,8");
// modify the grid while we're in pb mode
yield blockCell(1);
checkGrid("0p,2,3,4,5,6,7,8");
yield unpinCell(0);
checkGrid("0,2,3,4,5,6,7,8");
// exit private browsing mode
yield togglePrivateBrowsing();
ok(!pb.privateBrowsingEnabled, "private browsing is disabled");
// check that the grid is the same as before entering pb mode
yield addNewTabPageTab();
checkGrid("0,2,3,4,5,6,7,8")
}
function togglePrivateBrowsing() {
let topic = "private-browsing-transition-complete";
Services.obs.addObserver(function observe() {
Services.obs.removeObserver(observe, topic);
executeSoon(TestRunner.next);
}, topic, false);
pb.privateBrowsingEnabled = !pb.privateBrowsingEnabled;
}