Go back to using promise based on window:loaded event in main process tests

This commit is contained in:
Max Brunsfeld
2016-09-21 11:37:24 -07:00
parent cff4de5195
commit 3039024d17
3 changed files with 13 additions and 18 deletions

View File

@@ -338,17 +338,17 @@ describe('AtomApplication', function () {
const atomApplication1 = buildAtomApplication()
const app1Window1 = atomApplication1.launch(parseCommandLine([tempDirPath1]))
await app1Window1.applicationStartedPromise
await app1Window1.loadedPromise
const app1Window2 = atomApplication1.launch(parseCommandLine([tempDirPath2]))
await app1Window2.applicationStartedPromise
await app1Window2.loadedPromise
await app1Window1.saveState()
await app1Window2.saveState()
const atomApplication2 = buildAtomApplication()
const [app2Window1, app2Window2] = atomApplication2.launch(parseCommandLine([]))
await app2Window1.applicationStartedPromise
await app2Window2.applicationStartedPromise
await app2Window1.loadedPromise
await app2Window2.loadedPromise
assert.deepEqual(await getTreeViewRootDirectories(app2Window1), [tempDirPath1])
assert.deepEqual(await getTreeViewRootDirectories(app2Window2), [tempDirPath2])
@@ -423,7 +423,7 @@ describe('AtomApplication', function () {
async function focusWindow (window) {
window.focus()
await window.applicationStartedPromise
await window.loadedPromise
await conditionPromise(() => window.atomApplication.lastFocusedWindow === window)
}

View File

@@ -707,7 +707,6 @@ class AtomEnvironment extends Model
@menu.update()
@openInitialEmptyEditorIfNecessary()
ipcRenderer.send('window-command', 'window:application-started')
serialize: (options) ->
version: @constructor.version

View File

@@ -20,6 +20,9 @@ class AtomWindow
locationsToOpen ?= [{pathToOpen}] if pathToOpen
locationsToOpen ?= []
@loadedPromise = new Promise((@resolveLoadedPromise) =>)
@closedPromise = new Promise((@resolveClosedPromise) =>)
options =
show: false
title: 'Atom'
@@ -71,12 +74,9 @@ class AtomWindow
@browserWindow.loadSettings = loadSettings
@closedPromise = new Promise((@resolveClosedPromise) =>)
@applicationStartedPromise = new Promise (resolve) =>
@browserWindow.once('window:application-started', resolve)
@browserWindow.once 'window:loaded', =>
@loaded = true
@browserWindow.on 'window:loaded', =>
@emit 'window:loaded'
@resolveLoadedPromise()
@setLoadSettings(loadSettings)
@env = loadSettings.env if loadSettings.env?
@@ -193,10 +193,7 @@ class AtomWindow
@openLocations([{pathToOpen, initialLine, initialColumn}])
openLocations: (locationsToOpen) ->
if @loaded
@sendMessage 'open-locations', locationsToOpen
else
@browserWindow.once 'window:loaded', => @openLocations(locationsToOpen)
@loadedPromise.then => @sendMessage 'open-locations', locationsToOpen
replaceEnvironment: (env) ->
@browserWindow.webContents.send 'environment', env
@@ -255,9 +252,8 @@ class AtomWindow
isSpecWindow: -> @isSpec
reload: ->
@applicationStartedPromise = new Promise (resolve) =>
@browserWindow.once('window:application-started', resolve)
@loadedPromise = new Promise((@resolveLoadedPromise) =>)
@saveState().then => @browserWindow.reload()
@applicationStartedPromise
@loadedPromise
toggleDevTools: -> @browserWindow.toggleDevTools()