From 90fc8d9b571b047fc06c132c79f1a53c93a9ba0b Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Thu, 26 Sep 2024 19:21:53 +0200 Subject: [PATCH] fixture --- .github/actions/enable-microphone-access/action.yml | 4 ++-- tests/config/browserTest.ts | 8 ++++++++ tests/library/browsercontext-cookies.spec.ts | 8 ++++---- tests/library/browsercontext-fetch.spec.ts | 13 ++++++------- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.github/actions/enable-microphone-access/action.yml b/.github/actions/enable-microphone-access/action.yml index b94f480647..d706b17544 100644 --- a/.github/actions/enable-microphone-access/action.yml +++ b/.github/actions/enable-microphone-access/action.yml @@ -19,7 +19,7 @@ runs: elif [[ "$version" == "12" || "$version" == "13" ]]; then sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR REPLACE INTO access VALUES('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159);" else - echo "macOS version is unsupported. Version is $version, exiting" - exit 1 + echo "Skipping unsupported macOS version $version" + exit 0 fi echo "Successfully allowed microphone access" diff --git a/tests/config/browserTest.ts b/tests/config/browserTest.ts index c301233e07..9880083107 100644 --- a/tests/config/browserTest.ts +++ b/tests/config/browserTest.ts @@ -30,6 +30,7 @@ import type { TestInfo } from '@playwright/test'; export type BrowserTestWorkerFixtures = PageWorkerFixtures & { browserVersion: string; defaultSameSiteCookieValue: string; + sameSiteStoredValueForNone: string; allowsThirdParty: boolean; browserMajorVersion: number; browserType: BrowserType; @@ -86,6 +87,13 @@ const test = baseTest.extend throw new Error('unknown browser - ' + browserName); }, { scope: 'worker' }], + sameSiteStoredValueForNone: [async ({ browserName, isMac }, run) => { + if (browserName === 'webkit' && isMac && parseInt(os.release(), 10) >= 24) + await run('Lax'); + else + await run('None'); + }, { scope: 'worker' }], + browserMajorVersion: [async ({ browserVersion }, run) => { await run(Number(browserVersion.split('.')[0])); }, { scope: 'worker' }], diff --git a/tests/library/browsercontext-cookies.spec.ts b/tests/library/browsercontext-cookies.spec.ts index 41080163de..798a840f9d 100644 --- a/tests/library/browsercontext-cookies.spec.ts +++ b/tests/library/browsercontext-cookies.spec.ts @@ -143,7 +143,7 @@ it('should get multiple cookies', async ({ context, page, server, defaultSameSit ])); }); -it('should get cookies from multiple urls', async ({ context, browserName, isWindows, platform }) => { +it('should get cookies from multiple urls', async ({ context, browserName, isWindows, sameSiteStoredValueForNone }) => { await context.addCookies([{ url: 'https://foo.com', name: 'doggo', @@ -178,7 +178,7 @@ it('should get cookies from multiple urls', async ({ context, browserName, isWin expires: -1, httpOnly: false, secure: true, - sameSite: (browserName === 'webkit' && platform === 'darwin' && parseInt(os.release(), 10) >= 24) ? 'Lax' : 'None', + sameSite: sameSiteStoredValueForNone, }])); }); @@ -274,7 +274,7 @@ it('should return secure cookies based on HTTP(S) protocol', async ({ context, b }]); }); -it('should add cookies with an expiration', async ({ context, browserName, platform }) => { +it('should add cookies with an expiration', async ({ context, sameSiteStoredValueForNone }) => { const expires = Math.floor((Date.now() / 1000)) + 3600; await context.addCookies([{ url: 'https://foo.com', @@ -293,7 +293,7 @@ it('should add cookies with an expiration', async ({ context, browserName, platf expires, httpOnly: false, secure: true, - sameSite: (browserName === 'webkit' && platform === 'darwin' && parseInt(os.release(), 10) >= 24) ? 'Lax' : 'None', + sameSite: sameSiteStoredValueForNone, }]); { // Rollover to 5-digit year diff --git a/tests/library/browsercontext-fetch.spec.ts b/tests/library/browsercontext-fetch.spec.ts index bc84fda150..ae5cf5e7d5 100644 --- a/tests/library/browsercontext-fetch.spec.ts +++ b/tests/library/browsercontext-fetch.spec.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import os from 'os'; import type { LookupAddress } from 'dns'; import formidable from 'formidable'; import fs from 'fs'; @@ -1246,7 +1245,7 @@ it('should work with connectOverCDP', async ({ browserName, browserType, server } }); -it('should support SameSite cookie attribute over https', async ({ contextFactory, httpsServer, browserName, isWindows, platform }) => { +it('should support SameSite cookie attribute over https', async ({ contextFactory, httpsServer, browserName, isWindows, sameSiteStoredValueForNone }) => { // Cookies with SameSite=None must also specify the Secure attribute. WebKit navigation // to HTTP url will fail if the response contains a cookie with Secure attribute, so // we do HTTPS navigation. @@ -1262,8 +1261,8 @@ it('should support SameSite cookie attribute over https', async ({ contextFactor const [cookie] = await page.context().cookies(); if (browserName === 'webkit' && isWindows) expect(cookie.sameSite).toBe('None'); - else if (browserName === 'webkit' && platform === 'darwin' && value === 'None') - expect(cookie.sameSite).toBe('Lax'); + else if (value === 'None') + expect(cookie.sameSite).toBe(sameSiteStoredValueForNone); else expect(cookie.sameSite).toBe(value); }); @@ -1293,7 +1292,7 @@ it('fetch should not throw on long set-cookie value', async ({ context, server } expect(cookies.map(c => c.name)).toContain('bar'); }); -it('should support set-cookie with SameSite and without Secure attribute over HTTP', async ({ page, server, browserName, isWindows, isLinux, isMac }) => { +it('should support set-cookie with SameSite and without Secure attribute over HTTP', async ({ page, server, browserName, isWindows, isLinux, sameSiteStoredValueForNone }) => { for (const value of ['None', 'Lax', 'Strict']) { await it.step(`SameSite=${value}`, async () => { server.setRoute('/empty.html', (req, res) => { @@ -1308,8 +1307,8 @@ it('should support set-cookie with SameSite and without Secure attribute over HT expect(cookie).toBeFalsy(); else if (browserName === 'webkit' && isWindows) expect(cookie.sameSite).toBe('None'); - else if (browserName === 'webkit' && isMac && parseInt(os.release(), 10) >= 24 && value === 'None') - expect(cookie.sameSite).toBe('Lax'); + else if (value === 'None') + expect(cookie.sameSite).toBe(sameSiteStoredValueForNone); else expect(cookie.sameSite).toBe(value); });