WIP: Adding UT
This commit is contained in:
parent
421bf71b98
commit
0b7e7458c9
4 changed files with 112 additions and 0 deletions
|
@ -1,11 +1,13 @@
|
|||
'use strict'
|
||||
|
||||
const assert = require('assert')
|
||||
const ChildProcess = require('child_process')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const os = require('os')
|
||||
const qs = require('querystring')
|
||||
const http = require('http')
|
||||
const net = require('net')
|
||||
const {closeWindow} = require('./window-helpers')
|
||||
|
||||
const {ipcRenderer, remote, screen} = require('electron')
|
||||
|
@ -1259,6 +1261,56 @@ describe('BrowserWindow module', function () {
|
|||
})
|
||||
})
|
||||
|
||||
describe('mixed sandbox option', function () {
|
||||
// TOOD (juturu): This test needs to be fixed
|
||||
let sandboxServer = null
|
||||
const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-app-mixed-sandbox' : '/tmp/electron-app-mixed-sandbox'
|
||||
|
||||
beforeEach(function (done) {
|
||||
fs.unlink(socketPath, () => {
|
||||
sandboxServer = net.createServer()
|
||||
sandboxServer.listen(socketPath)
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
afterEach(function (done) {
|
||||
sandboxServer.close(() => {
|
||||
if (process.platform === 'win32') {
|
||||
done()
|
||||
} else {
|
||||
fs.unlink(socketPath, () => {
|
||||
done()
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
it('enable-mixed-sandbox', (done) => {
|
||||
this.timeout(120000)
|
||||
|
||||
let state = 'none'
|
||||
sandboxServer.once('error', (error) => {
|
||||
done(error)
|
||||
})
|
||||
sandboxServer.on('connection', (client) => {
|
||||
client.once('data', function (data) {
|
||||
console.log('jhreddy -' + data)
|
||||
if (String(data) === 'false' && state === 'none') {
|
||||
state = 'first-launch'
|
||||
} else if (String(data) === 'true' && state === 'first-launch') {
|
||||
done()
|
||||
} else {
|
||||
done(`Unexpected state: ${state}`)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const appPath = path.join(__dirname, 'fixtures', 'api', 'mixed-sandbox-app')
|
||||
ChildProcess.spawn(remote.process.execPath, [appPath])
|
||||
})
|
||||
})
|
||||
|
||||
describe('nativeWindowOpen option', () => {
|
||||
beforeEach(() => {
|
||||
w.destroy()
|
||||
|
|
3
spec/fixtures/api/mixed-sandbox-app/electron-app-mixed-sandbox-preload.js
vendored
Normal file
3
spec/fixtures/api/mixed-sandbox-app/electron-app-mixed-sandbox-preload.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
process.once('loaded', function () {
|
||||
window.argv = process.argv
|
||||
})
|
52
spec/fixtures/api/mixed-sandbox-app/main.js
vendored
Normal file
52
spec/fixtures/api/mixed-sandbox-app/main.js
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
const { app, BrowserWindow, dialog } = require('electron')
|
||||
const net = require('net')
|
||||
const path = require('path')
|
||||
|
||||
const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-app-mixed-sandbox' : '/tmp/electron-app-mixed-sandbox'
|
||||
|
||||
process.on('uncaughtException', () => {
|
||||
app.exit(1)
|
||||
})
|
||||
|
||||
app.once('ready', () => {
|
||||
|
||||
let lastArg = process.argv[process.argv.length - 1]
|
||||
const client = net.connect(socketPath)
|
||||
client.once('connect', () => {
|
||||
if (lastArg === '--enable-mixed-sandbox') {
|
||||
dialog.showErrorBox('connected', app.getAppPath())
|
||||
let window = new BrowserWindow({
|
||||
show: true,
|
||||
webPreferences: {
|
||||
preload: path.join(app.getAppPath(), 'electron-app-mixed-sandbox-preload.js'),
|
||||
sandbox: false
|
||||
}
|
||||
})
|
||||
|
||||
window.loadURL('data:,window')
|
||||
let argv = 'test'
|
||||
window.webContents.once('did-finish-load', () => {
|
||||
dialog.showErrorBox('finished-load', 'finished')
|
||||
window.webContents.executeJavaScript('window.argv', false, (result) => {
|
||||
dialog.showErrorBox('hello', result)
|
||||
client.end(String(result))
|
||||
})
|
||||
})
|
||||
// window.webContents.openDevTools()
|
||||
// window.webContents.executeJavaScript('window.argv', true).then((result) => {
|
||||
// dialog.showErrorBox('hello', result)
|
||||
// client.end(String(argv))
|
||||
// })
|
||||
|
||||
} else {
|
||||
client.end(String(false))
|
||||
}
|
||||
})
|
||||
client.once('end', () => {
|
||||
app.exit(0)
|
||||
})
|
||||
|
||||
if (lastArg !== '--enable-mixed-sandbox') {
|
||||
app.relaunch({ args: process.argv.slice(1).concat('--enable-mixed-sandbox') })
|
||||
}
|
||||
})
|
5
spec/fixtures/api/mixed-sandbox-app/package.json
vendored
Normal file
5
spec/fixtures/api/mixed-sandbox-app/package.json
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"name": "electron-app-mixed-sandbox",
|
||||
"main": "main.js"
|
||||
}
|
||||
|
Loading…
Reference in a new issue