summaryrefslogtreecommitdiffstats
path: root/browser/components/sessionstore/test/browser_524745.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/sessionstore/test/browser_524745.js')
-rw-r--r--browser/components/sessionstore/test/browser_524745.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/browser/components/sessionstore/test/browser_524745.js b/browser/components/sessionstore/test/browser_524745.js
new file mode 100644
index 000000000..de53f6c92
--- /dev/null
+++ b/browser/components/sessionstore/test/browser_524745.js
@@ -0,0 +1,42 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+function test() {
+ /** Test for Bug 524745 **/
+
+ let uniqKey = "bug524745";
+ let uniqVal = Date.now().toString();
+
+ waitForExplicitFinish();
+
+ whenNewWindowLoaded({ private: false }, function (window_B) {
+ waitForFocus(function() {
+ // Add identifying information to window_B
+ ss.setWindowValue(window_B, uniqKey, uniqVal);
+ let state = JSON.parse(ss.getBrowserState());
+ let selectedWindow = state.windows[state.selectedWindow - 1];
+ is(selectedWindow.extData && selectedWindow.extData[uniqKey], uniqVal,
+ "selectedWindow is window_B");
+
+ // Now minimize window_B. The selected window shouldn't have the secret data
+ window_B.minimize();
+ waitForFocus(function() {
+ state = JSON.parse(ss.getBrowserState());
+ selectedWindow = state.windows[state.selectedWindow - 1];
+ ok(!selectedWindow.extData || !selectedWindow.extData[uniqKey],
+ "selectedWindow is not window_B after minimizing it");
+
+ // Now minimize the last open window (assumes no other tests left windows open)
+ window.minimize();
+ state = JSON.parse(ss.getBrowserState());
+ is(state.selectedWindow, 0,
+ "selectedWindow should be 0 when all windows are minimized");
+
+ // Cleanup
+ window.restore();
+ BrowserTestUtils.closeWindow(window_B).then(finish);
+ });
+ }, window_B);
+ });
+}