Merge pull request #7428 from electron/sandbox-specs
Explicitly close popup window from sandbox spec
This commit is contained in:
commit
4a186069d9
2 changed files with 16 additions and 6 deletions
|
@ -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) {
|
||||
|
|
8
spec/fixtures/api/sandbox.html
vendored
8
spec/fixtures/api/sandbox.html
vendored
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue