Bug 1259329 - Split test up to fix intermittent timeout; r?jmaher draft
authorRob Wood <rwood@mozilla.com>
Mon, 15 Aug 2016 15:05:24 -0400
changeset 400773 b5b6241ba3bbbd33f4ca4700b2d12e9d96a913ea
parent 400444 6e191a55c3d23e83e6a2e72e4e80c1dc21516493
child 528325 1dec97ca9d4cd5e7fcee750bf8bdae199e1925c6
push id26279
push userrwood@mozilla.com
push dateMon, 15 Aug 2016 19:08:51 +0000
reviewersjmaher
bugs1259329
milestone51.0a1
Bug 1259329 - Split test up to fix intermittent timeout; r?jmaher MozReview-Commit-ID: 5uDU6ScsDea
browser/components/sessionstore/test/browser.ini
browser/components/sessionstore/test/browser_sessionStorage.js
browser/components/sessionstore/test/browser_sessionStorage_size.js
--- a/browser/components/sessionstore/test/browser.ini
+++ b/browser/components/sessionstore/test/browser.ini
@@ -106,16 +106,17 @@ skip-if = buildapp == 'mulet'
 skip-if = e10s # Bug 1271024
 [browser_replace_load.js]
 [browser_restore_redirect.js]
 [browser_restore_cookies_noOriginAttributes.js]
 [browser_scrollPositions.js]
 [browser_scrollPositionsReaderMode.js]
 [browser_sessionHistory.js]
 [browser_sessionStorage.js]
+[browser_sessionStorage_size.js]
 [browser_swapDocShells.js]
 [browser_switch_remoteness.js]
 run-if = e10s
 [browser_upgrade_backup.js]
 [browser_windowRestore_perwindowpb.js]
 [browser_248970_b_perwindowpb.js]
 # Disabled because of leaks.
 # Re-enabling and rewriting this test is tracked in bug 936919.
--- a/browser/components/sessionstore/test/browser_sessionStorage.js
+++ b/browser/components/sessionstore/test/browser_sessionStorage.js
@@ -178,51 +178,11 @@ add_task(function respect_privacy_level(
   // With privacy_level=0 the duplicated |tab2| should persist all data.
   [{state: {storage}}] = JSON.parse(ss.getClosedTabData(window));
   is(storage["http://mochi.test:8888"].test, OUTER_VALUE,
     "http sessionStorage data has been saved");
   is(storage["https://example.com"].test, INNER_VALUE,
     "https sessionStorage data has been saved");
 });
 
-// Test that we record the size of messages.
-add_task(function* test_telemetry() {
-  Services.telemetry.canRecordExtended = true;
-  let histogram = Services.telemetry.getHistogramById("FX_SESSION_RESTORE_DOM_STORAGE_SIZE_ESTIMATE_CHARS");
-  let snap1 = histogram.snapshot();
-
-  let tab = gBrowser.addTab(URL);
-  let browser = tab.linkedBrowser;
-  yield promiseBrowserLoaded(browser);
-
-  // Flush to make sure chrome received all data.
-  yield TabStateFlusher.flush(browser);
-  let snap2 = histogram.snapshot();
-
-  Assert.ok(snap2.counts[5] > snap1.counts[5]);
-  yield promiseRemoveTab(tab);
-  Services.telemetry.canRecordExtended = false;
-});
-
-// Lower the size limit for DOM Storage content. Check that DOM Storage
-// is not updated, but that other things remain updated.
-add_task(function* test_large_content() {
-  Services.prefs.setIntPref("browser.sessionstore.dom_storage_limit", 5);
-
-  let tab = gBrowser.addTab(URL);
-  let browser = tab.linkedBrowser;
-  yield promiseBrowserLoaded(browser);
-
-  // Flush to make sure chrome received all data.
-  yield TabStateFlusher.flush(browser);
-
-  let state = JSON.parse(ss.getTabState(tab));
-  info(JSON.stringify(state, null, "\t"));
-  Assert.equal(state.storage, null, "We have no storage for the tab");
-  Assert.equal(state.entries[0].title, OUTER_VALUE);
-  yield promiseRemoveTab(tab);
-
-  Services.prefs.clearUserPref("browser.sessionstore.dom_storage_limit");
-});
-
 function purgeDomainData(browser, domain) {
   return sendMessage(browser, "ss-test:purgeDomainData", domain);
 }
new file mode 100644
--- /dev/null
+++ b/browser/components/sessionstore/test/browser_sessionStorage_size.js
@@ -0,0 +1,51 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const RAND = Math.random();
+const URL = "http://mochi.test:8888/browser/" +
+            "browser/components/sessionstore/test/browser_sessionStorage.html" +
+            "?" + RAND;
+
+const OUTER_VALUE = "outer-value-" + RAND;
+
+// Test that we record the size of messages.
+add_task(function* test_telemetry() {
+  Services.telemetry.canRecordExtended = true;
+  let histogram = Services.telemetry.getHistogramById("FX_SESSION_RESTORE_DOM_STORAGE_SIZE_ESTIMATE_CHARS");
+  let snap1 = histogram.snapshot();
+
+  let tab = gBrowser.addTab(URL);
+  let browser = tab.linkedBrowser;
+  yield promiseBrowserLoaded(browser);
+
+  // Flush to make sure chrome received all data.
+  yield TabStateFlusher.flush(browser);
+  let snap2 = histogram.snapshot();
+
+  Assert.ok(snap2.counts[5] > snap1.counts[5]);
+  yield promiseRemoveTab(tab);
+  Services.telemetry.canRecordExtended = false;
+});
+
+// Lower the size limit for DOM Storage content. Check that DOM Storage
+// is not updated, but that other things remain updated.
+add_task(function* test_large_content() {
+  Services.prefs.setIntPref("browser.sessionstore.dom_storage_limit", 5);
+
+  let tab = gBrowser.addTab(URL);
+  let browser = tab.linkedBrowser;
+  yield promiseBrowserLoaded(browser);
+
+  // Flush to make sure chrome received all data.
+  yield TabStateFlusher.flush(browser);
+
+  let state = JSON.parse(ss.getTabState(tab));
+  info(JSON.stringify(state, null, "\t"));
+  Assert.equal(state.storage, null, "We have no storage for the tab");
+  Assert.equal(state.entries[0].title, OUTER_VALUE);
+  yield promiseRemoveTab(tab);
+
+  Services.prefs.clearUserPref("browser.sessionstore.dom_storage_limit");
+});