mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
test: switch temp dir tests to use userDataDir (#13745)
This commit is contained in:
parent
02cb987ddb
commit
39cfa2b6e3
@ -64,7 +64,7 @@ export class BrowserServerLauncherImpl implements BrowserServerLauncher {
|
|||||||
browserServer.close = () => browser.options.browserProcess.close();
|
browserServer.close = () => browser.options.browserProcess.close();
|
||||||
browserServer.kill = () => browser.options.browserProcess.kill();
|
browserServer.kill = () => browser.options.browserProcess.kill();
|
||||||
(browserServer as any)._disconnectForTest = () => server.close();
|
(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) => {
|
browser.options.browserProcess.onclose = async (exitCode, signal) => {
|
||||||
server.close();
|
server.close();
|
||||||
browserServer.emit('close', exitCode, signal);
|
browserServer.emit('close', exitCode, signal);
|
||||||
|
|||||||
@ -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<Browser> {
|
async _innerLaunch(progress: Progress, options: types.LaunchOptions, persistent: types.BrowserContextOptions | undefined, protocolLogger: types.ProtocolLogger, maybeUserDataDir?: string): Promise<Browser> {
|
||||||
options.proxy = options.proxy ? normalizeProxySettings(options.proxy) : undefined;
|
options.proxy = options.proxy ? normalizeProxySettings(options.proxy) : undefined;
|
||||||
const browserLogsCollector = new RecentLogsCollector();
|
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)
|
if ((options as any).__testHookBeforeCreateBrowser)
|
||||||
await (options as any).__testHookBeforeCreateBrowser();
|
await (options as any).__testHookBeforeCreateBrowser();
|
||||||
const browserOptions: BrowserOptions = {
|
const browserOptions: BrowserOptions = {
|
||||||
@ -126,13 +126,14 @@ export abstract class BrowserType extends SdkObject {
|
|||||||
validateBrowserContextOptions(persistent, browserOptions);
|
validateBrowserContextOptions(persistent, browserOptions);
|
||||||
copyTestHooks(options, browserOptions);
|
copyTestHooks(options, browserOptions);
|
||||||
const browser = await this._connectToTransport(transport, 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.
|
// We assume no control when using custom arguments, and do not prepare the default context in that case.
|
||||||
if (persistent && !options.ignoreAllDefaultArgs)
|
if (persistent && !options.ignoreAllDefaultArgs)
|
||||||
await browser._defaultContext!._loadDefaultContext(progress);
|
await browser._defaultContext!._loadDefaultContext(progress);
|
||||||
return browser;
|
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 {
|
const {
|
||||||
ignoreDefaultArgs,
|
ignoreDefaultArgs,
|
||||||
ignoreAllDefaultArgs,
|
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];
|
const stdio = launchedProcess.stdio as unknown as [NodeJS.ReadableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.WritableStream, NodeJS.ReadableStream];
|
||||||
transport = new PipeTransport(stdio[3], stdio[4]);
|
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<Browser> {
|
async connectOverCDP(metadata: CallMetadata, endpointURL: string, options: { slowMo?: number }, timeout?: number): Promise<Browser> {
|
||||||
|
|||||||
@ -33,7 +33,7 @@ async function start() {
|
|||||||
console.log(`(exitCode=>${exitCode})`);
|
console.log(`(exitCode=>${exitCode})`);
|
||||||
console.log(`(signal=>${signal})`);
|
console.log(`(signal=>${signal})`);
|
||||||
});
|
});
|
||||||
console.log(`(tempDir=>${browserServer._artifactsDirForTest})`);
|
console.log(`(tempDir=>${browserServer._userDataDirForTest})`);
|
||||||
console.log(`(pid=>${browserServer.process().pid})`);
|
console.log(`(pid=>${browserServer.process().pid})`);
|
||||||
console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`);
|
console.log(`(wsEndpoint=>${browserServer.wsEndpoint()})`);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user