Test for bug 581937 [r=zpao, a=blocking2.0:final+]
authorMehdi Mulani <mmmulani@uwaterloo.ca>
Sat, 29 Jan 2011 12:15:58 -0800
changeset 61592 cf073a3eafdfe4c38260b50d2d87b86a05f5f771
parent 61591 8e99b3137026617564fc7da45a2b3f8914ffeed2
child 61593 a76570899a34e5cc44d72ad7b530b3c10a336894
push idunknown
push userunknown
push dateunknown
reviewerszpao, blocking2.0
bugs581937
milestone2.0b11pre
Test for bug 581937 [r=zpao, a=blocking2.0:final+]
browser/components/sessionstore/test/browser/Makefile.in
browser/components/sessionstore/test/browser/browser_581937.js
--- a/browser/components/sessionstore/test/browser/Makefile.in
+++ b/browser/components/sessionstore/test/browser/Makefile.in
@@ -115,16 +115,17 @@ include $(topsrcdir)/config/rules.mk
 	browser_522375.js \
 	browser_522545.js \
 	browser_524745.js \
 	browser_528776.js \
 	browser_579868.js \
 	browser_579879.js \
 	browser_580512.js \
 	browser_581593.js \
+	browser_581937.js \
 	browser_586147.js \
 	browser_586068-cascaded_restore.js \
 	browser_589246.js \
 	browser_590268.js \
 	browser_597315.js \
 	browser_597315_index.html \
 	browser_597315_a.html \
 	browser_597315_b.html \
new file mode 100644
--- /dev/null
+++ b/browser/components/sessionstore/test/browser/browser_581937.js
@@ -0,0 +1,72 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is sessionstore test code.
+ *
+ * The Initial Developer of the Original Code is
+ * Mozilla Foundation.
+ * Portions created by the Initial Developer are Copyright (C) 2011
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Mehdi Mulani <mmmulani@uwaterloo.ca>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK *****/
+
+ // Tests that an about:blank tab with no history will not be saved into
+ // session store and thus, it will not show up in Recently Closed Tabs.
+
+ let ss = Cc["@mozilla.org/browser/sessionstore;1"].
+          getService(Ci.nsISessionStore);
+
+let tab;
+function test() {
+  waitForExplicitFinish();
+
+  gPrefService.setIntPref("browser.sessionstore.max_tabs_undo", 0);
+  gPrefService.clearUserPref("browser.sessionstore.max_tabs_undo");
+
+  is(ss.getClosedTabCount(window), 0, "should be no closed tabs");
+
+  gBrowser.tabContainer.addEventListener("TabOpen", onTabOpen, true);
+
+  tab = gBrowser.addTab();
+}
+
+function onTabOpen(aEvent) {
+  gBrowser.tabContainer.removeEventListener("TabOpen", onTabOpen, true);
+
+  // Let other listeners react to the TabOpen event before removing the tab.
+  executeSoon(function() {
+    is(gBrowser.browsers[1].currentURI.spec, "about:blank",
+       "we will be removing an about:blank tab");
+
+    gBrowser.removeTab(tab);
+
+    is(ss.getClosedTabCount(window), 0, "should still be no closed tabs");
+
+    executeSoon(finish);
+  });
+}