test: add another test for browserContext.addInitScript (#2285)
This commit is contained in:
parent
63924d9a26
commit
b88fabab13
|
|
@ -145,13 +145,11 @@ export class FFBrowser extends BrowserBase {
|
||||||
export class FFBrowserContext extends BrowserContextBase {
|
export class FFBrowserContext extends BrowserContextBase {
|
||||||
readonly _browser: FFBrowser;
|
readonly _browser: FFBrowser;
|
||||||
readonly _browserContextId: string | null;
|
readonly _browserContextId: string | null;
|
||||||
private readonly _evaluateOnNewDocumentSources: string[];
|
|
||||||
|
|
||||||
constructor(browser: FFBrowser, browserContextId: string | null, options: BrowserContextOptions) {
|
constructor(browser: FFBrowser, browserContextId: string | null, options: BrowserContextOptions) {
|
||||||
super(browser, options);
|
super(browser, options);
|
||||||
this._browser = browser;
|
this._browser = browser;
|
||||||
this._browserContextId = browserContextId;
|
this._browserContextId = browserContextId;
|
||||||
this._evaluateOnNewDocumentSources = [];
|
|
||||||
this._authenticateProxyViaHeader();
|
this._authenticateProxyViaHeader();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -304,7 +302,6 @@ export class FFBrowserContext extends BrowserContextBase {
|
||||||
|
|
||||||
async addInitScript(script: Function | string | { path?: string, content?: string }, arg?: any) {
|
async addInitScript(script: Function | string | { path?: string, content?: string }, arg?: any) {
|
||||||
const source = await helper.evaluationScript(script, arg);
|
const source = await helper.evaluationScript(script, arg);
|
||||||
this._evaluateOnNewDocumentSources.push(source);
|
|
||||||
await this._browser._connection.send('Browser.addScriptToEvaluateOnNewDocument', { browserContextId: this._browserContextId || undefined, script: source });
|
await this._browser._connection.send('Browser.addScriptToEvaluateOnNewDocument', { browserContextId: this._browserContextId || undefined, script: source });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@ describe('window.open', function() {
|
||||||
expect(intercepted).toBe(true);
|
expect(intercepted).toBe(true);
|
||||||
await context.close();
|
await context.close();
|
||||||
});
|
});
|
||||||
it('should apply addInitScript from browser context', async function({browser, server}) {
|
it('BrowserContext.addInitScript should apply to an in-process popup', async function({browser, server}) {
|
||||||
const context = await browser.newContext();
|
const context = await browser.newContext();
|
||||||
await context.addInitScript(() => window.injected = 123);
|
await context.addInitScript(() => window.injected = 123);
|
||||||
const page = await context.newPage();
|
const page = await context.newPage();
|
||||||
|
|
@ -186,6 +186,21 @@ describe('window.open', function() {
|
||||||
await context.close();
|
await context.close();
|
||||||
expect(injected).toBe(123);
|
expect(injected).toBe(123);
|
||||||
});
|
});
|
||||||
|
it('BrowserContext.addInitScript should apply to a cross-process popup', async function({browser, server}) {
|
||||||
|
const context = await browser.newContext();
|
||||||
|
await context.addInitScript(() => window.injected = 123);
|
||||||
|
const page = await context.newPage();
|
||||||
|
await page.goto(server.EMPTY_PAGE);
|
||||||
|
const [popup] = await Promise.all([
|
||||||
|
page.waitForEvent('popup'),
|
||||||
|
page.evaluate(url => window.open(url), server.CROSS_PROCESS_PREFIX + '/title.html'),
|
||||||
|
]);
|
||||||
|
expect(await popup.evaluate('injected')).toBe(123);
|
||||||
|
await popup.reload();
|
||||||
|
expect(await popup.evaluate('injected')).toBe(123);
|
||||||
|
await context.close();
|
||||||
|
});
|
||||||
|
|
||||||
it('should expose function from browser context', async function({browser, server}) {
|
it('should expose function from browser context', async function({browser, server}) {
|
||||||
const context = await browser.newContext();
|
const context = await browser.newContext();
|
||||||
await context.exposeFunction('add', (a, b) => a + b);
|
await context.exposeFunction('add', (a, b) => a + b);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue