From 39cfa2b6e3fd847e6e4532a3aa09957eb8c68266 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Tue, 26 Apr 2022 09:32:58 +0100 Subject: [PATCH] test: switch temp dir tests to use userDataDir (#13745) --- packages/playwright-core/src/browserServerImpl.ts | 2 +- packages/playwright-core/src/server/browserType.ts | 9 +++++---- tests/config/remote-server-impl.js | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/playwright-core/src/browserServerImpl.ts b/packages/playwright-core/src/browserServerImpl.ts index 39dc9a877f..9ec3f748e9 100644 --- a/packages/playwright-core/src/browserServerImpl.ts +++ b/packages/playwright-core/src/browserServerImpl.ts @@ -64,7 +64,7 @@ export class BrowserServerLauncherImpl implements BrowserServerLauncher { browserServer.close = () => browser.options.browserProcess.close(); browserServer.kill = () => browser.options.browserProcess.kill(); (browserServer as any)._disconnectForTest = () => server.close(); - (browserServer as any)._artifactsDirForTest = browser.options.artifactsDir; + (browserServer as any)._userDataDirForTest = (browser as any)._userDataDirForTest; browser.options.browserProcess.onclose = async (exitCode, signal) => { server.close(); browserServer.emit('close', exitCode, signal); diff --git a/packages/playwright-core/src/server/browserType.ts b/packages/playwright-core/src/server/browserType.ts index 7e31a5554f..14884d8b63 100644 --- a/packages/playwright-core/src/server/browserType.ts +++ b/packages/playwright-core/src/server/browserType.ts @@ -98,10 +98,10 @@ export abstract class BrowserType extends SdkObject { } } - async _innerLaunch(progress: Progress, options: types.LaunchOptions, persistent: types.BrowserContextOptions | undefined, protocolLogger: types.ProtocolLogger, userDataDir?: string): Promise { + async _innerLaunch(progress: Progress, options: types.LaunchOptions, persistent: types.BrowserContextOptions | undefined, protocolLogger: types.ProtocolLogger, maybeUserDataDir?: string): Promise { options.proxy = options.proxy ? normalizeProxySettings(options.proxy) : undefined; const browserLogsCollector = new RecentLogsCollector(); - const { browserProcess, artifactsDir, transport } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, userDataDir); + const { browserProcess, userDataDir, artifactsDir, transport } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, maybeUserDataDir); if ((options as any).__testHookBeforeCreateBrowser) await (options as any).__testHookBeforeCreateBrowser(); const browserOptions: BrowserOptions = { @@ -126,13 +126,14 @@ export abstract class BrowserType extends SdkObject { validateBrowserContextOptions(persistent, browserOptions); copyTestHooks(options, browserOptions); const browser = await this._connectToTransport(transport, browserOptions); + (browser as any)._userDataDirForTest = userDataDir; // We assume no control when using custom arguments, and do not prepare the default context in that case. if (persistent && !options.ignoreAllDefaultArgs) await browser._defaultContext!._loadDefaultContext(progress); return browser; } - private async _launchProcess(progress: Progress, options: types.LaunchOptions, isPersistent: boolean, browserLogsCollector: RecentLogsCollector, userDataDir?: string): Promise<{ browserProcess: BrowserProcess, artifactsDir: string, transport: ConnectionTransport }> { + private async _launchProcess(progress: Progress, options: types.LaunchOptions, isPersistent: boolean, browserLogsCollector: RecentLogsCollector, userDataDir?: string): Promise<{ browserProcess: BrowserProcess, artifactsDir: string, userDataDir: string, transport: ConnectionTransport }> { const { ignoreDefaultArgs, ignoreAllDefaultArgs, @@ -251,7 +252,7 @@ export abstract class BrowserType extends SdkObject { const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream]; transport = new PipeTransport(stdio[3], stdio[4]); } - return { browserProcess, artifactsDir, transport }; + return { browserProcess, artifactsDir, userDataDir, transport }; } async connectOverCDP(metadata: CallMetadata, endpointURL: string, options: { slowMo?: number }, timeout?: number): Promise { diff --git a/tests/config/remote-server-impl.js b/tests/config/remote-server-impl.js index 55980009e8..37b6dffbce 100644 --- a/tests/config/remote-server-impl.js +++ b/tests/config/remote-server-impl.js @@ -33,7 +33,7 @@ async function start() { console.log(`(exitCode=>${exitCode})`); console.log(`(signal=>${signal})`); }); - console.log(`(tempDir=>${browserServer._artifactsDirForTest})`); + console.log(`(tempDir=>${browserServer._userDataDirForTest})`); console.log(`(pid=>${browserServer.process().pid})`); console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`); }