spec: update browser-window-affinity spec to expect (#13239)

* spec: update browser-window-affinity spec to expect

* final cleanup
This commit is contained in:
Shelley Vohr 2018-06-17 15:36:30 -07:00 коммит произвёл GitHub
Родитель c5c571f8ec
Коммит 8d5fc61c12
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 107 добавлений и 70 удалений

Просмотреть файл

@ -1,10 +1,10 @@
'use strict'
const assert = require('assert')
const {expect} = require('chai')
const path = require('path')
const { remote } = require('electron')
const { ipcMain, BrowserWindow } = remote
const {remote} = require('electron')
const {ipcMain, BrowserWindow} = remote
const {closeWindow} = require('./window-helpers')
describe('BrowserWindow with affinity module', () => {
@ -21,16 +21,14 @@ describe('BrowserWindow with affinity module', () => {
height: 400,
webPreferences: webPrefs || {}
})
w.webContents.on('did-finish-load', () => {
resolve(w)
})
w.loadURL('file://' + path.join(fixtures, 'api', 'blank.html'))
w.webContents.on('did-finish-load', () => { resolve(w) })
w.loadURL(`file://${path.join(fixtures, 'api', 'blank.html')}`)
})
}
describe(`BrowserWindow with an affinity '${myAffinityName}'`, () => {
let mAffinityWindow
before((done) => {
before(done => {
createWindowWithWebPrefs({ affinity: myAffinityName })
.then((w) => {
mAffinityWindow = w
@ -38,50 +36,54 @@ describe('BrowserWindow with affinity module', () => {
})
})
after((done) => {
after(done => {
closeWindow(mAffinityWindow, {assertSingleWindow: false}).then(() => {
mAffinityWindow = null
done()
})
})
it('should have a different process id than a default window', (done) => {
it('should have a different process id than a default window', done => {
createWindowWithWebPrefs({})
.then((w) => {
assert.notEqual(mAffinityWindow.webContents.getOSProcessId(), w.webContents.getOSProcessId(), 'Should have the different OS process Id/s')
closeWindow(w, {assertSingleWindow: false}).then(() => {
done()
})
.then(w => {
const affinityID = mAffinityWindow.webContents.getOSProcessId()
const wcID = w.webContents.getOSProcessId()
expect(affinityID).to.not.equal(wcID, 'Should have different OS process IDs')
closeWindow(w, {assertSingleWindow: false}).then(() => { done() })
})
})
it(`should have a different process id than a window with a different affinity '${anotherAffinityName}'`, (done) => {
it(`should have a different process id than a window with a different affinity '${anotherAffinityName}'`, done => {
createWindowWithWebPrefs({ affinity: anotherAffinityName })
.then((w) => {
assert.notEqual(mAffinityWindow.webContents.getOSProcessId(), w.webContents.getOSProcessId(), 'Should have the different OS process Id/s')
closeWindow(w, {assertSingleWindow: false}).then(() => {
done()
})
.then(w => {
const affinityID = mAffinityWindow.webContents.getOSProcessId()
const wcID = w.webContents.getOSProcessId()
expect(affinityID).to.not.equal(wcID, 'Should have different OS process IDs')
closeWindow(w, {assertSingleWindow: false}).then(() => { done() })
})
})
it(`should have the same OS process id than a window with the same affinity '${myAffinityName}'`, (done) => {
it(`should have the same OS process id than a window with the same affinity '${myAffinityName}'`, done => {
createWindowWithWebPrefs({ affinity: myAffinityName })
.then((w) => {
assert.equal(mAffinityWindow.webContents.getOSProcessId(), w.webContents.getOSProcessId(), 'Should have the same OS process Id')
closeWindow(w, {assertSingleWindow: false}).then(() => {
done()
})
.then(w => {
const affinityID = mAffinityWindow.webContents.getOSProcessId()
const wcID = w.webContents.getOSProcessId()
expect(affinityID).to.equal(wcID, 'Should have the same OS process ID')
closeWindow(w, {assertSingleWindow: false}).then(() => { done() })
})
})
it(`should have the same OS process id than a window with an equivalent affinity '${myAffinityNameUpper}' (case insensitive)`, (done) => {
it(`should have the same OS process id than a window with an equivalent affinity '${myAffinityNameUpper}' (case insensitive)`, done => {
createWindowWithWebPrefs({ affinity: myAffinityNameUpper })
.then((w) => {
assert.equal(mAffinityWindow.webContents.getOSProcessId(), w.webContents.getOSProcessId(), 'Should have the same OS process Id')
closeWindow(w, {assertSingleWindow: false}).then(() => {
done()
})
.then(w => {
const affinityID = mAffinityWindow.webContents.getOSProcessId()
const wcID = w.webContents.getOSProcessId()
expect(affinityID).to.equal(wcID, 'Should have the same OS process ID')
closeWindow(w, {assertSingleWindow: false}).then(() => { done() })
})
})
})
@ -95,59 +97,94 @@ describe('BrowserWindow with affinity module', () => {
return new Promise((resolve, reject) => {
ipcMain.once('answer', (event, typeofProcess, typeofBuffer) => {
if (present) {
assert.notEqual(typeofProcess, 'undefined')
assert.notEqual(typeofBuffer, 'undefined')
expect(typeofProcess).to.not.equal('undefined')
expect(typeofBuffer).to.not.equal('undefined')
} else {
assert.equal(typeofProcess, 'undefined')
assert.equal(typeofBuffer, 'undefined')
expect(typeofProcess).to.equal('undefined')
expect(typeofBuffer).to.equal('undefined')
}
resolve()
})
})
}
it('disables node integration when specified to false', (done) => {
Promise.all([testNodeIntegration(false), createWindowWithWebPrefs({ affinity: affinityWithNodeTrue, preload: preload, nodeIntegration: false })])
.then((args) => {
closeWindow(args[1], {assertSingleWindow: false}).then(() => {
done()
it('disables node integration when specified to false', done => {
Promise.all([
testNodeIntegration(false),
createWindowWithWebPrefs({
affinity: affinityWithNodeTrue,
preload,
nodeIntegration: false
})
]).then(args => {
closeWindow(args[1], {assertSingleWindow: false}).then(() => { done() })
})
})
it('disables node integration when first window is false', (done) => {
Promise.all([testNodeIntegration(false), createWindowWithWebPrefs({ affinity: affinityWithNodeTrue, preload: preload, nodeIntegration: false })])
.then((args) => {
it('disables node integration when first window is false', done => {
Promise.all([
testNodeIntegration(false),
createWindowWithWebPrefs({
affinity: affinityWithNodeTrue,
preload,
nodeIntegration: false
})
]).then(args => {
let w1 = args[1]
return Promise.all([testNodeIntegration(false), w1, createWindowWithWebPrefs({ affinity: affinityWithNodeTrue, preload: preload, nodeIntegration: true })])
})
.then((ws) => {
return Promise.all([closeWindow(ws[1], {assertSingleWindow: false}), closeWindow(ws[2], {assertSingleWindow: false})])
})
.then(() => {
done()
return Promise.all([
testNodeIntegration(false),
w1,
createWindowWithWebPrefs({
affinity: affinityWithNodeTrue,
preload,
nodeIntegration: true
})
])
}).then(ws => {
return Promise.all([
closeWindow(ws[1], {assertSingleWindow: false}),
closeWindow(ws[2], {assertSingleWindow: false})
])
}).then(() => { done() })
})
it('enables node integration when specified to true', done => {
Promise.all([
testNodeIntegration(true),
createWindowWithWebPrefs({
affinity: affinityWithNodeFalse,
preload,
nodeIntegration: true
})
]).then(args => {
closeWindow(args[1], {assertSingleWindow: false}).then(() => { done() })
})
})
it('enables node integration when specified to true', (done) => {
Promise.all([testNodeIntegration(true), createWindowWithWebPrefs({ affinity: affinityWithNodeFalse, preload: preload, nodeIntegration: true })])
.then((args) => {
closeWindow(args[1], {assertSingleWindow: false}).then(() => {
done()
it('enables node integration when first window is true', done => {
Promise.all([
testNodeIntegration(true),
createWindowWithWebPrefs({
affinity: affinityWithNodeFalse,
preload,
nodeIntegration: true
})
})
})
it('enables node integration when first window is true', (done) => {
Promise.all([testNodeIntegration(true), createWindowWithWebPrefs({ affinity: affinityWithNodeFalse, preload: preload, nodeIntegration: true })])
.then((args) => {
]).then(args => {
let w1 = args[1]
return Promise.all([testNodeIntegration(true), w1, createWindowWithWebPrefs({ affinity: affinityWithNodeFalse, preload: preload, nodeIntegration: false })])
})
.then((ws) => {
return Promise.all([closeWindow(ws[1], {assertSingleWindow: false}), closeWindow(ws[2], {assertSingleWindow: false})])
})
.then(() => {
done()
})
return Promise.all([
testNodeIntegration(true),
w1,
createWindowWithWebPrefs({
affinity: affinityWithNodeFalse,
preload,
nodeIntegration: false
})
])
}).then(ws => {
return Promise.all([
closeWindow(ws[1], {assertSingleWindow: false}),
closeWindow(ws[2], {assertSingleWindow: false})
])
}).then(() => { done() })
})
})
})