зеркало из https://github.com/mozilla/gecko-dev.git
158 строки
4.6 KiB
JavaScript
158 строки
4.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
registerCleanupFunction(function () {
|
|
Services.prefs.clearUserPref(TabView.PREF_FIRST_RUN);
|
|
Services.prefs.clearUserPref(TabView.PREF_STARTUP_PAGE);
|
|
Services.prefs.clearUserPref(TabView.PREF_RESTORE_ENABLED_ONCE);
|
|
});
|
|
|
|
let assertBoolPref = function (pref, value) {
|
|
is(Services.prefs.getBoolPref(pref), value, pref + " is " + value);
|
|
};
|
|
|
|
let assertIntPref = function (pref, value) {
|
|
is(Services.prefs.getIntPref(pref), value, pref + " is " + value);
|
|
};
|
|
|
|
let setPreferences = function (startupPage, firstRun, enabledOnce) {
|
|
Services.prefs.setIntPref(TabView.PREF_STARTUP_PAGE, startupPage);
|
|
Services.prefs.setBoolPref(TabView.PREF_FIRST_RUN, firstRun);
|
|
Services.prefs.setBoolPref(TabView.PREF_RESTORE_ENABLED_ONCE, enabledOnce);
|
|
};
|
|
|
|
let assertPreferences = function (startupPage, firstRun, enabledOnce) {
|
|
assertIntPref(TabView.PREF_STARTUP_PAGE, startupPage);
|
|
assertBoolPref(TabView.PREF_FIRST_RUN, firstRun);
|
|
assertBoolPref(TabView.PREF_RESTORE_ENABLED_ONCE, enabledOnce);
|
|
};
|
|
|
|
let assertNotificationBannerVisible = function (win) {
|
|
let cw = win.TabView.getContentWindow();
|
|
is(cw.iQ(".banner").length, 1, "notification banner is visible");
|
|
};
|
|
|
|
let assertNotificationBannerNotVisible = function (win) {
|
|
let cw = win.TabView.getContentWindow();
|
|
is(cw.iQ(".banner").length, 0, "notification banner is not visible");
|
|
};
|
|
|
|
let next = function () {
|
|
if (tests.length == 0) {
|
|
waitForFocus(finish);
|
|
return;
|
|
}
|
|
|
|
let test = tests.shift();
|
|
info("running " + test.name + "...");
|
|
test();
|
|
};
|
|
|
|
// State:
|
|
// Panorama was already used before (firstUseExperienced = true) but session
|
|
// restore is deactivated. We did not automatically enable SR, yet.
|
|
//
|
|
// Expected result:
|
|
// When entering Panorma session restore will be enabled and a notification
|
|
// banner is shown.
|
|
let test1 = function test1() {
|
|
setPreferences(1, true, false);
|
|
|
|
newWindowWithTabView(function (win) {
|
|
assertNotificationBannerVisible(win);
|
|
assertPreferences(3, true, true);
|
|
|
|
win.close();
|
|
next();
|
|
});
|
|
};
|
|
|
|
// State:
|
|
// Panorama has not been used before (firstUseExperienced = false) and session
|
|
// restore is deactivated. We did not automatically enable SR, yet. That state
|
|
// is equal to starting the browser the first time.
|
|
//
|
|
// Expected result:
|
|
// When entering Panorma nothing happens. When we detect that Panorama is
|
|
// really used (firstUseExperienced = true) we notify that session restore
|
|
// is now enabled.
|
|
let test2 = function test2() {
|
|
setPreferences(1, false, false);
|
|
|
|
newWindowWithTabView(function (win) {
|
|
assertNotificationBannerNotVisible(win);
|
|
assertPreferences(1, false, false);
|
|
|
|
win.TabView.firstUseExperienced = true;
|
|
|
|
assertNotificationBannerVisible(win);
|
|
assertPreferences(3, true, true);
|
|
|
|
win.close();
|
|
next();
|
|
});
|
|
};
|
|
|
|
// State:
|
|
// Panorama was already used before (firstUseExperienced = true) and session
|
|
// restore is activated. We did not automatically enable SR, yet.
|
|
//
|
|
// Expected result:
|
|
// When entering Panorama nothing happens because session store is already
|
|
// enabled so there's no reason to notify.
|
|
let test3 = function test3() {
|
|
setPreferences(3, true, false);
|
|
|
|
newWindowWithTabView(function (win) {
|
|
assertNotificationBannerNotVisible(win);
|
|
assertPreferences(3, true, true);
|
|
|
|
win.close();
|
|
next();
|
|
});
|
|
};
|
|
|
|
// State:
|
|
// Panorama was already used before (firstUseExperienced = true) and session
|
|
// restore has been automatically activated.
|
|
//
|
|
// Expected result:
|
|
// When entering Panorama nothing happens.
|
|
let test4 = function test4() {
|
|
setPreferences(3, true, true);
|
|
|
|
newWindowWithTabView(function (win) {
|
|
assertNotificationBannerNotVisible(win);
|
|
assertPreferences(3, true, true);
|
|
|
|
win.close();
|
|
next();
|
|
});
|
|
};
|
|
|
|
// State:
|
|
// Panorama was already used before (firstUseExperienced = true) and session
|
|
// restore has been automatically activated. Session store was afterwards
|
|
// disabled by the user so we won't touch that again.
|
|
//
|
|
// Expected result:
|
|
// When entering Panorama nothing happens and we didn't enable session restore.
|
|
let test5 = function test5() {
|
|
setPreferences(1, true, true);
|
|
|
|
newWindowWithTabView(function (win) {
|
|
assertNotificationBannerNotVisible(win);
|
|
assertPreferences(1, true, true);
|
|
|
|
win.close();
|
|
next();
|
|
});
|
|
};
|
|
|
|
let tests = [test1, test2, test3, test4, test5];
|
|
next();
|
|
}
|