From 1a93b1db52b97bff276a5c3fea11a5e8c8c521c6 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 24 Jul 2015 15:33:07 +0800 Subject: [PATCH 1/3] spec: Make the basic-auth spec stronger --- spec/api-browser-window-spec.coffee | 24 ------------------------ spec/fixtures/pages/basic-auth.html | 15 ++++++++++----- spec/webview-spec.coffee | 21 +++++++++++++++++++++ 3 files changed, 31 insertions(+), 29 deletions(-) diff --git a/spec/api-browser-window-spec.coffee b/spec/api-browser-window-spec.coffee index c6325426177..a2f4a66769e 100644 --- a/spec/api-browser-window-spec.coffee +++ b/spec/api-browser-window-spec.coffee @@ -4,7 +4,6 @@ path = require 'path' remote = require 'remote' http = require 'http' url = require 'url' -auth = require 'basic-auth' BrowserWindow = remote.require 'browser-window' @@ -280,26 +279,3 @@ describe 'browser-window module', -> w.webContents.on 'did-finish-load', -> w.close() w.loadUrl "file://#{fixtures}/pages/f.html" - - describe 'basic auth', -> - it 'should authenticate with correct credentials', (done) -> - ipc = remote.require 'ipc' - server = http.createServer (req, res) -> - action = url.parse(req.url, true).pathname - if action == '/' - credentials = auth(req) - if credentials.name == 'test' and credentials.pass == 'test' - res.end('Authenticated') - server.close() - else if action == '/jquery.js' - js = fs.readFileSync(path.join(__dirname, 'static', 'jquery-2.0.3.min.js')) - res.writeHead(200, {'Content-Type': 'text/javascript'}) - res.end(js, 'utf-8') - server.listen 62342, '127.0.0.1' - ipc.on 'console-message', (e, message) -> - ipc.removeAllListeners 'console-message' - assert.equal message, 'Authenticated' - done() - w.webContents.on 'did-finish-load', -> - w.close() - w.loadUrl "file://#{fixtures}/pages/basic-auth.html" diff --git a/spec/fixtures/pages/basic-auth.html b/spec/fixtures/pages/basic-auth.html index 81d5bd209ce..aa95546a9c1 100644 --- a/spec/fixtures/pages/basic-auth.html +++ b/spec/fixtures/pages/basic-auth.html @@ -1,16 +1,21 @@ - + diff --git a/spec/webview-spec.coffee b/spec/webview-spec.coffee index b47c72ac0fb..55bbdbb01e6 100644 --- a/spec/webview-spec.coffee +++ b/spec/webview-spec.coffee @@ -228,3 +228,24 @@ describe ' tag', -> webview.setAttribute 'nodeintegration', 'on' webview.src = "file://#{fixtures}/pages/history.html" document.body.appendChild webview + + describe 'basic auth', -> + auth = require 'basic-auth' + + it 'should authenticate with correct credentials', (done) -> + message = 'Authenticated' + server = require('http').createServer (req, res) -> + credentials = auth(req) + if credentials.name == 'test' and credentials.pass == 'test' + res.end(message) + else + res.end('failed') + server.close() + server.listen 0, '127.0.0.1', -> + {port} = server.address() + webview.addEventListener 'ipc-message', (e) -> + assert.equal e.channel, message + done() + webview.src = "file://#{fixtures}/pages/basic-auth.html?port=#{port}" + webview.setAttribute 'nodeintegration', 'on' + document.body.appendChild webview From b52c07f65024d0cc5c6b3202b713115d0d5dfa89 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 24 Jul 2015 15:48:13 +0800 Subject: [PATCH 2/3] spec: Make dom-ready spec stronger --- docs/api/web-view-tag.md | 4 ++-- spec/api-browser-window-spec.coffee | 22 ---------------------- spec/fixtures/pages/dom-ready.html | 9 +++++++++ spec/fixtures/pages/f.html | 11 ----------- spec/webview-spec.coffee | 14 +++++++++++++- 5 files changed, 24 insertions(+), 36 deletions(-) create mode 100644 spec/fixtures/pages/dom-ready.html delete mode 100644 spec/fixtures/pages/f.html diff --git a/docs/api/web-view-tag.md b/docs/api/web-view-tag.md index 973b62f5b76..0ff54c16170 100644 --- a/docs/api/web-view-tag.md +++ b/docs/api/web-view-tag.md @@ -130,10 +130,10 @@ If "on", the guest page will have web security disabled. ## Methods -The webview element must be loaded before using the methods. +The webview element must be loaded before using the methods. **Example** ```javascript -webview.addEventListener("dom-ready", function(){ +webview.addEventListener("dom-ready", function() { webview.openDevTools(); }); ``` diff --git a/spec/api-browser-window-spec.coffee b/spec/api-browser-window-spec.coffee index a2f4a66769e..1b570501683 100644 --- a/spec/api-browser-window-spec.coffee +++ b/spec/api-browser-window-spec.coffee @@ -257,25 +257,3 @@ describe 'browser-window module', -> assert.equal url, 'https://www.github.com/' done() w.loadUrl "file://#{fixtures}/pages/will-navigate.html" - - describe 'dom-ready event', -> - return if isCI and process.platform is 'darwin' - it 'emits when document is loaded', (done) -> - ipc = remote.require 'ipc' - server = http.createServer (req, res) -> - action = url.parse(req.url, true).pathname - if action == '/logo.png' - img = fs.readFileSync(path.join(fixtures, 'assets', 'logo.png')) - res.writeHead(200, {'Content-Type': 'image/png'}) - setTimeout -> - res.end(img, 'binary') - , 2000 - server.close() - server.listen 62542, '127.0.0.1' - ipc.on 'dom-ready', (e, state) -> - ipc.removeAllListeners 'dom-ready' - assert.equal state, 'interactive' - done() - w.webContents.on 'did-finish-load', -> - w.close() - w.loadUrl "file://#{fixtures}/pages/f.html" diff --git a/spec/fixtures/pages/dom-ready.html b/spec/fixtures/pages/dom-ready.html new file mode 100644 index 00000000000..541852f9ab0 --- /dev/null +++ b/spec/fixtures/pages/dom-ready.html @@ -0,0 +1,9 @@ + + + + + + diff --git a/spec/fixtures/pages/f.html b/spec/fixtures/pages/f.html deleted file mode 100644 index e2003a3ab0d..00000000000 --- a/spec/fixtures/pages/f.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/spec/webview-spec.coffee b/spec/webview-spec.coffee index 55bbdbb01e6..7ab8969e771 100644 --- a/spec/webview-spec.coffee +++ b/spec/webview-spec.coffee @@ -1,5 +1,6 @@ assert = require 'assert' path = require 'path' +http = require 'http' describe ' tag', -> fixtures = path.join __dirname, 'fixtures' @@ -234,7 +235,7 @@ describe ' tag', -> it 'should authenticate with correct credentials', (done) -> message = 'Authenticated' - server = require('http').createServer (req, res) -> + server = http.createServer (req, res) -> credentials = auth(req) if credentials.name == 'test' and credentials.pass == 'test' res.end(message) @@ -249,3 +250,14 @@ describe ' tag', -> webview.src = "file://#{fixtures}/pages/basic-auth.html?port=#{port}" webview.setAttribute 'nodeintegration', 'on' document.body.appendChild webview + + describe 'dom-ready event', -> + it 'emits when document is loaded', (done) -> + server = http.createServer (req) -> + # Never respond, so the page never finished loading. + server.listen 0, '127.0.0.1', -> + {port} = server.address() + webview.addEventListener 'dom-ready', -> + done() + webview.src = "file://#{fixtures}/pages/dom-ready.html?port=#{port}" + document.body.appendChild webview From 417e97eef0338546c23216f4117f48671e50f102 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 24 Jul 2015 15:49:19 +0800 Subject: [PATCH 3/3] spec: Don't reuse port in session spec --- spec/api-session-spec.coffee | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/api-session-spec.coffee b/spec/api-session-spec.coffee index bd7c9bde592..34a08ee50f0 100644 --- a/spec/api-session-spec.coffee +++ b/spec/api-session-spec.coffee @@ -20,8 +20,7 @@ describe 'session module', -> res.end('finished') server.close() - port = remote.process.port - server.listen port, '127.0.0.1', -> + server.listen 0, '127.0.0.1', -> {port} = server.address() w.loadUrl "#{url}:#{port}" w.webContents.on 'did-finish-load', ->