Write a spec for downloading from the webview tag.

This commit is contained in:
Charlie Hess 2015-12-02 18:40:39 -08:00
parent 0d30a8d70c
commit b369d4991e

View file

@ -87,12 +87,7 @@ describe 'session module', ->
res.end mockPDF
downloadServer.close()
it 'can download successfully', (done) ->
downloadServer.listen 0, '127.0.0.1', ->
{port} = downloadServer.address()
ipcRenderer.sendSync 'set-download-option', false
w.loadURL "#{url}:#{port}"
ipcRenderer.once 'download-done', (event, state, url, mimeType, receivedBytes, totalBytes, disposition, filename) ->
assertDownload = (event, state, url, mimeType, receivedBytes, totalBytes, disposition, filename, port) ->
assert.equal state, 'completed'
assert.equal filename, 'mock.pdf'
assert.equal url, "http://127.0.0.1:#{port}/"
@ -102,8 +97,33 @@ describe 'session module', ->
assert.equal disposition, contentDisposition
assert fs.existsSync downloadFilePath
fs.unlinkSync downloadFilePath
it 'can download using BrowserWindow.loadURL', (done) ->
downloadServer.listen 0, '127.0.0.1', ->
{port} = downloadServer.address()
ipcRenderer.sendSync 'set-download-option', false
w.loadURL "#{url}:#{port}"
ipcRenderer.once 'download-done', (event, state, url, mimeType, receivedBytes, totalBytes, disposition, filename) ->
assertDownload event, state, url, mimeType, receivedBytes, totalBytes, disposition, filename, port
done()
it 'can download using WebView.downloadURL', (done) ->
downloadServer.listen 0, '127.0.0.1', ->
{port} = downloadServer.address()
ipcRenderer.sendSync 'set-download-option', false
webview = new WebView
webview.src = "file://#{fixtures}/api/blank.html"
webview.addEventListener 'did-finish-load', ->
webview.downloadURL "#{url}:#{port}/"
ipcRenderer.once 'download-done', (event, state, url, mimeType, receivedBytes, totalBytes, disposition, filename) ->
assertDownload event, state, url, mimeType, receivedBytes, totalBytes, disposition, filename, port
document.body.removeChild(webview)
done()
document.body.appendChild webview
it 'can cancel download', (done) ->
downloadServer.listen 0, '127.0.0.1', ->
{port} = downloadServer.address()