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 {app, ipcMain, BrowserWindow, protocol, webContents} = remote
const isCI = remote.getGlobal('isCi') const isCI = remote.getGlobal('isCi')
const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled')
describe('BrowserWindow module', function () { describe('BrowserWindow module', function () {
var fixtures = path.resolve(__dirname, 'fixtures') 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')) 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) => { ipcMain.once('answer', (event, content) => {
assert.equal(content, 'function') assert.equal(content, 'function')
ipcMain.once('answer', (event, content) => { 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')) 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 {BrowserWindow} = remote
const {closeWindow} = require('./window-helpers') const {closeWindow} = require('./window-helpers')
const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled')
describe('modules support', function () { describe('modules support', function () {
var fixtures = path.join(__dirname, 'fixtures') var fixtures = path.join(__dirname, 'fixtures')
describe('third-party module', function () { describe('third-party module', function () {
if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) {
describe('runas', function () { describe('runas', function () {
if (!nativeModulesEnabled) return
it('can be required in renderer', function () { it('can be required in renderer', function () {
require('runas') require('runas')
}) })
@ -26,6 +29,7 @@ describe('modules support', function () {
}) })
describe('ffi', function () { describe('ffi', function () {
if (!nativeModulesEnabled) return
if (process.platform === 'win32') return if (process.platform === 'win32') return
it('does not crash', function () { it('does not crash', function () {
@ -36,7 +40,6 @@ describe('modules support', function () {
assert.equal(libm.ceil(1.5), 2) assert.equal(libm.ceil(1.5), 2)
}) })
}) })
}
describe('q', function () { describe('q', function () {
var Q = require('q') 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. // Register app as standard scheme.
global.standardScheme = 'app' global.standardScheme = 'app'
global.zoomScheme = 'zoom' global.zoomScheme = 'zoom'

View file

@ -7,6 +7,7 @@ const {app, session, getGuestWebContents, ipcMain, BrowserWindow, webContents} =
const {closeWindow} = require('./window-helpers') const {closeWindow} = require('./window-helpers')
const isCI = remote.getGlobal('isCi') const isCI = remote.getGlobal('isCi')
const nativeModulesEnabled = remote.getGlobal('nativeModulesEnabled')
describe('<webview> tag', function () { describe('<webview> tag', function () {
this.timeout(3 * 60 * 1000) this.timeout(3 * 60 * 1000)
@ -171,8 +172,9 @@ describe('<webview> tag', function () {
document.body.appendChild(webview) document.body.appendChild(webview)
}) })
if (process.platform !== 'win32' || process.execPath.toLowerCase().indexOf('\\out\\d\\') === -1) {
it('loads native modules when navigation happens', function (done) { it('loads native modules when navigation happens', function (done) {
if (!nativeModulesEnabled) return done()
var listener = function () { var listener = function () {
webview.removeEventListener('did-finish-load', listener) webview.removeEventListener('did-finish-load', listener)
var listener2 = function (e) { var listener2 = function (e) {
@ -187,7 +189,6 @@ describe('<webview> tag', function () {
webview.src = 'file://' + fixtures + '/pages/native-module.html' webview.src = 'file://' + fixtures + '/pages/native-module.html'
document.body.appendChild(webview) document.body.appendChild(webview)
}) })
}
}) })
describe('preload attribute', function () { describe('preload attribute', function () {