test: check that we inherit options from BrowserContext to the Page (#367)
This commit is contained in:
parent
790e38a678
commit
310d4b193b
|
|
@ -93,11 +93,18 @@ module.exports.describe = function({testRunner, expect, playwright, CHROME, WEBK
|
|||
]);
|
||||
expect(browser.browserContexts().length).toBe(1);
|
||||
});
|
||||
it('should set the default viewport', async({ newPage }) => {
|
||||
it('should propagate default viewport to the page', async({ newPage }) => {
|
||||
const page = await newPage({ viewport: { width: 456, height: 789 } });
|
||||
expect(page.viewport().width).toBe(456);
|
||||
expect(page.viewport().height).toBe(789);
|
||||
expect(await page.evaluate('window.innerWidth')).toBe(456);
|
||||
expect(await page.evaluate('window.innerHeight')).toBe(789);
|
||||
});
|
||||
it.skip(WEBKIT)('should propagate default mediaType and colorScheme to the page', async({ newPage }) => {
|
||||
const page = await newPage({ mediaType: 'print', colorScheme: 'dark' });
|
||||
expect(await page.evaluate(() => matchMedia('print').matches)).toBe(true);
|
||||
expect(await page.evaluate(() => matchMedia('(prefers-color-scheme: dark)').matches)).toBe(true);
|
||||
});
|
||||
it('should take fullPage screenshots when default viewport is null', async({server, newPage}) => {
|
||||
const page = await newPage({ viewport: null });
|
||||
await page.goto(server.PREFIX + '/grid.html');
|
||||
|
|
@ -111,6 +118,19 @@ module.exports.describe = function({testRunner, expect, playwright, CHROME, WEBK
|
|||
expect(sizeBefore.width).toBe(sizeAfter.width);
|
||||
expect(sizeBefore.height).toBe(sizeAfter.height);
|
||||
});
|
||||
it('should restore default viewport after fullPage screenshot', async({ newPage }) => {
|
||||
const page = await newPage({ viewport: { width: 456, height: 789 } });
|
||||
expect(page.viewport().width).toBe(456);
|
||||
expect(page.viewport().height).toBe(789);
|
||||
expect(await page.evaluate('window.innerWidth')).toBe(456);
|
||||
expect(await page.evaluate('window.innerHeight')).toBe(789);
|
||||
const screenshot = await page.screenshot({ fullPage: true });
|
||||
expect(screenshot).toBeInstanceOf(Buffer);
|
||||
expect(page.viewport().width).toBe(456);
|
||||
expect(page.viewport().height).toBe(789);
|
||||
expect(await page.evaluate('window.innerWidth')).toBe(456);
|
||||
expect(await page.evaluate('window.innerHeight')).toBe(789);
|
||||
});
|
||||
});
|
||||
|
||||
describe('BrowserContext({setUserAgent})', function() {
|
||||
|
|
@ -125,7 +145,7 @@ module.exports.describe = function({testRunner, expect, playwright, CHROME, WEBK
|
|||
server.waitForRequest('/empty.html'),
|
||||
page.goto(server.EMPTY_PAGE),
|
||||
]);
|
||||
expect(request.headers['user-agent']).toBe('foobar');
|
||||
expect(request.headers['user-agent']).toBe('foobar');
|
||||
}
|
||||
});
|
||||
it('should work for subframes', async({newPage, server}) => {
|
||||
|
|
@ -139,7 +159,7 @@ module.exports.describe = function({testRunner, expect, playwright, CHROME, WEBK
|
|||
server.waitForRequest('/empty.html'),
|
||||
utils.attachFrame(page, 'frame1', server.EMPTY_PAGE),
|
||||
]);
|
||||
expect(request.headers['user-agent']).toBe('foobar');
|
||||
expect(request.headers['user-agent']).toBe('foobar');
|
||||
}
|
||||
});
|
||||
it('should emulate device user-agent', async({newPage, server}) => {
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ module.exports.describe = ({testRunner, product, playwrightPath}) => {
|
|||
|
||||
state.newPage = async (options) => {
|
||||
const context = await state.newContext(options);
|
||||
return await context.newPage(options);
|
||||
return await context.newPage();
|
||||
};
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -91,6 +91,14 @@ module.exports.describe = function({testRunner, expect, product, FFOX, CHROME, W
|
|||
});
|
||||
expect(screenshot).toBeGolden('screenshot-grid-fullpage.png');
|
||||
});
|
||||
it('should restore viewport after fullPage screenshot', async({page, server}) => {
|
||||
await page.setViewport({width: 500, height: 500});
|
||||
await page.goto(server.PREFIX + '/grid.html');
|
||||
const screenshot = await page.screenshot({ fullPage: true });
|
||||
expect(screenshot).toBeInstanceOf(Buffer);
|
||||
expect(page.viewport().width).toBe(500);
|
||||
expect(page.viewport().height).toBe(500);
|
||||
});
|
||||
it('should run in parallel in multiple pages', async({page, server, context}) => {
|
||||
const N = 2;
|
||||
const pages = await Promise.all(Array(N).fill(0).map(async() => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue