B2G/gecko/browser/components/tabview/test/browser_tabview_bug656778.js
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
Any copyright is dedicated to the Public Domain.
Any copyright is dedicated to the Public Domain .
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();
  };
   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();
    });
  };
   Panorama has not been used before (firstUseExperienced = false) and session
   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();
    });
  };
   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();
    });
  };
   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();
    });
  };
   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();
}
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 ( ) ; } ; let test1 = function test1 ( ) { setPreferences ( 1 , true , false ) ; newWindowWithTabView ( function ( win ) { assertNotificationBannerVisible ( win ) ; assertPreferences ( 3 , true , true ) ; win . close ( ) ; next ( ) ; } ) ; } ; 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 ( ) ; } ) ; } ; let test3 = function test3 ( ) { setPreferences ( 3 , true , false ) ; newWindowWithTabView ( function ( win ) { assertNotificationBannerNotVisible ( win ) ; assertPreferences ( 3 , true , true ) ; win . close ( ) ; next ( ) ; } ) ; } ; let test4 = function test4 ( ) { setPreferences ( 3 , true , true ) ; newWindowWithTabView ( function ( win ) { assertNotificationBannerNotVisible ( win ) ; assertPreferences ( 3 , true , true ) ; win . close ( ) ; next ( ) ; } ) ; } ; 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 ( ) ; }
Any copyright is dedicated to the Public Domain.
Any copyright is dedicated to the Public Domain .
// 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. // 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. // 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. // State: // Panorama was already used before (firstUseExperienced = true) and session // restore has been automatically activated. // // Expected result: // When entering Panorama nothing happens. // 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.