DRY up logic to check if native modules should be loaded

This commit is contained in:
Kevin Sawicki 2017-05-25 16:40:15 -07:00
parent 90964290a6
commit 5cf4995f2e
4 changed files with 55 additions and 48 deletions

View file

@ -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,8 +1302,9 @@ 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) => {
if (!nativeModulesEnabled) return done()
ipcMain.once('answer', (event, content) => {
assert.equal(content, 'function')
ipcMain.once('answer', (event, content) => {
@ -1313,7 +1315,6 @@ describe('BrowserWindow module', function () {
})
w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open-native-addon.html'))
})
}
})
})

View file

@ -5,12 +5,15 @@ 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 () {
if (!nativeModulesEnabled) return
it('can be required in renderer', function () {
require('runas')
})
@ -26,6 +29,7 @@ describe('modules support', function () {
})
describe('ffi', function () {
if (!nativeModulesEnabled) return
if (process.platform === 'win32') return
it('does not crash', function () {
@ -36,7 +40,6 @@ describe('modules support', function () {
assert.equal(libm.ceil(1.5), 2)
})
})
}
describe('q', function () {
var Q = require('q')

View file

@ -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'

View file

@ -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('<webview> tag', function () {
this.timeout(3 * 60 * 1000)
@ -171,8 +172,9 @@ describe('<webview> 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) {
if (!nativeModulesEnabled) return done()
var listener = function () {
webview.removeEventListener('did-finish-load', listener)
var listener2 = function (e) {
@ -187,7 +189,6 @@ describe('<webview> tag', function () {
webview.src = 'file://' + fixtures + '/pages/native-module.html'
document.body.appendChild(webview)
})
}
})
describe('preload attribute', function () {