mirror of
https://github.com/microsoft/playwright.git
synced 2024-12-13 17:14:02 +03:00
test(cookies): add a test for SameSite=None cookies (#9242)
This commit is contained in:
parent
c63348bd03
commit
a1558d5c70
@ -367,3 +367,39 @@ it('should(not) block third party cookies', async ({ context, page, server, brow
|
||||
expect(cookies).toEqual([]);
|
||||
}
|
||||
});
|
||||
|
||||
it('should not block third party SameSite=None cookies', async ({ contextFactory, httpsServer, browserName }) => {
|
||||
it.skip(browserName === 'webkit', 'No third party cookies in WebKit');
|
||||
const context = await contextFactory({
|
||||
ignoreHTTPSErrors: true,
|
||||
});
|
||||
const page = await context.newPage();
|
||||
|
||||
httpsServer.setRoute('/empty.html', (req, res) => {
|
||||
res.writeHead(200, {
|
||||
'Content-Type': 'text/html'
|
||||
});
|
||||
res.end(`<iframe src="${httpsServer.CROSS_PROCESS_PREFIX}/grid.html"></iframe>`);
|
||||
});
|
||||
|
||||
httpsServer.setRoute('/grid.html', (req, res) => {
|
||||
res.writeHead(200, {
|
||||
'Set-Cookie': ['a=b; Path=/; Max-Age=3600; SameSite=None; Secure'],
|
||||
'Content-Type': 'text/html'
|
||||
});
|
||||
res.end(`Hello world
|
||||
<script>
|
||||
setTimeout(() => fetch('/json'), 1000);
|
||||
</script>`);
|
||||
});
|
||||
|
||||
const cookie = new Promise(f => {
|
||||
httpsServer.setRoute('/json', (req, res) => {
|
||||
f(req.headers.cookie);
|
||||
res.end();
|
||||
});
|
||||
});
|
||||
|
||||
await page.goto(httpsServer.EMPTY_PAGE);
|
||||
expect(await cookie).toBe('a=b');
|
||||
});
|
||||
|
@ -107,6 +107,42 @@ it('should(not) block third party cookies', async ({ browserType, browserOptions
|
||||
await browser.close();
|
||||
});
|
||||
|
||||
it('should not block third party SameSite=None cookies', async ({ browserOptions, httpsServer, browserName, browserType }) => {
|
||||
it.skip(browserName === 'webkit', 'No third party cookies in WebKit');
|
||||
const browser = await browserType.launch({ ...browserOptions, headless: false });
|
||||
const page = await browser.newPage({
|
||||
ignoreHTTPSErrors: true,
|
||||
});
|
||||
|
||||
httpsServer.setRoute('/empty.html', (req, res) => {
|
||||
res.writeHead(200, {
|
||||
'Content-Type': 'text/html'
|
||||
});
|
||||
res.end(`<iframe src="${httpsServer.CROSS_PROCESS_PREFIX}/grid.html"></iframe>`);
|
||||
});
|
||||
|
||||
httpsServer.setRoute('/grid.html', (req, res) => {
|
||||
res.writeHead(200, {
|
||||
'Set-Cookie': ['a=b; Path=/; Max-Age=3600; SameSite=None; Secure'],
|
||||
'Content-Type': 'text/html'
|
||||
});
|
||||
res.end(`Hello world
|
||||
<script>
|
||||
setTimeout(() => fetch('/json'), 1000);
|
||||
</script>`);
|
||||
});
|
||||
|
||||
const cookie = new Promise(f => {
|
||||
httpsServer.setRoute('/json', (req, res) => {
|
||||
f(req.headers.cookie);
|
||||
res.end();
|
||||
});
|
||||
});
|
||||
|
||||
await page.goto(httpsServer.EMPTY_PAGE);
|
||||
expect(await cookie).toBe('a=b');
|
||||
});
|
||||
|
||||
it('should not override viewport size when passed null', async function({ browserType, browserOptions, server, browserName }) {
|
||||
it.fixme(browserName === 'webkit');
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user