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