gecko/browser/components/sessionstore/test/browser_625016.js
Ed Morley f61d6d0d3e Bug 692625 - Move browser/components/sessionstore/test/browser/ to browser/components/sessionstore/test/; r=gavin
--HG--
rename : browser/components/sessionstore/test/browser/Makefile.in => browser/components/sessionstore/test/Makefile.in
rename : browser/components/sessionstore/test/browser/browser_248970_a.js => browser/components/sessionstore/test/browser_248970_a.js
rename : browser/components/sessionstore/test/browser/browser_248970_b.js => browser/components/sessionstore/test/browser_248970_b.js
rename : browser/components/sessionstore/test/browser/browser_248970_b_sample.html => browser/components/sessionstore/test/browser_248970_b_sample.html
rename : browser/components/sessionstore/test/browser/browser_339445.js => browser/components/sessionstore/test/browser_339445.js
rename : browser/components/sessionstore/test/browser/browser_339445_sample.html => browser/components/sessionstore/test/browser_339445_sample.html
rename : browser/components/sessionstore/test/browser/browser_345898.js => browser/components/sessionstore/test/browser_345898.js
rename : browser/components/sessionstore/test/browser/browser_346337.js => browser/components/sessionstore/test/browser_346337.js
rename : browser/components/sessionstore/test/browser/browser_346337_sample.html => browser/components/sessionstore/test/browser_346337_sample.html
rename : browser/components/sessionstore/test/browser/browser_350525.js => browser/components/sessionstore/test/browser_350525.js
rename : browser/components/sessionstore/test/browser/browser_354894.js => browser/components/sessionstore/test/browser_354894.js
rename : browser/components/sessionstore/test/browser/browser_367052.js => browser/components/sessionstore/test/browser_367052.js
rename : browser/components/sessionstore/test/browser/browser_393716.js => browser/components/sessionstore/test/browser_393716.js
rename : browser/components/sessionstore/test/browser/browser_394759_basic.js => browser/components/sessionstore/test/browser_394759_basic.js
rename : browser/components/sessionstore/test/browser/browser_394759_behavior.js => browser/components/sessionstore/test/browser_394759_behavior.js
rename : browser/components/sessionstore/test/browser/browser_394759_privatebrowsing.js => browser/components/sessionstore/test/browser_394759_privatebrowsing.js
rename : browser/components/sessionstore/test/browser/browser_394759_purge.js => browser/components/sessionstore/test/browser_394759_purge.js
rename : browser/components/sessionstore/test/browser/browser_408470.js => browser/components/sessionstore/test/browser_408470.js
rename : browser/components/sessionstore/test/browser/browser_408470_sample.html => browser/components/sessionstore/test/browser_408470_sample.html
rename : browser/components/sessionstore/test/browser/browser_423132.js => browser/components/sessionstore/test/browser_423132.js
rename : browser/components/sessionstore/test/browser/browser_423132_sample.html => browser/components/sessionstore/test/browser_423132_sample.html
rename : browser/components/sessionstore/test/browser/browser_447951.js => browser/components/sessionstore/test/browser_447951.js
rename : browser/components/sessionstore/test/browser/browser_447951_sample.html => browser/components/sessionstore/test/browser_447951_sample.html
rename : browser/components/sessionstore/test/browser/browser_448741.js => browser/components/sessionstore/test/browser_448741.js
rename : browser/components/sessionstore/test/browser/browser_454908.js => browser/components/sessionstore/test/browser_454908.js
rename : browser/components/sessionstore/test/browser/browser_454908_sample.html => browser/components/sessionstore/test/browser_454908_sample.html
rename : browser/components/sessionstore/test/browser/browser_456342.js => browser/components/sessionstore/test/browser_456342.js
rename : browser/components/sessionstore/test/browser/browser_456342_sample.xhtml => browser/components/sessionstore/test/browser_456342_sample.xhtml
rename : browser/components/sessionstore/test/browser/browser_459906.js => browser/components/sessionstore/test/browser_459906.js
rename : browser/components/sessionstore/test/browser/browser_459906_empty.html => browser/components/sessionstore/test/browser_459906_empty.html
rename : browser/components/sessionstore/test/browser/browser_459906_sample.html => browser/components/sessionstore/test/browser_459906_sample.html
rename : browser/components/sessionstore/test/browser/browser_461634.js => browser/components/sessionstore/test/browser_461634.js
rename : browser/components/sessionstore/test/browser/browser_461743.js => browser/components/sessionstore/test/browser_461743.js
rename : browser/components/sessionstore/test/browser/browser_461743_sample.html => browser/components/sessionstore/test/browser_461743_sample.html
rename : browser/components/sessionstore/test/browser/browser_463205.js => browser/components/sessionstore/test/browser_463205.js
rename : browser/components/sessionstore/test/browser/browser_463205_helper.html => browser/components/sessionstore/test/browser_463205_helper.html
rename : browser/components/sessionstore/test/browser/browser_463205_sample.html => browser/components/sessionstore/test/browser_463205_sample.html
rename : browser/components/sessionstore/test/browser/browser_463206.js => browser/components/sessionstore/test/browser_463206.js
rename : browser/components/sessionstore/test/browser/browser_463206_sample.html => browser/components/sessionstore/test/browser_463206_sample.html
rename : browser/components/sessionstore/test/browser/browser_464199.js => browser/components/sessionstore/test/browser_464199.js
rename : browser/components/sessionstore/test/browser/browser_464620_a.html => browser/components/sessionstore/test/browser_464620_a.html
rename : browser/components/sessionstore/test/browser/browser_464620_a.js => browser/components/sessionstore/test/browser_464620_a.js
rename : browser/components/sessionstore/test/browser/browser_464620_b.html => browser/components/sessionstore/test/browser_464620_b.html
rename : browser/components/sessionstore/test/browser/browser_464620_b.js => browser/components/sessionstore/test/browser_464620_b.js
rename : browser/components/sessionstore/test/browser/browser_464620_xd.html => browser/components/sessionstore/test/browser_464620_xd.html
rename : browser/components/sessionstore/test/browser/browser_465215.js => browser/components/sessionstore/test/browser_465215.js
rename : browser/components/sessionstore/test/browser/browser_465223.js => browser/components/sessionstore/test/browser_465223.js
rename : browser/components/sessionstore/test/browser/browser_466937.js => browser/components/sessionstore/test/browser_466937.js
rename : browser/components/sessionstore/test/browser/browser_466937_sample.html => browser/components/sessionstore/test/browser_466937_sample.html
rename : browser/components/sessionstore/test/browser/browser_467409-backslashplosion.js => browser/components/sessionstore/test/browser_467409-backslashplosion.js
rename : browser/components/sessionstore/test/browser/browser_477657.js => browser/components/sessionstore/test/browser_477657.js
rename : browser/components/sessionstore/test/browser/browser_480148.js => browser/components/sessionstore/test/browser_480148.js
rename : browser/components/sessionstore/test/browser/browser_480893.js => browser/components/sessionstore/test/browser_480893.js
rename : browser/components/sessionstore/test/browser/browser_483330.js => browser/components/sessionstore/test/browser_483330.js
rename : browser/components/sessionstore/test/browser/browser_485482.js => browser/components/sessionstore/test/browser_485482.js
rename : browser/components/sessionstore/test/browser/browser_485482_sample.html => browser/components/sessionstore/test/browser_485482_sample.html
rename : browser/components/sessionstore/test/browser/browser_485563.js => browser/components/sessionstore/test/browser_485563.js
rename : browser/components/sessionstore/test/browser/browser_490040.js => browser/components/sessionstore/test/browser_490040.js
rename : browser/components/sessionstore/test/browser/browser_491168.js => browser/components/sessionstore/test/browser_491168.js
rename : browser/components/sessionstore/test/browser/browser_491577.js => browser/components/sessionstore/test/browser_491577.js
rename : browser/components/sessionstore/test/browser/browser_493467.js => browser/components/sessionstore/test/browser_493467.js
rename : browser/components/sessionstore/test/browser/browser_495495.js => browser/components/sessionstore/test/browser_495495.js
rename : browser/components/sessionstore/test/browser/browser_500328.js => browser/components/sessionstore/test/browser_500328.js
rename : browser/components/sessionstore/test/browser/browser_506482.js => browser/components/sessionstore/test/browser_506482.js
rename : browser/components/sessionstore/test/browser/browser_514751.js => browser/components/sessionstore/test/browser_514751.js
rename : browser/components/sessionstore/test/browser/browser_522375.js => browser/components/sessionstore/test/browser_522375.js
rename : browser/components/sessionstore/test/browser/browser_522545.js => browser/components/sessionstore/test/browser_522545.js
rename : browser/components/sessionstore/test/browser/browser_524745.js => browser/components/sessionstore/test/browser_524745.js
rename : browser/components/sessionstore/test/browser/browser_526613.js => browser/components/sessionstore/test/browser_526613.js
rename : browser/components/sessionstore/test/browser/browser_528776.js => browser/components/sessionstore/test/browser_528776.js
rename : browser/components/sessionstore/test/browser/browser_579868.js => browser/components/sessionstore/test/browser_579868.js
rename : browser/components/sessionstore/test/browser/browser_579879.js => browser/components/sessionstore/test/browser_579879.js
rename : browser/components/sessionstore/test/browser/browser_580512.js => browser/components/sessionstore/test/browser_580512.js
rename : browser/components/sessionstore/test/browser/browser_581593.js => browser/components/sessionstore/test/browser_581593.js
rename : browser/components/sessionstore/test/browser/browser_581937.js => browser/components/sessionstore/test/browser_581937.js
rename : browser/components/sessionstore/test/browser/browser_586068-cascaded_restore.js => browser/components/sessionstore/test/browser_586068-cascaded_restore.js
rename : browser/components/sessionstore/test/browser/browser_586147.js => browser/components/sessionstore/test/browser_586147.js
rename : browser/components/sessionstore/test/browser/browser_588426.js => browser/components/sessionstore/test/browser_588426.js
rename : browser/components/sessionstore/test/browser/browser_589246.js => browser/components/sessionstore/test/browser_589246.js
rename : browser/components/sessionstore/test/browser/browser_590268.js => browser/components/sessionstore/test/browser_590268.js
rename : browser/components/sessionstore/test/browser/browser_590563.js => browser/components/sessionstore/test/browser_590563.js
rename : browser/components/sessionstore/test/browser/browser_595601-restore_hidden.js => browser/components/sessionstore/test/browser_595601-restore_hidden.js
rename : browser/components/sessionstore/test/browser/browser_597071.js => browser/components/sessionstore/test/browser_597071.js
rename : browser/components/sessionstore/test/browser/browser_597315.js => browser/components/sessionstore/test/browser_597315.js
rename : browser/components/sessionstore/test/browser/browser_597315_a.html => browser/components/sessionstore/test/browser_597315_a.html
rename : browser/components/sessionstore/test/browser/browser_597315_b.html => browser/components/sessionstore/test/browser_597315_b.html
rename : browser/components/sessionstore/test/browser/browser_597315_c.html => browser/components/sessionstore/test/browser_597315_c.html
rename : browser/components/sessionstore/test/browser/browser_597315_c1.html => browser/components/sessionstore/test/browser_597315_c1.html
rename : browser/components/sessionstore/test/browser/browser_597315_c2.html => browser/components/sessionstore/test/browser_597315_c2.html
rename : browser/components/sessionstore/test/browser/browser_597315_index.html => browser/components/sessionstore/test/browser_597315_index.html
rename : browser/components/sessionstore/test/browser/browser_599909.js => browser/components/sessionstore/test/browser_599909.js
rename : browser/components/sessionstore/test/browser/browser_600545.js => browser/components/sessionstore/test/browser_600545.js
rename : browser/components/sessionstore/test/browser/browser_601955.js => browser/components/sessionstore/test/browser_601955.js
rename : browser/components/sessionstore/test/browser/browser_607016.js => browser/components/sessionstore/test/browser_607016.js
rename : browser/components/sessionstore/test/browser/browser_615394-SSWindowState_events.js => browser/components/sessionstore/test/browser_615394-SSWindowState_events.js
rename : browser/components/sessionstore/test/browser/browser_618151.js => browser/components/sessionstore/test/browser_618151.js
rename : browser/components/sessionstore/test/browser/browser_623779.js => browser/components/sessionstore/test/browser_623779.js
rename : browser/components/sessionstore/test/browser/browser_624727.js => browser/components/sessionstore/test/browser_624727.js
rename : browser/components/sessionstore/test/browser/browser_625016.js => browser/components/sessionstore/test/browser_625016.js
rename : browser/components/sessionstore/test/browser/browser_625257.js => browser/components/sessionstore/test/browser_625257.js
rename : browser/components/sessionstore/test/browser/browser_628270.js => browser/components/sessionstore/test/browser_628270.js
rename : browser/components/sessionstore/test/browser/browser_635418.js => browser/components/sessionstore/test/browser_635418.js
rename : browser/components/sessionstore/test/browser/browser_636279.js => browser/components/sessionstore/test/browser_636279.js
rename : browser/components/sessionstore/test/browser/browser_644409-scratchpads.js => browser/components/sessionstore/test/browser_644409-scratchpads.js
rename : browser/components/sessionstore/test/browser/browser_645428.js => browser/components/sessionstore/test/browser_645428.js
rename : browser/components/sessionstore/test/browser/browser_659591.js => browser/components/sessionstore/test/browser_659591.js
rename : browser/components/sessionstore/test/browser/browser_662812.js => browser/components/sessionstore/test/browser_662812.js
rename : browser/components/sessionstore/test/browser/browser_665702-state_session.js => browser/components/sessionstore/test/browser_665702-state_session.js
rename : browser/components/sessionstore/test/browser/browser_682507.js => browser/components/sessionstore/test/browser_682507.js
rename : browser/components/sessionstore/test/browser/browser_687710.js => browser/components/sessionstore/test/browser_687710.js
rename : browser/components/sessionstore/test/browser/browser_687710_2.js => browser/components/sessionstore/test/browser_687710_2.js
rename : browser/components/sessionstore/test/browser/browser_694378.js => browser/components/sessionstore/test/browser_694378.js
rename : browser/components/sessionstore/test/browser/browser_705597.js => browser/components/sessionstore/test/browser_705597.js
rename : browser/components/sessionstore/test/browser/browser_form_restore_events.js => browser/components/sessionstore/test/browser_form_restore_events.js
rename : browser/components/sessionstore/test/browser/browser_form_restore_events_sample.html => browser/components/sessionstore/test/browser_form_restore_events_sample.html
rename : browser/components/sessionstore/test/browser/head.js => browser/components/sessionstore/test/head.js
2011-12-16 09:11:21 +00:00

109 lines
4.0 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
let newWin;
let newTab;
function test() {
/** Test for Bug 625016 - Restore windows closed in succession to quit (non-OSX only) **/
// We'll test this by opening a new window, waiting for the save event, then
// closing that window. We'll observe the "sessionstore-state-write" notification
// and check that the state contains no _closedWindows. We'll then add a new
// tab and make sure that the state following that was reset and the closed
// window is now in _closedWindows.
waitForExplicitFinish();
// We speed up the interval between session saves to ensure that the test
// runs quickly.
Services.prefs.setIntPref("browser.sessionstore.interval", 2000);
// We'll clear all closed windows to make sure our state is clean
// forgetClosedWindow doesn't trigger a delayed save
while (ss.getClosedWindowCount()) {
ss.forgetClosedWindow(0);
}
is(ss.getClosedWindowCount(), 0, "starting with no closed windows");
// Open a new window, which should trigger a save event soon.
waitForSaveState(onSaveState);
newWin = openDialog(location, "_blank", "chrome,all,dialog=no", "about:robots");
}
function onSaveState() {
// Double check that we have no closed windows
is(ss.getClosedWindowCount(), 0, "no closed windows on first save");
Services.obs.addObserver(observe1, "sessionstore-state-write", false);
// Now close the new window, which should trigger another save event
newWin.close();
}
function observe1(aSubject, aTopic, aData) {
info("observe1: " + aTopic);
switch (aTopic) {
case "sessionstore-state-write":
aSubject.QueryInterface(Ci.nsISupportsString);
let state = JSON.parse(aSubject.data);
is(state.windows.length, 2,
"observe1: 2 windows in data being writted to disk");
is(state._closedWindows.length, 0,
"observe1: no closed windows in data being writted to disk");
// The API still treats the closed window as closed, so ensure that window is there
is(ss.getClosedWindowCount(), 1,
"observe1: 1 closed window according to API");
Services.obs.removeObserver(observe1, "sessionstore-state-write", false);
Services.obs.addObserver(observe1, "sessionstore-state-write-complete", false);
break;
case "sessionstore-state-write-complete":
Services.obs.removeObserver(observe1, "sessionstore-state-write-complete", false);
openTab();
break;
}
}
function observe2(aSubject, aTopic, aData) {
info("observe2: " + aTopic);
switch (aTopic) {
case "sessionstore-state-write":
aSubject.QueryInterface(Ci.nsISupportsString);
let state = JSON.parse(aSubject.data);
is(state.windows.length, 1,
"observe2: 1 window in data being writted to disk");
is(state._closedWindows.length, 1,
"observe2: 1 closed window in data being writted to disk");
// The API still treats the closed window as closed, so ensure that window is there
is(ss.getClosedWindowCount(), 1,
"observe2: 1 closed window according to API");
Services.obs.removeObserver(observe2, "sessionstore-state-write", false);
Services.obs.addObserver(observe2, "sessionstore-state-write-complete", false);
break;
case "sessionstore-state-write-complete":
Services.obs.removeObserver(observe2, "sessionstore-state-write-complete", false);
done();
break;
}
}
// We'll open a tab, which should trigger another state save which would wipe
// the _shouldRestore attribute from the closed window
function openTab() {
Services.obs.addObserver(observe2, "sessionstore-state-write", false);
newTab = gBrowser.addTab("about:mozilla");
}
function done() {
Services.prefs.clearUserPref("browser.sessionstore.interval");
gBrowser.removeTab(newTab);
// The API still represents the closed window as closed, so we can clear it
// with the API, but just to make sure...
is(ss.getClosedWindowCount(), 1, "1 closed window according to API");
ss.forgetClosedWindow(0);
executeSoon(finish);
}