Add test for opeing HTML file

This commit is contained in:
Ryohei Ikegami 2017-04-04 19:05:13 +09:00
parent 3eab5df4a4
commit 051e133ce3
3 changed files with 36 additions and 11 deletions

View file

@ -1071,19 +1071,28 @@ describe('BrowserWindow module', function () {
}) })
describe('nativeWindowOpen option', () => { describe('nativeWindowOpen option', () => {
it('allows synchronous access to window opened by window.open()', (done) => { beforeEach(() => {
ipcMain.once('answer', function (event, content) {
assert.equal(content, 'Hello')
done()
})
w.destroy() w.destroy()
w = new BrowserWindow({ w = new BrowserWindow({
show: false, show: true,
webPreferences: { webPreferences: {
nativeWindowOpen: true nativeWindowOpen: true
} }
}) })
w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open.html')) })
it('opens window of about:blank with cross-scripting enabled', (done) => {
ipcMain.once('answer', function (event, content) {
assert.equal(content, 'Hello')
done()
})
w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open.html#blank'))
})
it('opens window of same domain with cross-scripting enabled', (done) => {
ipcMain.once('answer', function (event, content) {
assert.equal(content, 'Hello')
done()
})
w.loadURL('file://' + path.join(fixtures, 'api', 'native-window-open.html#file'))
}) })
}) })
}) })

View file

@ -0,0 +1 @@
<h1>Hello</h1>

View file

@ -2,10 +2,25 @@
<body> <body>
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
const {ipcRenderer} = require("electron"); const {ipcRenderer} = require("electron");
const otherWin = window.open(); const tests = {
otherWin.document.write("<h1>Hello</h1>"); 'blank': () => {
const content = otherWin.document.querySelector("h1").innerText; const popup = window.open();
popup.document.write('<h1>Hello</h1>');
const content = popup.document.querySelector('h1').innerText;
ipcRenderer.send('answer', content); ipcRenderer.send('answer', content);
},
'file': () => {
const popup = window.open('native-window-open-child.html');
popup.onload = () => {
const content = popup.document.querySelector('h1').innerText;
ipcRenderer.send('answer', content);
};
}
}
const test = location.hash.slice(1);
if (tests.hasOwnProperty(test)) {
tests[test]();
}
</script> </script>
</body> </body>
</html> </html>