Browse Source

spec: check if pdf has loaded

deepak1556 8 years ago
parent
commit
80ce60f644
3 changed files with 19 additions and 6 deletions
  1. 16 5
      spec/chromium-spec.js
  2. 2 0
      spec/fixtures/module/preload-inject-ipc.js
  3. 1 1
      vendor/pdf_viewer

+ 16 - 5
spec/chromium-spec.js

@@ -813,7 +813,10 @@ describe('chromium feature', function () {
 
     beforeEach(function () {
       w = new BrowserWindow({
-        show: false
+        show: false,
+        webPreferences: {
+          preload: path.join(fixtures, 'module', 'preload-inject-ipc.js')
+        }
       })
     })
 
@@ -822,15 +825,23 @@ describe('chromium feature', function () {
     })
 
     it('opens when loading a pdf resource as top level navigation', function (done) {
-      w.webContents.on('did-finish-load', function () {
+      ipcMain.once('pdf-loaded', function (event, success) {
+        if (success) done()
+      })
+      w.webContents.on('page-title-updated', function () {
+        const source = `
+          if (window.viewer) {
+            window.viewer.setLoadCallback(function(success) {
+              window.ipcRenderer.send('pdf-loaded', success);
+            });
+          }
+        `
         const parsedURL = url.parse(w.webContents.getURL(), true)
         assert.equal(parsedURL.protocol, 'chrome:')
         assert.equal(parsedURL.hostname, 'pdf-viewer')
         assert.equal(parsedURL.query.src, pdfSource)
-      })
-      w.webContents.on('page-title-updated', function () {
         assert.equal(w.webContents.getTitle(), 'cat.pdf')
-        done()
+        w.webContents.executeJavaScript(source)
       })
       w.webContents.loadURL(pdfSource)
     })

+ 2 - 0
spec/fixtures/module/preload-inject-ipc.js

@@ -0,0 +1,2 @@
+const {ipcRenderer} = require('electron')
+window.ipcRenderer = ipcRenderer

+ 1 - 1
vendor/pdf_viewer

@@ -1 +1 @@
-Subproject commit 3bf66a67738aa338b0622f36caacbb23235e0844
+Subproject commit a050a339cfeabcfb5f07c313161d2ee27b6c3a39