chore(rpc): clear the browsercontext test spec (#2739)

This commit is contained in:
Pavel Feldman 2020-06-26 22:38:21 -07:00 committed by GitHub
parent db12ddebb3
commit 3e33523ee3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 14 additions and 10 deletions

View file

@ -43,6 +43,8 @@ export type BrowserInitializer = {};
export interface BrowserContextChannel extends Channel {
on(event: 'bindingCall', callback: (params: BindingCallChannel) => void): this;
on(event: 'page', callback: (params: PageChannel) => void): this;
addCookies(params: { cookies: types.SetNetworkCookieParam[] }): Promise<void>;
addInitScript(params: { source: string }): Promise<void>;
clearCookies(): Promise<void>;
@ -179,8 +181,8 @@ export type JSHandleInitializer = {
export interface ElementHandleChannel extends JSHandleChannel {
$$eval(params: { selector: string; expression: string, isFunction: boolean, arg: any }): Promise<any>;
$eval(params: { selector: string; expression: string, isFunction: boolean, arg: any }): Promise<any>;
$$evalExpression(params: { selector: string; expression: string, isFunction: boolean, arg: any }): Promise<any>;
$evalExpression(params: { selector: string; expression: string, isFunction: boolean, arg: any }): Promise<any>;
boundingBox(): Promise<types.Rect | null>;
check(params: { options?: types.TimeoutOptions & { force?: boolean } & { noWaitAfter?: boolean } }): Promise<void>;
click(params: { options?: types.PointerActionOptions & types.MouseClickOptions & types.TimeoutOptions & { force?: boolean } & { noWaitAfter?: boolean } }): Promise<void>;

View file

@ -50,7 +50,8 @@ export class BrowserContext extends ChannelOwner<BrowserContextChannel, BrowserC
this._pages.add(page);
page._setBrowserContext(this);
});
channel.on('page', page => this._onPage(Page.from(page)));
this._channel.on('bindingCall', bindingCall => this._onBinding(BindingCall.from(bindingCall)));
this._channel.on('page', page => this._onPage(Page.from(page)));
}
private _onPage(page: Page): void {

View file

@ -139,13 +139,13 @@ export class ElementHandle<T extends Node = Node> extends JSHandle<T> {
async $eval<R, Arg>(selector: string, pageFunction: FuncOn<Element, Arg, R>, arg: Arg): Promise<R>;
async $eval<R>(selector: string, pageFunction: FuncOn<Element, void, R>, arg?: any): Promise<R>;
async $eval<R, Arg>(selector: string, pageFunction: FuncOn<Element, Arg, R>, arg: Arg): Promise<R> {
return await this._elementChannel.$eval({ selector, expression: String(pageFunction), isFunction: typeof pageFunction === 'function', arg: convertArg(arg) });
return await this._elementChannel.$evalExpression({ selector, expression: String(pageFunction), isFunction: typeof pageFunction === 'function', arg: convertArg(arg) });
}
async $$eval<R, Arg>(selector: string, pageFunction: FuncOn<Element[], Arg, R>, arg: Arg): Promise<R>;
async $$eval<R>(selector: string, pageFunction: FuncOn<Element[], void, R>, arg?: any): Promise<R>;
async $$eval<R, Arg>(selector: string, pageFunction: FuncOn<Element[], Arg, R>, arg: Arg): Promise<R> {
return await this._elementChannel.$$eval({ selector, expression: String(pageFunction), isFunction: typeof pageFunction === 'function', arg: convertArg(arg) });
return await this._elementChannel.$$evalExpression({ selector, expression: String(pageFunction), isFunction: typeof pageFunction === 'function', arg: convertArg(arg) });
}
}

View file

@ -51,7 +51,7 @@ export class BrowserContextDispatcher extends Dispatcher<BrowserContext, Browser
}
async exposeBinding(params: { name: string }): Promise<void> {
this._context.exposeBinding(params.name, (source, ...args) => {
await this._context.exposeBinding(params.name, (source, ...args) => {
const bindingCall = new BindingCallDispatcher(this._scope, params.name, source, args);
this._dispatchEvent('bindingCall', bindingCall);
return bindingCall.promise();

View file

@ -153,11 +153,11 @@ export class ElementHandleDispatcher extends JSHandleDispatcher implements Eleme
return elements.map(e => ElementHandleDispatcher.fromElement(this._scope, e));
}
async $eval(params: { selector: string, expression: string, isFunction: boolean, arg: any }): Promise<any> {
async $evalExpression(params: { selector: string, expression: string, isFunction: boolean, arg: any }): Promise<any> {
return this._elementHandle._$evalExpression(params.selector, params.expression, params.isFunction, convertArg(this._scope, params.arg));
}
async $$eval(params: { selector: string, expression: string, isFunction: boolean, arg: any }): Promise<any> {
async $$evalExpression(params: { selector: string, expression: string, isFunction: boolean, arg: any }): Promise<any> {
return this._elementHandle._$$evalExpression(params.selector, params.expression, params.isFunction, convertArg(this._scope, params.arg));
}
}

View file

@ -18,6 +18,7 @@ import * as js from '../../javascript';
import { JSHandleChannel, JSHandleInitializer } from '../channels';
import { Dispatcher, DispatcherScope } from '../dispatcher';
import { convertArg } from './frameDispatcher';
import { ElementHandleDispatcher } from './elementHandlerDispatcher';
export class JSHandleDispatcher extends Dispatcher<js.JSHandle, JSHandleInitializer> implements JSHandleChannel {
@ -33,7 +34,7 @@ export class JSHandleDispatcher extends Dispatcher<js.JSHandle, JSHandleInitiali
async evaluateExpressionHandle(params: { expression: string, isFunction: boolean, arg: any}): Promise<JSHandleChannel> {
const jsHandle = await this._object._evaluateExpression(params.expression, params.isFunction, false /* returnByValue */, convertArg(this._scope, params.arg));
return new JSHandleDispatcher(this._scope, jsHandle);
return ElementHandleDispatcher.from(this._scope, jsHandle);
}
async getPropertyList(): Promise<{ name: string, value: JSHandleChannel }[]> {

View file

@ -84,7 +84,7 @@ export class PageDispatcher extends Dispatcher<Page, PageInitializer> implements
}
async exposeBinding(params: { name: string }): Promise<void> {
this._page.exposeBinding(params.name, (source, ...args) => {
await this._page.exposeBinding(params.name, (source, ...args) => {
const bindingCall = new BindingCallDispatcher(this._scope, params.name, source, args);
this._dispatchEvent('bindingCall', bindingCall);
return bindingCall.promise();