Bug 1345433 - Ensure tests load pass valid triggeringPrincipal. draft
authorThomas Nguyen <tnguyen@mozilla.com>
Mon, 23 Oct 2017 18:15:40 +0800
changeset 706054 c145a49ad9989a8d9aceafa003c476508cd55211
parent 706053 f6659ac20791f56f55b6f681271c63612920b91d
child 742548 d0459e36dc8c47f0e36b2a4b7fab049be2e4ff65
push id91677
push userbmo:tnguyen@mozilla.com
push dateFri, 01 Dec 2017 03:13:23 +0000
bugs1345433
milestone59.0a1
Bug 1345433 - Ensure tests load pass valid triggeringPrincipal. MozReview-Commit-ID: LWcP7drDPwL
browser/components/extensions/test/browser/browser_ext_tabs_discarded.js
browser/components/extensions/test/browser/browser_ext_tabs_lazy.js
browser/components/sessionstore/test/browser_906076_lazy_tabs.js
browser/components/sessionstore/test/browser_tab_label_during_restore.js
devtools/client/scratchpad/test/browser_scratchpad_sessions.js
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/SessionTest.java
--- a/browser/components/extensions/test/browser/browser_ext_tabs_discarded.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_discarded.js
@@ -1,14 +1,17 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 /* global gBrowser SessionStore */
 "use strict";
 
-let lazyTabState = {entries: [{url: "http://example.com/", title: "Example Domain"}]};
+const {Utils} = Cu.import("resource://gre/modules/sessionstore/Utils.jsm", {});
+const triggeringPrincipal_base64 = Utils.SERIALIZED_SYSTEMPRINCIPAL;
+
+let lazyTabState = {entries: [{url: "http://example.com/", triggeringPrincipal_base64, title: "Example Domain"}]};
 
 add_task(async function test_discarded() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "permissions": ["tabs"],
     },
 
     background: async function() {
--- a/browser/components/extensions/test/browser/browser_ext_tabs_lazy.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_lazy.js
@@ -1,15 +1,18 @@
 "use strict";
 
+const {Utils} = Cu.import("resource://gre/modules/sessionstore/Utils.jsm", {});
+const triggeringPrincipal_base64 = Utils.SERIALIZED_SYSTEMPRINCIPAL;
+
 const SESSION = {
   windows: [{
     tabs: [
-      {entries: [{url: "about:blank"}]},
-      {entries: [{url: "https://example.com/"}]},
+      {entries: [{url: "about:blank", triggeringPrincipal_base64}]},
+      {entries: [{url: "https://example.com/", triggeringPrincipal_base64}]},
     ],
   }],
 };
 
 add_task(async function() {
   SessionStore.setBrowserState(JSON.stringify(SESSION));
   const tab = gBrowser.tabs[1];
 
--- a/browser/components/sessionstore/test/browser_906076_lazy_tabs.js
+++ b/browser/components/sessionstore/test/browser_906076_lazy_tabs.js
@@ -1,32 +1,32 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 const TEST_STATE = {
   windows: [{
     tabs: [
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
-      { entries: [{ url: "http://example.com" }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
+      { entries: [{ url: "http://example.com", triggeringPrincipal_base64 }] },
     ]
   }]
 };
 
 const TEST_STATE_2 = {
   windows: [{
     tabs: [
-      { entries: [{ url: "about:robots" }]
+      { entries: [{ url: "about:robots", triggeringPrincipal_base64 }]
       },
       { entries: [],
         userTypedValue: "http://example.com",
         userTypedClear: 1
       }
     ]
   }]
 };
--- a/browser/components/sessionstore/test/browser_tab_label_during_restore.js
+++ b/browser/components/sessionstore/test/browser_tab_label_during_restore.js
@@ -35,20 +35,20 @@ add_task(async function() {
     };
   }
 
   info("setting test browser state");
   let browserLoadedPromise = BrowserTestUtils.firstBrowserLoaded(window, false);
   await promiseBrowserState({
     windows: [{
       tabs: [
-        { entries: [{ url: REMOTE_URL }] },
-        { entries: [{ url: ABOUT_ROBOTS_URI }] },
-        { entries: [{ url: REMOTE_URL }] },
-        { entries: [{ url: NO_TITLE_URL }] },
+        { entries: [{ url: REMOTE_URL, triggeringPrincipal_base64 }] },
+        { entries: [{ url: ABOUT_ROBOTS_URI, triggeringPrincipal_base64 }] },
+        { entries: [{ url: REMOTE_URL, triggeringPrincipal_base64 }] },
+        { entries: [{ url: NO_TITLE_URL, triggeringPrincipal_base64 }] },
       ]
     }]
   });
   let [tab1, tab2, tab3, tab4] = gBrowser.tabs;
   is(gBrowser.selectedTab, tab1, "first tab is selected");
 
   await browserLoadedPromise;
   const REMOTE_TITLE = tab1.linkedBrowser.contentTitle;
--- a/devtools/client/scratchpad/test/browser_scratchpad_sessions.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_sessions.js
@@ -1,20 +1,20 @@
  /* Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
 const {Utils} = Cu.import("resource://gre/modules/sessionstore/Utils.jsm", {});
-const triggeringPrincipalBase64 = Utils.SERIALIZED_SYSTEMPRINCIPAL;
+const triggeringPrincipal_base64 = Utils.SERIALIZED_SYSTEMPRINCIPAL;
 const ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
 
 const testState = {
   windows: [{
     tabs: [
-      { entries: [{ url: "about:blank", triggeringPrincipalBase64 }] },
+      { entries: [{ url: "about:blank", triggeringPrincipal_base64 }] },
     ]
   }],
   scratchpads: [
     { text: "text1", executionContext: 1 },
     { text: "", executionContext: 2, filename: "test.js" }
   ]
 };
 
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/SessionTest.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/SessionTest.java
@@ -51,24 +51,27 @@ public abstract class SessionTest extend
         public T[] getItems() {
             return mItems;
         }
     }
 
     protected class PageInfo {
         private final String url;
         private final String title;
+        private final String triggeringPrincipal_base64;
 
         public PageInfo(String key) {
             if (key.startsWith("about:")) {
                 url = key;
             } else {
                 url = getPage(key);
             }
             title = key;
+            triggeringPrincipal_base64 =
+              "SmIS26zLEdO3ZQBgsLbOywAAAAAAAAAAwAAAAAAAAEY=";
         }
     }
 
     protected class SessionTab extends SessionObject<PageInfo> {
         public SessionTab(int index, PageInfo... items) {
             super(index, items);
         }
     }
@@ -266,16 +269,18 @@ public abstract class SessionTest extend
                 final SessionTab sessionTab = sessionTabs[i];
                 final PageInfo[] pages = sessionTab.getItems();
 
                 for (int j = 0; j < pages.length; j++) {
                     final PageInfo page = pages[j];
                     final JSONObject entry = new JSONObject();
                     entry.put("url", page.url);
                     entry.put("title", page.title);
+                    entry.put("triggeringPrincipal_base64",
+                              page.triggeringPrincipal_base64);
                     entries.put(entry);
                 }
 
                 tab.put("entries", entries);
                 tab.put("index", sessionTab.getIndex() + 1);
                 tabs.put(tab);
             }
 
@@ -358,22 +363,27 @@ public abstract class SessionTest extend
                 final PageInfo[] pages = sessionTab.getItems();
 
                 asserter.is(index, sessionTab.getIndex() + 1, "selected page index matches");
 
                 for (int j = 0; j < entries.length(); j++) {
                     final JSONObject entry = entries.getJSONObject(j);
                     final String url = entry.getString("url");
                     final String title = entry.optString("title");
+                    final String principal =
+                      entry.getString("triggeringPrincipal_base64");
                     final PageInfo page = pages[j];
 
                     asserter.is(url, page.url, "URL in JSON matches session URL");
                     if (!page.url.startsWith("about:")) {
                         asserter.is(title, page.title, "title in JSON matches session title");
                     }
+
+                    asserter.is(principal, page.triggeringPrincipal_base64,
+                                "principal in JSON matches session principal");
                 }
             }
         } catch (JSONException e) {
             asserter.ok(false, "JSON exception", Log.getStackTraceString(e));
         }
     }
 
     /**