Run the crash reporter specs with sandbox option.
- Create a function that accepts BrowserWindow options and generates a suite that contains the renderer-specific tests. - Run the function twice to execute the tests with and without sandbox option.
This commit is contained in:
parent
3a97cfc359
commit
5ee6205c0a
2 changed files with 19 additions and 6 deletions
|
@ -11,15 +11,20 @@ const {remote} = require('electron')
|
||||||
const {app, BrowserWindow, crashReporter} = remote.require('electron')
|
const {app, BrowserWindow, crashReporter} = remote.require('electron')
|
||||||
|
|
||||||
describe('crashReporter module', function () {
|
describe('crashReporter module', function () {
|
||||||
|
if (process.mas) {
|
||||||
|
return
|
||||||
|
}
|
||||||
var fixtures = path.resolve(__dirname, 'fixtures')
|
var fixtures = path.resolve(__dirname, 'fixtures')
|
||||||
|
const generateSpecs = (description, browserWindowOpts) => {
|
||||||
|
describe(description, function () {
|
||||||
var w = null
|
var w = null
|
||||||
var originalTempDirectory = null
|
var originalTempDirectory = null
|
||||||
var tempDirectory = null
|
var tempDirectory = null
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
w = new BrowserWindow({
|
w = new BrowserWindow(Object.assign({
|
||||||
show: false
|
show: false
|
||||||
})
|
}, browserWindowOpts))
|
||||||
tempDirectory = temp.mkdirSync('electronCrashReporterSpec-')
|
tempDirectory = temp.mkdirSync('electronCrashReporterSpec-')
|
||||||
originalTempDirectory = app.getPath('temp')
|
originalTempDirectory = app.getPath('temp')
|
||||||
app.setPath('temp', tempDirectory)
|
app.setPath('temp', tempDirectory)
|
||||||
|
@ -30,10 +35,6 @@ describe('crashReporter module', function () {
|
||||||
return closeWindow(w).then(function () { w = null })
|
return closeWindow(w).then(function () { w = null })
|
||||||
})
|
})
|
||||||
|
|
||||||
if (process.mas) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
it('should send minidump when renderer crashes', function (done) {
|
it('should send minidump when renderer crashes', function (done) {
|
||||||
if (process.env.APPVEYOR === 'True') return done()
|
if (process.env.APPVEYOR === 'True') return done()
|
||||||
if (process.env.TRAVIS === 'true') return done()
|
if (process.env.TRAVIS === 'true') return done()
|
||||||
|
@ -91,6 +92,16 @@ describe('crashReporter module', function () {
|
||||||
done: done
|
done: done
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
generateSpecs('without sandbox', {})
|
||||||
|
generateSpecs('with sandbox ', {
|
||||||
|
webPreferences: {
|
||||||
|
sandbox: true,
|
||||||
|
preload: path.join(fixtures, 'module', 'preload-sandbox.js')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
describe('.start(options)', function () {
|
describe('.start(options)', function () {
|
||||||
it('requires that the companyName and submitURL options be specified', function () {
|
it('requires that the companyName and submitURL options be specified', function () {
|
||||||
|
|
2
spec/fixtures/module/preload-sandbox.js
vendored
2
spec/fixtures/module/preload-sandbox.js
vendored
|
@ -1,6 +1,8 @@
|
||||||
(function () {
|
(function () {
|
||||||
|
const {setImmediate} = require('timers')
|
||||||
const {ipcRenderer} = require('electron')
|
const {ipcRenderer} = require('electron')
|
||||||
window.ipcRenderer = ipcRenderer
|
window.ipcRenderer = ipcRenderer
|
||||||
|
window.setImmediate = setImmediate
|
||||||
if (location.protocol === 'file:') {
|
if (location.protocol === 'file:') {
|
||||||
window.test = 'preload'
|
window.test = 'preload'
|
||||||
window.require = require
|
window.require = require
|
||||||
|
|
Loading…
Add table
Reference in a new issue