Merge pull request #7428 from electron/sandbox-specs

Explicitly close popup window from sandbox spec
This commit is contained in:
Kevin Sawicki 2016-09-30 09:28:59 -07:00 committed by GitHub
commit 4a186069d9
2 changed files with 16 additions and 6 deletions

View file

@ -598,7 +598,7 @@ describe('browser-window module', function () {
const preload = path.join(fixtures, 'module', 'preload-sandbox.js')
// http protocol to simulate accessing a another domain. this is required
// http protocol to simulate accessing another domain. This is required
// because the code paths for cross domain popups is different.
function crossDomainHandler (request, callback) {
callback({
@ -698,6 +698,7 @@ describe('browser-window module', function () {
})
let htmlPath = path.join(fixtures, 'api', 'sandbox.html?window-open-external')
const pageUrl = 'file://' + htmlPath
let popupWindow
w.loadURL(pageUrl)
w.webContents.once('new-window', (e, url, frameName, disposition, options) => {
assert.equal(url, 'http://www.google.com/#q=electron')
@ -710,11 +711,20 @@ describe('browser-window module', function () {
assert.equal(html, '<h1>http://www.google.com/#q=electron</h1>')
ipcMain.once('answer', function (event, exceptionMessage) {
assert(/Blocked a frame with origin/.test(exceptionMessage))
done()
// FIXME this popup window should be closed in sandbox.html
closeWindow(popupWindow).then(() => {
popupWindow = null
done()
})
})
w.webContents.send('child-loaded')
})
})
app.once('browser-window-created', function (event, window) {
popupWindow = window
})
})
it('should set ipc event sender correctly', function (done) {

View file

@ -1,9 +1,9 @@
<html>
<script type="text/javascript" charset="utf-8">
if (window.opener) {
window.callback = function() {
window.callback = () => {
opener.require('electron').ipcRenderer.send('answer', document.body.innerHTML)
};
}
} else {
const {ipcRenderer} = require('electron')
const tests = {
@ -69,8 +69,8 @@
}, false)
let [,test] = window.location.href.split('?')
if (tests.hasOwnProperty(test))
tests[test]()
if (tests.hasOwnProperty(test))
tests[test]()
}
</script>
</html>