diff --git a/spec-main/asar-spec.ts b/spec-main/asar-spec.ts index f63ae0ecbf61..865a022a9a38 100644 --- a/spec-main/asar-spec.ts +++ b/spec-main/asar-spec.ts @@ -1,5 +1,6 @@ import { expect } from 'chai'; import * as path from 'path'; +import * as url from 'url'; import { BrowserWindow, ipcMain } from 'electron/main'; import { closeAllWindows } from './window-helpers'; import { emittedOnce } from './events-helpers'; @@ -79,4 +80,32 @@ describe('asar package', () => { } }); }); + + describe('worker', () => { + it('Worker can load asar file', async () => { + const w = new BrowserWindow({ show: false }); + await w.loadFile(path.join(fixtures, 'workers', 'load_worker.html')); + + const workerUrl = url.format({ + pathname: path.resolve(fixtures, 'workers', 'workers.asar', 'worker.js').replace(/\\/g, '/'), + protocol: 'file', + slashes: true + }); + const result = await w.webContents.executeJavaScript(`loadWorker('${workerUrl}')`); + expect(result).to.equal('success'); + }); + + it('SharedWorker can load asar file', async () => { + const w = new BrowserWindow({ show: false }); + await w.loadFile(path.join(fixtures, 'workers', 'load_shared_worker.html')); + + const workerUrl = url.format({ + pathname: path.resolve(fixtures, 'workers', 'workers.asar', 'shared_worker.js').replace(/\\/g, '/'), + protocol: 'file', + slashes: true + }); + const result = await w.webContents.executeJavaScript(`loadSharedWorker('${workerUrl}')`); + expect(result).to.equal('success'); + }); + }); }); diff --git a/spec/fixtures/workers/load_shared_worker.html b/spec/fixtures/workers/load_shared_worker.html new file mode 100644 index 000000000000..acee01f439d9 --- /dev/null +++ b/spec/fixtures/workers/load_shared_worker.html @@ -0,0 +1,15 @@ + + diff --git a/spec/fixtures/workers/load_worker.html b/spec/fixtures/workers/load_worker.html new file mode 100644 index 000000000000..267b465939c2 --- /dev/null +++ b/spec/fixtures/workers/load_worker.html @@ -0,0 +1,14 @@ + diff --git a/spec/fixtures/workers/workers.asar b/spec/fixtures/workers/workers.asar new file mode 100644 index 000000000000..599c694bb746 Binary files /dev/null and b/spec/fixtures/workers/workers.asar differ