spec: Make dom-ready spec stronger

This commit is contained in:
Cheng Zhao 2015-07-24 15:48:13 +08:00
parent 1a93b1db52
commit b52c07f650
5 changed files with 24 additions and 36 deletions

View file

@ -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();
});
```

View file

@ -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"

9
spec/fixtures/pages/dom-ready.html vendored Normal file
View file

@ -0,0 +1,9 @@
<html>
<body>
<script src="../../static/jquery-2.0.3.min.js"></script>
<script type="text/javascript" charset="utf-8">
var port = location.search.substr("?port=".length);
document.write("<img src='http://127.0.0.1:" + port + "/logo.png' />");
</script>
</body>
</html>

View file

@ -1,11 +0,0 @@
<html>
<body>
<img src='http://127.0.0.1:62542/logo.png' />
<script type="text/javascript" charset="utf-8">
var remote = require('remote')
remote.getCurrentWindow().webContents.on('dom-ready', function() {
require('ipc').send('dom-ready', document.readyState);
})
</script>
</body>
</html>

View file

@ -1,5 +1,6 @@
assert = require 'assert'
path = require 'path'
http = require 'http'
describe '<webview> tag', ->
fixtures = path.join __dirname, 'fixtures'
@ -234,7 +235,7 @@ describe '<webview> 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 '<webview> 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