spec: Add test case for app.relaunch
This commit is contained in:
parent
be6ed84ff2
commit
707d68f719
5 changed files with 82 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const ChildProcess = require('child_process')
|
const ChildProcess = require('child_process')
|
||||||
const https = require('https')
|
const https = require('https')
|
||||||
|
const net = require('net')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const {remote} = require('electron')
|
const {remote} = require('electron')
|
||||||
|
@ -108,6 +109,55 @@ describe('app module', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('app.relaunch', function () {
|
||||||
|
let server = null
|
||||||
|
const socketPath = process.platform === 'win32' ?
|
||||||
|
'\\\\.\\pipe\\electron-app-relaunch' :
|
||||||
|
'/tmp/electron-app-relaunch'
|
||||||
|
|
||||||
|
beforeEach(function (done) {
|
||||||
|
fs.unlink(socketPath, (error) => {
|
||||||
|
server = net.createServer()
|
||||||
|
server.listen(socketPath)
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
afterEach(function (done) {
|
||||||
|
server.close(() => {
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
done()
|
||||||
|
} else {
|
||||||
|
fs.unlink(socketPath, (error) => {
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('relaunches the app', function (done) {
|
||||||
|
this.timeout(100000)
|
||||||
|
let state = 'none'
|
||||||
|
server.once('error', (error) => {
|
||||||
|
done(error)
|
||||||
|
})
|
||||||
|
server.on('connection', (client) => {
|
||||||
|
client.once('data', function (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', 'relaunch')
|
||||||
|
ChildProcess.spawn(remote.process.execPath, [appPath])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('app.setUserActivity(type, userInfo)', function () {
|
describe('app.setUserActivity(type, userInfo)', function () {
|
||||||
if (process.platform !== 'darwin') {
|
if (process.platform !== 'darwin') {
|
||||||
return
|
return
|
||||||
|
|
2
spec/fixtures/api/quit-app/package.json
vendored
2
spec/fixtures/api/quit-app/package.json
vendored
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"name": "quit-app",
|
"name": "electron-quit-app",
|
||||||
"main": "main.js"
|
"main": "main.js"
|
||||||
}
|
}
|
||||||
|
|
25
spec/fixtures/api/relaunch/main.js
vendored
Normal file
25
spec/fixtures/api/relaunch/main.js
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
const {app, dialog} = require('electron')
|
||||||
|
const net = require('net')
|
||||||
|
|
||||||
|
const socketPath = process.platform === 'win32' ?
|
||||||
|
'\\\\.\\pipe\\electron-app-relaunch' :
|
||||||
|
'/tmp/electron-app-relaunch'
|
||||||
|
|
||||||
|
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', () => {
|
||||||
|
client.end(String(lastArg === '--second'))
|
||||||
|
})
|
||||||
|
client.once('end', () => {
|
||||||
|
app.exit(0)
|
||||||
|
})
|
||||||
|
|
||||||
|
if (lastArg !== '--second') {
|
||||||
|
app.relaunch({args: process.argv.slice(1).concat('--second')})
|
||||||
|
}
|
||||||
|
})
|
5
spec/fixtures/api/relaunch/package.json
vendored
Normal file
5
spec/fixtures/api/relaunch/package.json
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "electron-app-relaunch",
|
||||||
|
"main": "main.js"
|
||||||
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
"temp": "0.8.1",
|
"temp": "0.8.1",
|
||||||
"walkdir": "0.0.7",
|
"walkdir": "0.0.7",
|
||||||
"ws": "0.7.2",
|
"ws": "0.7.2",
|
||||||
"yargs": "^3.31.0"
|
"yargs": "^4.7.1"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"ffi": "2.0.0",
|
"ffi": "2.0.0",
|
||||||
|
|
Loading…
Reference in a new issue