Browse Source

Send coverage from chrome extension iframe

Kevin Sawicki 8 years ago
parent
commit
60e60d86d1
2 changed files with 15 additions and 0 deletions
  1. 4 0
      spec/coverage/reporter.js
  2. 11 0
      spec/fixtures/devtools-extensions/foo/index.html

+ 4 - 0
spec/coverage/reporter.js

@@ -117,6 +117,10 @@ const saveCoverageOnBeforeUnload = () => {
     saveCoverageData(event.sender, coverage, pid)
   })
 
+  ipcMain.on('report-coverage', function (event, message) {
+    saveCoverageData(event.sender, message.coverage, `${message.pid}-extension`)
+  })
+
   app.on('web-contents-created', function (event, webContents) {
     webContents.executeJavaScript(`
       window.addEventListener('beforeunload', function () {

+ 11 - 0
spec/fixtures/devtools-extensions/foo/index.html

@@ -16,6 +16,15 @@
         })
       }
 
+      function reportCoverage () {
+        var message = JSON.stringify({
+          pid: chrome.runtime.id,
+          coverage: window.__coverage__
+        })
+        var coverageMessage = `require('electron').ipcRenderer.send('report-coverage', ${message})`
+        window.chrome.devtools.inspectedWindow.eval(coverageMessage, function () {})
+      }
+
       testStorage(function (syncItems, localItems) {
         var message = JSON.stringify({
           runtimeId: chrome.runtime.id,
@@ -26,6 +35,8 @@
             sync: syncItems
           }
         })
+
+        reportCoverage()
         var sendMessage = `require('electron').ipcRenderer.send('answer', ${message})`
         window.chrome.devtools.inspectedWindow.eval(sendMessage, function () {})
       })