diff --git a/spec/api-browser-window-spec.js b/spec/api-browser-window-spec.js index 48f8a579c60a..5c084cb178fd 100644 --- a/spec/api-browser-window-spec.js +++ b/spec/api-browser-window-spec.js @@ -12,6 +12,7 @@ const {ipcRenderer, remote, screen} = require('electron') const {app, ipcMain, BrowserWindow, protocol, webContents} = remote const isCI = remote.getGlobal('isCi') +const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled') describe('BrowserWindow module', function () { var fixtures = path.resolve(__dirname, 'fixtures') @@ -1301,19 +1302,19 @@ describe('BrowserWindow module', function () { w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open-iframe.html')) }) - if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) { - it('loads native addons correctly after reload', (done) => { + it('loads native addons correctly after reload', (done) => { + if (!nativeModulesEnabled) return done() + + ipcMain.once('answer', (event, content) => { + assert.equal(content, 'function') ipcMain.once('answer', (event, content) => { assert.equal(content, 'function') - ipcMain.once('answer', (event, content) => { - assert.equal(content, 'function') - done() - }) - w.reload() + done() }) - w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open-native-addon.html')) + w.reload() }) - } + w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open-native-addon.html')) + }) }) }) diff --git a/spec/modules-spec.js b/spec/modules-spec.js index ba87ed3466a8..51f54201f566 100644 --- a/spec/modules-spec.js +++ b/spec/modules-spec.js @@ -5,38 +5,41 @@ const {remote} = require('electron') const {BrowserWindow} = remote const {closeWindow} = require('./window-helpers') +const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled') + describe('modules support', function () { var fixtures = path.join(__dirname, 'fixtures') describe('third-party module', function () { - if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) { - describe('runas', function () { - it('can be required in renderer', function () { - require('runas') - }) + describe('runas', function () { + if (!nativeModulesEnabled) return - it('can be required in node binary', function (done) { - var runas = path.join(fixtures, 'module', 'runas.js') - var child = require('child_process').fork(runas) - child.on('message', function (msg) { - assert.equal(msg, 'ok') - done() - }) - }) + it('can be required in renderer', function () { + require('runas') }) - describe('ffi', function () { - if (process.platform === 'win32') return - - it('does not crash', function () { - var ffi = require('ffi') - var libm = ffi.Library('libm', { - ceil: ['double', ['double']] - }) - assert.equal(libm.ceil(1.5), 2) + it('can be required in node binary', function (done) { + var runas = path.join(fixtures, 'module', 'runas.js') + var child = require('child_process').fork(runas) + child.on('message', function (msg) { + assert.equal(msg, 'ok') + done() }) }) - } + }) + + describe('ffi', function () { + if (!nativeModulesEnabled) return + if (process.platform === 'win32') return + + it('does not crash', function () { + var ffi = require('ffi') + var libm = ffi.Library('libm', { + ceil: ['double', ['double']] + }) + assert.equal(libm.ceil(1.5), 2) + }) + }) describe('q', function () { var Q = require('q') diff --git a/spec/static/main.js b/spec/static/main.js index bff7d4ceeca3..9e59037a5508 100644 --- a/spec/static/main.js +++ b/spec/static/main.js @@ -89,6 +89,8 @@ if (global.isCi) { }) } +global.nativeModulesEnabled = process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1 + // Register app as standard scheme. global.standardScheme = 'app' global.zoomScheme = 'zoom' diff --git a/spec/webview-spec.js b/spec/webview-spec.js index 180da5b80ca4..51600d4711d3 100644 --- a/spec/webview-spec.js +++ b/spec/webview-spec.js @@ -7,6 +7,7 @@ const {app, session, getGuestWebContents, ipcMain, BrowserWindow, webContents} = const {closeWindow} = require('./window-helpers') const isCI = remote.getGlobal('isCi') +const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled') describe(' tag', function () { this.timeout(3 * 60 * 1000) @@ -171,23 +172,23 @@ describe(' tag', function () { document.body.appendChild(webview) }) - if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) { - it('loads native modules when navigation happens', function (done) { - var listener = function () { - webview.removeEventListener('did-finish-load', listener) - var listener2 = function (e) { - assert.equal(e.message, 'function') - done() - } - webview.addEventListener('console-message', listener2) - webview.reload() + it('loads native modules when navigation happens', function (done) { + if (!nativeModulesEnabled) return done() + + var listener = function () { + webview.removeEventListener('did-finish-load', listener) + var listener2 = function (e) { + assert.equal(e.message, 'function') + done() } - webview.addEventListener('did-finish-load', listener) - webview.setAttribute('nodeintegration', 'on') - webview.src = 'file://' + fixtures + '/pages/native-module.html' - document.body.appendChild(webview) - }) - } + webview.addEventListener('console-message', listener2) + webview.reload() + } + webview.addEventListener('did-finish-load', listener) + webview.setAttribute('nodeintegration', 'on') + webview.src = 'file://' + fixtures + '/pages/native-module.html' + document.body.appendChild(webview) + }) }) describe('preload attribute', function () {