Bug 1422985. Add test to ensure details param is JSON object. r=miketaylr a=testonly draft
authorMike Taylor <miket@mozilla.com>
Mon, 29 Jan 2018 19:55:29 -0600
changeset 748574 baa1fd18881192c35c72cb3d1f576c79f343cf6e
parent 748573 71a39fe5d7ed1c2318b4493c2a076ea17d78ecde
push id97212
push userbmo:miket@mozilla.com
push dateTue, 30 Jan 2018 01:59:12 +0000
reviewersmiketaylr, testonly
bugs1422985
milestone60.0a1
Bug 1422985. Add test to ensure details param is JSON object. r=miketaylr a=testonly MozReview-Commit-ID: IjyT44EbRL
browser/extensions/webcompat-reporter/test/browser/browser_report_site_issue.js
browser/extensions/webcompat-reporter/test/browser/webcompat.html
--- a/browser/extensions/webcompat-reporter/test/browser/browser_report_site_issue.js
+++ b/browser/extensions/webcompat-reporter/test/browser/browser_report_site_issue.js
@@ -1,11 +1,11 @@
 /* Test that clicking on the Report Site Issue button opens a new tab
    and sends a postMessaged blob to it. */
-add_task(async function test_screenshot() {
+add_task(async function test_opened_page() {
   requestLongerTimeout(2);
 
   // ./head.js sets the value for PREF_WC_REPORTER_ENDPOINT
   await SpecialPowers.pushPrefEnv({set: [[PREF_WC_REPORTER_ENDPOINT, NEW_ISSUE_PAGE]]});
 
   let tab1 = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_PAGE);
 
   let webcompatButton = document.getElementById(WC_PAGE_ACTION_ID);
@@ -26,15 +26,18 @@ add_task(async function test_screenshot(
   await screenshotPromise;
 
   await ContentTask.spawn(tab2.linkedBrowser, {TEST_PAGE}, function(args) {
     let doc = content.document;
     let urlParam = doc.getElementById("url").innerText;
     let preview = doc.getElementById("screenshot-preview");
     is(urlParam, args.TEST_PAGE, "Reported page is correctly added to the url param");
 
+    let detailsParam = doc.getElementById("details").innerText;
+    ok(typeof JSON.parse(detailsParam) == "object", "Details param is a stringified JSON object.");
+
     is(preview.innerText, "Pass", "A Blob object was successfully transferred to the test page.");
     ok(preview.style.backgroundImage.startsWith("url(\"data:image/png;base64,iVBOR"), "A green screenshot was successfully postMessaged");
   });
 
   await BrowserTestUtils.removeTab(tab2);
   await BrowserTestUtils.removeTab(tab1);
 });
--- a/browser/extensions/webcompat-reporter/test/browser/webcompat.html
+++ b/browser/extensions/webcompat-reporter/test/browser/webcompat.html
@@ -1,20 +1,23 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
 <style>
  #screenshot-preview {width: 200px; height: 200px;}
 </style>
 <div id="url"></div>
+<div id="details"></div>
 <div id="screenshot-preview">Fail</div>
 <script>
 let params = new URL(location.href).searchParams;
 let preview = document.getElementById("screenshot-preview");
 let url = document.getElementById("url");
 url.innerText = params.get("url");
+let details = document.getElementById("details");
+details.innerText = params.get("details");
 
 function getBlobAsDataURL(blob) {
   return new Promise((resolve, reject) => {
     let reader = new FileReader();
 
     reader.addEventListener("error", (e) => {
       reject(`There was an error reading the blob: ${e.type}`);
     });