electron/spec/api-browser-window-spec.coffee

91 lines
3 KiB
CoffeeScript
Raw Normal View History

2013-08-29 03:40:07 +00:00
assert = require 'assert'
fs = require 'fs'
path = require 'path'
2013-08-29 03:40:07 +00:00
remote = require 'remote'
2013-08-29 03:40:07 +00:00
BrowserWindow = remote.require 'browser-window'
describe 'browser-window module', ->
fixtures = path.resolve __dirname, 'fixtures'
2013-08-29 03:40:07 +00:00
w = null
beforeEach ->
w.destroy() if w?
w = new BrowserWindow(show: false)
afterEach ->
w.destroy() if w?
w = null
2013-08-29 03:40:07 +00:00
describe 'BrowserWindow.close()', ->
it 'should emit unload handler', (done) ->
2014-04-25 04:22:16 +00:00
w.webContents.on 'did-finish-load', ->
w.close()
w.on 'closed', ->
test = path.join(fixtures, 'api', 'unload')
2013-08-29 03:40:07 +00:00
content = fs.readFileSync(test)
fs.unlinkSync(test)
assert.equal String(content), 'unload'
done()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'unload.html')
it 'should emit beforeunload handler', (done) ->
w.on 'onbeforeunload', ->
done()
2014-04-25 04:22:16 +00:00
w.webContents.on 'did-finish-load', ->
w.close()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'beforeunload-false.html')
describe 'window.close()', ->
it 'should emit unload handler', (done) ->
w.on 'closed', ->
2013-08-29 03:40:07 +00:00
test = path.join(fixtures, 'api', 'close')
content = fs.readFileSync(test)
fs.unlinkSync(test)
assert.equal String(content), 'close'
done()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'close.html')
it 'should emit beforeunload handler', (done) ->
2013-09-02 08:47:53 +00:00
w.on 'onbeforeunload', ->
done()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'close-beforeunload-false.html')
describe 'BrowserWindow.loadUrl(url)', ->
2014-04-25 04:22:16 +00:00
it 'should emit did-start-loading event', (done) ->
w.webContents.on 'did-start-loading', ->
done()
w.loadUrl 'about:blank'
describe 'BrowserWindow.focus()', ->
it 'does not make the window become visible', ->
assert.equal w.isVisible(), false
w.focus()
assert.equal w.isVisible(), false
describe 'BrowserWindow.capturePage(rect, callback)', ->
2013-12-15 08:32:49 +00:00
it 'calls the callback with a Buffer', (done) ->
w.capturePage {x: 0, y: 0, width: 100, height: 100}, (image) ->
2013-12-15 08:32:49 +00:00
assert.equal image.constructor.name, 'Buffer'
done()
describe 'beforeunload handler', ->
it 'returning true would not prevent close', (done) ->
w.on 'closed', ->
done()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'close-beforeunload-true.html')
2013-09-02 08:54:54 +00:00
it 'returning non-empty string would not prevent close', (done) ->
w.on 'closed', ->
done()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'close-beforeunload-string.html')
it 'returning false would prevent close', (done) ->
w.on 'onbeforeunload', ->
done()
w.loadUrl 'file://' + path.join(fixtures, 'api', 'close-beforeunload-false.html')
2013-09-02 08:54:54 +00:00
it 'returning empty string would prevent close', (done) ->
w.on 'onbeforeunload', ->
done()
2013-09-02 08:54:54 +00:00
w.loadUrl 'file://' + path.join(fixtures, 'api', 'close-beforeunload-empty-string.html')