mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
chore: move test under correct file (#11745)
This commit is contained in:
parent
398b31de26
commit
230d041a4f
@ -23,6 +23,12 @@
|
|||||||
"parameters": ["webDriverBiDi"],
|
"parameters": ["webDriverBiDi"],
|
||||||
"expectations": ["SKIP"]
|
"expectations": ["SKIP"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions *",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["webDriverBiDi"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"testIdPattern": "[chromiumonly.spec] Chromium-Specific Launcher tests *",
|
"testIdPattern": "[chromiumonly.spec] Chromium-Specific Launcher tests *",
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
@ -215,12 +221,6 @@
|
|||||||
"parameters": ["webDriverBiDi"],
|
"parameters": ["webDriverBiDi"],
|
||||||
"expectations": ["PASS"]
|
"expectations": ["PASS"]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions *",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["webDriverBiDi"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"testIdPattern": "[page.spec] Page Page.Events.Popup *",
|
"testIdPattern": "[page.spec] Page Page.Events.Popup *",
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
@ -341,6 +341,12 @@
|
|||||||
"parameters": ["webDriverBiDi"],
|
"parameters": ["webDriverBiDi"],
|
||||||
"expectations": ["PASS"]
|
"expectations": ["PASS"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should be prompt by default",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["webDriverBiDi"],
|
||||||
|
"expectations": ["PASS"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"testIdPattern": "[browsercontext.spec] BrowserContext should close all belonging targets once closing context",
|
"testIdPattern": "[browsercontext.spec] BrowserContext should close all belonging targets once closing context",
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
@ -852,12 +858,6 @@
|
|||||||
"parameters": ["webDriverBiDi"],
|
"parameters": ["webDriverBiDi"],
|
||||||
"expectations": ["PASS"]
|
"expectations": ["PASS"]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should be prompt by default",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["webDriverBiDi"],
|
|
||||||
"expectations": ["PASS"]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"testIdPattern": "[page.spec] Page Page.addScriptTag should throw when added with content to the CSP page",
|
"testIdPattern": "[page.spec] Page Page.addScriptTag should throw when added with content to the CSP page",
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
@ -1297,6 +1297,42 @@
|
|||||||
"parameters": ["firefox", "webDriverBiDi"],
|
"parameters": ["firefox", "webDriverBiDi"],
|
||||||
"expectations": ["PASS"]
|
"expectations": ["PASS"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should deny permission when not listed",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["cdp", "firefox"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should grant permission when listed",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["cdp", "firefox"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should grant persistent-storage",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["cdp", "firefox"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should isolate permissions between browser contexts",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["cdp", "firefox"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should reset permissions",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["cdp", "firefox"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"testIdPattern": "[browsercontext.spec] BrowserContext BrowserContext.overridePermissions should trigger permission onchange",
|
||||||
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
"parameters": ["cdp", "firefox"],
|
||||||
|
"expectations": ["FAIL"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"testIdPattern": "[browsercontext.spec] BrowserContext should close all belonging targets once closing context",
|
"testIdPattern": "[browsercontext.spec] BrowserContext should close all belonging targets once closing context",
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
@ -2786,42 +2822,6 @@
|
|||||||
"parameters": ["cdp", "chrome"],
|
"parameters": ["cdp", "chrome"],
|
||||||
"expectations": ["PASS", "TIMEOUT"]
|
"expectations": ["PASS", "TIMEOUT"]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should deny permission when not listed",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["cdp", "firefox"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should grant permission when listed",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["cdp", "firefox"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should grant persistent-storage",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["cdp", "firefox"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should isolate permissions between browser contexts",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["cdp", "firefox"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should reset permissions",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["cdp", "firefox"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"testIdPattern": "[page.spec] Page BrowserContext.overridePermissions should trigger permission onchange",
|
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
|
||||||
"parameters": ["cdp", "firefox"],
|
|
||||||
"expectations": ["FAIL"]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"testIdPattern": "[page.spec] Page Page.addScriptTag should throw when added with content to the CSP page",
|
"testIdPattern": "[page.spec] Page Page.addScriptTag should throw when added with content to the CSP page",
|
||||||
"platforms": ["darwin", "linux", "win32"],
|
"platforms": ["darwin", "linux", "win32"],
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
import expect from 'expect';
|
import expect from 'expect';
|
||||||
import {TimeoutError} from 'puppeteer';
|
import {TimeoutError} from 'puppeteer';
|
||||||
|
import type {Page} from 'puppeteer-core/internal/api/Page.js';
|
||||||
|
|
||||||
import {getTestState, setupTestBrowserHooks} from './mocha-utils.js';
|
import {getTestState, setupTestBrowserHooks} from './mocha-utils.js';
|
||||||
import {waitEvent} from './utils.js';
|
import {waitEvent} from './utils.js';
|
||||||
@ -237,4 +238,131 @@ describe('BrowserContext', function () {
|
|||||||
expect(browser.browserContexts()[1]!.id).toBeDefined();
|
expect(browser.browserContexts()[1]!.id).toBeDefined();
|
||||||
await context.close();
|
await context.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('BrowserContext.overridePermissions', function () {
|
||||||
|
function getPermission(page: Page, name: PermissionName) {
|
||||||
|
return page.evaluate(name => {
|
||||||
|
return navigator.permissions.query({name}).then(result => {
|
||||||
|
return result.state;
|
||||||
|
});
|
||||||
|
}, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
it('should be prompt by default', async () => {
|
||||||
|
const {page, server} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
||||||
|
});
|
||||||
|
it('should deny permission when not listed', async () => {
|
||||||
|
const {page, server, context} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, []);
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('denied');
|
||||||
|
});
|
||||||
|
it('should fail when bad permission is given', async () => {
|
||||||
|
const {page, server, context} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
let error!: Error;
|
||||||
|
await context
|
||||||
|
// @ts-expect-error purposeful bad input for test
|
||||||
|
.overridePermissions(server.EMPTY_PAGE, ['foo'])
|
||||||
|
.catch(error_ => {
|
||||||
|
return (error = error_);
|
||||||
|
});
|
||||||
|
expect(error.message).toBe('Unknown permission: foo');
|
||||||
|
});
|
||||||
|
it('should grant permission when listed', async () => {
|
||||||
|
const {page, server, context} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, ['geolocation']);
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('granted');
|
||||||
|
});
|
||||||
|
it('should reset permissions', async () => {
|
||||||
|
const {page, server, context} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, ['geolocation']);
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('granted');
|
||||||
|
await context.clearPermissionOverrides();
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
||||||
|
});
|
||||||
|
it('should trigger permission onchange', async () => {
|
||||||
|
const {page, server, context} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
await page.evaluate(() => {
|
||||||
|
(globalThis as any).events = [];
|
||||||
|
return navigator.permissions
|
||||||
|
.query({name: 'geolocation'})
|
||||||
|
.then(function (result) {
|
||||||
|
(globalThis as any).events.push(result.state);
|
||||||
|
result.onchange = function () {
|
||||||
|
(globalThis as any).events.push(result.state);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
expect(
|
||||||
|
await page.evaluate(() => {
|
||||||
|
return (globalThis as any).events;
|
||||||
|
})
|
||||||
|
).toEqual(['prompt']);
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, []);
|
||||||
|
expect(
|
||||||
|
await page.evaluate(() => {
|
||||||
|
return (globalThis as any).events;
|
||||||
|
})
|
||||||
|
).toEqual(['prompt', 'denied']);
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, ['geolocation']);
|
||||||
|
expect(
|
||||||
|
await page.evaluate(() => {
|
||||||
|
return (globalThis as any).events;
|
||||||
|
})
|
||||||
|
).toEqual(['prompt', 'denied', 'granted']);
|
||||||
|
await context.clearPermissionOverrides();
|
||||||
|
expect(
|
||||||
|
await page.evaluate(() => {
|
||||||
|
return (globalThis as any).events;
|
||||||
|
})
|
||||||
|
).toEqual(['prompt', 'denied', 'granted', 'prompt']);
|
||||||
|
});
|
||||||
|
it('should isolate permissions between browser contexts', async () => {
|
||||||
|
const {page, server, context, browser} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
const otherContext = await browser.createIncognitoBrowserContext();
|
||||||
|
const otherPage = await otherContext.newPage();
|
||||||
|
await otherPage.goto(server.EMPTY_PAGE);
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
||||||
|
expect(await getPermission(otherPage, 'geolocation')).toBe('prompt');
|
||||||
|
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, []);
|
||||||
|
await otherContext.overridePermissions(server.EMPTY_PAGE, [
|
||||||
|
'geolocation',
|
||||||
|
]);
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('denied');
|
||||||
|
expect(await getPermission(otherPage, 'geolocation')).toBe('granted');
|
||||||
|
|
||||||
|
await context.clearPermissionOverrides();
|
||||||
|
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
||||||
|
expect(await getPermission(otherPage, 'geolocation')).toBe('granted');
|
||||||
|
|
||||||
|
await otherContext.close();
|
||||||
|
});
|
||||||
|
it('should grant persistent-storage', async () => {
|
||||||
|
const {page, server, context} = await getTestState();
|
||||||
|
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
expect(await getPermission(page, 'persistent-storage')).not.toBe(
|
||||||
|
'granted'
|
||||||
|
);
|
||||||
|
await context.overridePermissions(server.EMPTY_PAGE, [
|
||||||
|
'persistent-storage',
|
||||||
|
]);
|
||||||
|
expect(await getPermission(page, 'persistent-storage')).toBe('granted');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -318,133 +318,6 @@ describe('Page', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('BrowserContext.overridePermissions', function () {
|
|
||||||
function getPermission(page: Page, name: PermissionName) {
|
|
||||||
return page.evaluate(name => {
|
|
||||||
return navigator.permissions.query({name}).then(result => {
|
|
||||||
return result.state;
|
|
||||||
});
|
|
||||||
}, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
it('should be prompt by default', async () => {
|
|
||||||
const {page, server} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
|
||||||
});
|
|
||||||
it('should deny permission when not listed', async () => {
|
|
||||||
const {page, server, context} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, []);
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('denied');
|
|
||||||
});
|
|
||||||
it('should fail when bad permission is given', async () => {
|
|
||||||
const {page, server, context} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
let error!: Error;
|
|
||||||
await context
|
|
||||||
// @ts-expect-error purposeful bad input for test
|
|
||||||
.overridePermissions(server.EMPTY_PAGE, ['foo'])
|
|
||||||
.catch(error_ => {
|
|
||||||
return (error = error_);
|
|
||||||
});
|
|
||||||
expect(error.message).toBe('Unknown permission: foo');
|
|
||||||
});
|
|
||||||
it('should grant permission when listed', async () => {
|
|
||||||
const {page, server, context} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, ['geolocation']);
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('granted');
|
|
||||||
});
|
|
||||||
it('should reset permissions', async () => {
|
|
||||||
const {page, server, context} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, ['geolocation']);
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('granted');
|
|
||||||
await context.clearPermissionOverrides();
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
|
||||||
});
|
|
||||||
it('should trigger permission onchange', async () => {
|
|
||||||
const {page, server, context} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
await page.evaluate(() => {
|
|
||||||
(globalThis as any).events = [];
|
|
||||||
return navigator.permissions
|
|
||||||
.query({name: 'geolocation'})
|
|
||||||
.then(function (result) {
|
|
||||||
(globalThis as any).events.push(result.state);
|
|
||||||
result.onchange = function () {
|
|
||||||
(globalThis as any).events.push(result.state);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
expect(
|
|
||||||
await page.evaluate(() => {
|
|
||||||
return (globalThis as any).events;
|
|
||||||
})
|
|
||||||
).toEqual(['prompt']);
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, []);
|
|
||||||
expect(
|
|
||||||
await page.evaluate(() => {
|
|
||||||
return (globalThis as any).events;
|
|
||||||
})
|
|
||||||
).toEqual(['prompt', 'denied']);
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, ['geolocation']);
|
|
||||||
expect(
|
|
||||||
await page.evaluate(() => {
|
|
||||||
return (globalThis as any).events;
|
|
||||||
})
|
|
||||||
).toEqual(['prompt', 'denied', 'granted']);
|
|
||||||
await context.clearPermissionOverrides();
|
|
||||||
expect(
|
|
||||||
await page.evaluate(() => {
|
|
||||||
return (globalThis as any).events;
|
|
||||||
})
|
|
||||||
).toEqual(['prompt', 'denied', 'granted', 'prompt']);
|
|
||||||
});
|
|
||||||
it('should isolate permissions between browser contexts', async () => {
|
|
||||||
const {page, server, context, browser} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
const otherContext = await browser.createIncognitoBrowserContext();
|
|
||||||
const otherPage = await otherContext.newPage();
|
|
||||||
await otherPage.goto(server.EMPTY_PAGE);
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
|
||||||
expect(await getPermission(otherPage, 'geolocation')).toBe('prompt');
|
|
||||||
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, []);
|
|
||||||
await otherContext.overridePermissions(server.EMPTY_PAGE, [
|
|
||||||
'geolocation',
|
|
||||||
]);
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('denied');
|
|
||||||
expect(await getPermission(otherPage, 'geolocation')).toBe('granted');
|
|
||||||
|
|
||||||
await context.clearPermissionOverrides();
|
|
||||||
expect(await getPermission(page, 'geolocation')).toBe('prompt');
|
|
||||||
expect(await getPermission(otherPage, 'geolocation')).toBe('granted');
|
|
||||||
|
|
||||||
await otherContext.close();
|
|
||||||
});
|
|
||||||
it('should grant persistent-storage', async () => {
|
|
||||||
const {page, server, context} = await getTestState();
|
|
||||||
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
expect(await getPermission(page, 'persistent-storage')).not.toBe(
|
|
||||||
'granted'
|
|
||||||
);
|
|
||||||
await context.overridePermissions(server.EMPTY_PAGE, [
|
|
||||||
'persistent-storage',
|
|
||||||
]);
|
|
||||||
expect(await getPermission(page, 'persistent-storage')).toBe('granted');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Page.setGeolocation', function () {
|
describe('Page.setGeolocation', function () {
|
||||||
it('should work', async () => {
|
it('should work', async () => {
|
||||||
const {page, server, context} = await getTestState();
|
const {page, server, context} = await getTestState();
|
||||||
|
Loading…
Reference in New Issue
Block a user