diff --git a/apm/package.json b/apm/package.json index b09eb087a..52f42c0af 100644 --- a/apm/package.json +++ b/apm/package.json @@ -6,6 +6,6 @@ "url": "https://github.com/atom/atom.git" }, "dependencies": { - "atom-package-manager": "0.164.0" + "atom-package-manager": "0.165.0" } } diff --git a/package.json b/package.json index 5fa296cb4..9d5e66e79 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "solarized-dark-syntax": "0.32.0", "solarized-light-syntax": "0.19.0", "archive-view": "0.56.0", - "autocomplete": "0.44.0", + "autocomplete": "0.46.0", "autoflow": "0.22.0", "autosave": "0.20.0", "background-tips": "0.24.0", @@ -116,7 +116,7 @@ "spell-check": "0.56.0", "status-bar": "0.69.0", "styleguide": "0.44.0", - "symbols-view": "0.95.0", + "symbols-view": "0.96.0", "tabs": "0.68.0", "timecop": "0.31.0", "tree-view": "0.171.0", @@ -135,7 +135,7 @@ "language-html": "0.36.0", "language-hyperlink": "0.13.0", "language-java": "0.15.0", - "language-javascript": "0.76.0", + "language-javascript": "0.77.0", "language-json": "0.14.0", "language-less": "0.27.0", "language-make": "0.14.0", diff --git a/spec/integration/helpers/start-atom.coffee b/spec/integration/helpers/start-atom.coffee index 0de6644b3..646281171 100644 --- a/spec/integration/helpers/start-atom.coffee +++ b/spec/integration/helpers/start-atom.coffee @@ -15,15 +15,23 @@ ChromedriverPort = 9515 ChromedriverURLBase = "/wd/hub" ChromedriverStatusURL = "http://localhost:#{ChromedriverPort}#{ChromedriverURLBase}/status" -pollChromeDriver = (done) -> +chromeDriverUp = (done) -> checkStatus = -> - http.get(ChromedriverStatusURL, (response) -> - if response.statusCode is 200 - done() - else - pollChromeDriver(done) - ).on("error", -> pollChromeDriver(done)) + http + .get ChromedriverStatusURL, (response) -> + if response.statusCode is 200 + done() + else + chromeDriverUp(done) + .on("error", -> chromeDriverUp(done)) + setTimeout(checkStatus, 100) +chromeDriverDown = (done) -> + checkStatus = -> + http + .get ChromedriverStatusURL, (response) -> + chromeDriverDown(done) + .on("error", done) setTimeout(checkStatus, 100) buildAtomClient = (args, env) -> @@ -137,9 +145,9 @@ module.exports = (args, env, fn) -> chromedriver.stderr.on "close", -> resolve(errorCode) - waitsFor("webdriver to start", pollChromeDriver, 15000) + waitsFor("webdriver to start", chromeDriverUp, 15000) - waitsFor("webdriver to finish", (done) -> + waitsFor("tests to run", (done) -> finish = once -> client .simulateQuit() @@ -162,3 +170,5 @@ module.exports = (args, env, fn) -> fn(client.init()).then(finish) , 30000) + + waitsFor("webdriver to stop", chromeDriverDown, 15000) diff --git a/spec/integration/startup-spec.coffee b/spec/integration/startup-spec.coffee index b20427954..828193e4d 100644 --- a/spec/integration/startup-spec.coffee +++ b/spec/integration/startup-spec.coffee @@ -150,10 +150,12 @@ describe "Starting Atom", -> .waitForWindowCount(2, 10000) .then ({value: windowHandles}) -> @window(windowHandles[0]) + .waitForExist("atom-workspace") .treeViewRootDirectories() .then ({value: directories}) -> windowProjectPaths.push(directories) .window(windowHandles[1]) + .waitForExist("atom-workspace") .treeViewRootDirectories() .then ({value: directories}) -> windowProjectPaths.push(directories) diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 178755786..6f7f0ac4b 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -87,7 +87,7 @@ class AtomApplication openWithOptions: ({pathsToOpen, urlsToOpen, test, pidToKillWhenClosed, devMode, safeMode, apiPreviewMode, newWindow, specDirectory, logFile, profileStartup}) -> if test - @runSpecs({exitWhenDone: true, @resourcePath, specDirectory, logFile}) + @runSpecs({exitWhenDone: true, @resourcePath, specDirectory, logFile, apiPreviewMode}) else if pathsToOpen.length > 0 @openPaths({pathsToOpen, pidToKillWhenClosed, newWindow, devMode, safeMode, apiPreviewMode, profileStartup}) else if urlsToOpen.length > 0 @@ -486,7 +486,7 @@ class AtomApplication # :specPath - The directory to load specs from. # :safeMode - A Boolean that, if true, won't run specs from ~/.atom/packages # and ~/.atom/dev/packages, defaults to false. - runSpecs: ({exitWhenDone, resourcePath, specDirectory, logFile, safeMode}) -> + runSpecs: ({exitWhenDone, resourcePath, specDirectory, logFile, safeMode, apiPreviewMode}) -> if resourcePath isnt @resourcePath and not fs.existsSync(resourcePath) resourcePath = @resourcePath @@ -498,7 +498,8 @@ class AtomApplication isSpec = true devMode = true safeMode ?= false - new AtomWindow({bootstrapScript, resourcePath, exitWhenDone, isSpec, devMode, specDirectory, logFile, safeMode}) + apiPreviewMode ?= false + new AtomWindow({bootstrapScript, resourcePath, exitWhenDone, isSpec, devMode, specDirectory, logFile, safeMode, apiPreviewMode}) runBenchmarks: ({exitWhenDone, specDirectory}={}) -> try @@ -518,11 +519,11 @@ class AtomApplication [fileToOpen, initialLine, initialColumn] = path.basename(pathToOpen).split(':') return {pathToOpen} unless initialLine - return {pathToOpen} unless parseInt(initialLine) > 0 + return {pathToOpen} unless parseInt(initialLine) >= 0 # Convert line numbers to a base of 0 - initialLine -= 1 if initialLine - initialColumn -= 1 if initialColumn + initialLine = Math.max(0, initialLine - 1) if initialLine + initialColumn = Math.max(0, initialColumn - 1) if initialColumn pathToOpen = path.join(path.dirname(pathToOpen), fileToOpen) {pathToOpen, initialLine, initialColumn}