test: deflake clipboard read/write specs (#47752)
This commit is contained in:
parent
389927dce8
commit
5128ebeddb
1 changed files with 21 additions and 13 deletions
|
@ -3288,7 +3288,12 @@ describe('navigator.clipboard.read', () => {
|
||||||
await w.loadFile(path.join(fixturesPath, 'pages', 'blank.html'));
|
await w.loadFile(path.join(fixturesPath, 'pages', 'blank.html'));
|
||||||
});
|
});
|
||||||
|
|
||||||
const readClipboard: any = () => {
|
const readClipboard = async () => {
|
||||||
|
if (!w.webContents.isFocused()) {
|
||||||
|
const focus = once(w.webContents, 'focus');
|
||||||
|
w.webContents.focus();
|
||||||
|
await focus;
|
||||||
|
}
|
||||||
return w.webContents.executeJavaScript(`
|
return w.webContents.executeJavaScript(`
|
||||||
navigator.clipboard.read().then(clipboard => clipboard.toString()).catch(err => err.message);
|
navigator.clipboard.read().then(clipboard => clipboard.toString()).catch(err => err.message);
|
||||||
`, true);
|
`, true);
|
||||||
|
@ -3306,11 +3311,7 @@ describe('navigator.clipboard.read', () => {
|
||||||
|
|
||||||
it('returns an error when permission denied', async () => {
|
it('returns an error when permission denied', async () => {
|
||||||
session.defaultSession.setPermissionRequestHandler((wc, permission, callback) => {
|
session.defaultSession.setPermissionRequestHandler((wc, permission, callback) => {
|
||||||
if (permission === 'clipboard-read') {
|
callback(permission !== 'clipboard-read');
|
||||||
callback(false);
|
|
||||||
} else {
|
|
||||||
callback(true);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const clipboard = await readClipboard();
|
const clipboard = await readClipboard();
|
||||||
expect(clipboard).to.contain('Read permission denied.');
|
expect(clipboard).to.contain('Read permission denied.');
|
||||||
|
@ -3318,11 +3319,7 @@ describe('navigator.clipboard.read', () => {
|
||||||
|
|
||||||
it('returns clipboard contents when permission is granted', async () => {
|
it('returns clipboard contents when permission is granted', async () => {
|
||||||
session.defaultSession.setPermissionRequestHandler((wc, permission, callback) => {
|
session.defaultSession.setPermissionRequestHandler((wc, permission, callback) => {
|
||||||
if (permission === 'clipboard-read') {
|
callback(permission === 'clipboard-read');
|
||||||
callback(true);
|
|
||||||
} else {
|
|
||||||
callback(false);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const clipboard = await readClipboard();
|
const clipboard = await readClipboard();
|
||||||
expect(clipboard).to.not.contain('Read permission denied.');
|
expect(clipboard).to.not.contain('Read permission denied.');
|
||||||
|
@ -3336,7 +3333,12 @@ describe('navigator.clipboard.write', () => {
|
||||||
await w.loadFile(path.join(fixturesPath, 'pages', 'blank.html'));
|
await w.loadFile(path.join(fixturesPath, 'pages', 'blank.html'));
|
||||||
});
|
});
|
||||||
|
|
||||||
const writeClipboard: any = () => {
|
const writeClipboard = async () => {
|
||||||
|
if (!w.webContents.isFocused()) {
|
||||||
|
const focus = once(w.webContents, 'focus');
|
||||||
|
w.webContents.focus();
|
||||||
|
await focus;
|
||||||
|
}
|
||||||
return w.webContents.executeJavaScript(`
|
return w.webContents.executeJavaScript(`
|
||||||
navigator.clipboard.writeText('Hello World!').catch(err => err.message);
|
navigator.clipboard.writeText('Hello World!').catch(err => err.message);
|
||||||
`, true);
|
`, true);
|
||||||
|
@ -3378,7 +3380,13 @@ describe('navigator.clipboard.write', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('paste execCommand', () => {
|
describe('paste execCommand', () => {
|
||||||
const readClipboard: any = (w: BrowserWindow) => {
|
const readClipboard = async (w: BrowserWindow) => {
|
||||||
|
if (!w.webContents.isFocused()) {
|
||||||
|
const focus = once(w.webContents, 'focus');
|
||||||
|
w.webContents.focus();
|
||||||
|
await focus;
|
||||||
|
}
|
||||||
|
|
||||||
return w.webContents.executeJavaScript(`
|
return w.webContents.executeJavaScript(`
|
||||||
new Promise((resolve) => {
|
new Promise((resolve) => {
|
||||||
const timeout = setTimeout(() => {
|
const timeout = setTimeout(() => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue