Best JavaScript code snippet using playwright-internal
ReactDOMEventListener-test.js
Source:ReactDOMEventListener-test.js
1/**2 * Copyright 2013-present, Facebook, Inc.3 * All rights reserved.4 *5 * This source code is licensed under the BSD-style license found in the6 * LICENSE file in the root directory of this source tree. An additional grant7 * of patent rights can be found in the PATENTS file in the same directory.8 *9 * @emails react-core10 */11'use strict';12var EVENT_TARGET_PARAM = 1;13describe('ReactDOMEventListener', () => {14 var React;15 var ReactDOM;16 var ReactDOMComponentTree;17 var ReactDOMEventListener;18 var ReactTestUtils;19 var handleTopLevel;20 beforeEach(() => {21 jest.resetModules();22 React = require('react');23 ReactDOM = require('react-dom');24 // TODO: can we express this test with only public API?25 ReactDOMComponentTree = require('ReactDOMComponentTree');26 ReactDOMEventListener = require('ReactDOMEventListener');27 ReactTestUtils = require('react-dom/test-utils');28 handleTopLevel = jest.fn();29 ReactDOMEventListener._handleTopLevel = handleTopLevel;30 });31 it('should dispatch events from outside React tree', () => {32 var otherNode = document.createElement('h1');33 var component = ReactDOM.render(<div />, document.createElement('div'));34 expect(handleTopLevel.mock.calls.length).toBe(0);35 ReactDOMEventListener.dispatchEvent('topMouseOut', {36 type: 'mouseout',37 fromElement: otherNode,38 target: otherNode,39 srcElement: otherNode,40 toElement: ReactDOM.findDOMNode(component),41 relatedTarget: ReactDOM.findDOMNode(component),42 view: window,43 path: [otherNode, otherNode],44 });45 expect(handleTopLevel.mock.calls.length).toBe(1);46 });47 describe('Propagation', () => {48 it('should propagate events one level down', () => {49 var childContainer = document.createElement('div');50 var childControl = <div>Child</div>;51 var parentContainer = document.createElement('div');52 var parentControl = <div>Parent</div>;53 childControl = ReactDOM.render(childControl, childContainer);54 parentControl = ReactDOM.render(parentControl, parentContainer);55 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);56 var callback = ReactDOMEventListener.dispatchEvent.bind(null, 'test');57 callback({58 target: ReactDOM.findDOMNode(childControl),59 });60 var calls = handleTopLevel.mock.calls;61 expect(calls.length).toBe(2);62 expect(calls[0][EVENT_TARGET_PARAM]).toBe(63 ReactDOMComponentTree.getInstanceFromNode(childControl),64 );65 expect(calls[1][EVENT_TARGET_PARAM]).toBe(66 ReactDOMComponentTree.getInstanceFromNode(parentControl),67 );68 });69 it('should propagate events two levels down', () => {70 var childContainer = document.createElement('div');71 var childControl = <div>Child</div>;72 var parentContainer = document.createElement('div');73 var parentControl = <div>Parent</div>;74 var grandParentContainer = document.createElement('div');75 var grandParentControl = <div>Parent</div>;76 childControl = ReactDOM.render(childControl, childContainer);77 parentControl = ReactDOM.render(parentControl, parentContainer);78 grandParentControl = ReactDOM.render(79 grandParentControl,80 grandParentContainer,81 );82 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);83 ReactDOM.findDOMNode(grandParentControl).appendChild(parentContainer);84 var callback = ReactDOMEventListener.dispatchEvent.bind(null, 'test');85 callback({86 target: ReactDOM.findDOMNode(childControl),87 });88 var calls = handleTopLevel.mock.calls;89 expect(calls.length).toBe(3);90 expect(calls[0][EVENT_TARGET_PARAM]).toBe(91 ReactDOMComponentTree.getInstanceFromNode(childControl),92 );93 expect(calls[1][EVENT_TARGET_PARAM]).toBe(94 ReactDOMComponentTree.getInstanceFromNode(parentControl),95 );96 expect(calls[2][EVENT_TARGET_PARAM]).toBe(97 ReactDOMComponentTree.getInstanceFromNode(grandParentControl),98 );99 });100 it('should not get confused by disappearing elements', () => {101 var childContainer = document.createElement('div');102 var childControl = <div>Child</div>;103 var parentContainer = document.createElement('div');104 var parentControl = <div>Parent</div>;105 childControl = ReactDOM.render(childControl, childContainer);106 parentControl = ReactDOM.render(parentControl, parentContainer);107 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);108 // ReactBrowserEventEmitter.handleTopLevel might remove the109 // target from the DOM. Here, we have handleTopLevel remove the110 // node when the first event handlers are called; we'll still111 // expect to receive a second call for the parent control.112 var childNode = ReactDOM.findDOMNode(childControl);113 handleTopLevel.mockImplementation(function(114 topLevelType,115 topLevelTarget,116 topLevelTargetID,117 nativeEvent,118 ) {119 if (topLevelTarget === childNode) {120 ReactDOM.unmountComponentAtNode(childContainer);121 }122 });123 var callback = ReactDOMEventListener.dispatchEvent.bind(null, 'test');124 callback({125 target: childNode,126 });127 var calls = handleTopLevel.mock.calls;128 expect(calls.length).toBe(2);129 expect(calls[0][EVENT_TARGET_PARAM]).toBe(130 ReactDOMComponentTree.getInstanceFromNode(childNode),131 );132 expect(calls[1][EVENT_TARGET_PARAM]).toBe(133 ReactDOMComponentTree.getInstanceFromNode(parentControl),134 );135 });136 it('should batch between handlers from different roots', () => {137 var childContainer = document.createElement('div');138 var parentContainer = document.createElement('div');139 var childControl = ReactDOM.render(<div>Child</div>, childContainer);140 var parentControl = ReactDOM.render(<div>Parent</div>, parentContainer);141 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);142 // Suppose an event handler in each root enqueues an update to the143 // childControl element -- the two updates should get batched together.144 var childNode = ReactDOM.findDOMNode(childControl);145 handleTopLevel.mockImplementation(function(146 topLevelType,147 topLevelTarget,148 topLevelTargetID,149 nativeEvent,150 ) {151 ReactDOM.render(152 <div>{topLevelTarget === childNode ? '1' : '2'}</div>,153 childContainer,154 );155 // Since we're batching, neither update should yet have gone through.156 expect(childNode.textContent).toBe('Child');157 });158 var callback = ReactDOMEventListener.dispatchEvent.bind(159 ReactDOMEventListener,160 'test',161 );162 callback({163 target: childNode,164 });165 var calls = handleTopLevel.mock.calls;166 expect(calls.length).toBe(2);167 expect(childNode.textContent).toBe('2');168 });169 });170 it('should not fire duplicate events for a React DOM tree', () => {171 class Wrapper extends React.Component {172 getInner = () => {173 return this.refs.inner;174 };175 render() {176 var inner = <div ref="inner">Inner</div>;177 return <div><div id="outer">{inner}</div></div>;178 }179 }180 var instance = ReactTestUtils.renderIntoDocument(<Wrapper />);181 var callback = ReactDOMEventListener.dispatchEvent.bind(null, 'test');182 callback({183 target: ReactDOM.findDOMNode(instance.getInner()),184 });185 var calls = handleTopLevel.mock.calls;186 expect(calls.length).toBe(1);187 expect(calls[0][EVENT_TARGET_PARAM]).toBe(188 ReactDOMComponentTree.getInstanceFromNode(instance.getInner()),189 );190 });...
ReactEventListener-test.js
Source:ReactEventListener-test.js
1/**2 * Copyright 2013-present, Facebook, Inc.3 * All rights reserved.4 *5 * This source code is licensed under the BSD-style license found in the6 * LICENSE file in the root directory of this source tree. An additional grant7 * of patent rights can be found in the PATENTS file in the same directory.8 *9 * @emails react-core10 */11'use strict';12var EVENT_TARGET_PARAM = 1;13describe('ReactEventListener', () => {14 var React;15 var ReactDOM;16 var ReactDOMComponentTree;17 var ReactEventListener;18 var ReactTestUtils;19 var handleTopLevel;20 beforeEach(() => {21 jest.resetModules();22 React = require('React');23 ReactDOM = require('ReactDOM');24 ReactDOMComponentTree = require('ReactDOMComponentTree');25 ReactEventListener = require('ReactEventListener');26 ReactTestUtils = require('ReactTestUtils');27 handleTopLevel = jest.fn();28 ReactEventListener._handleTopLevel = handleTopLevel;29 });30 it('should dispatch events from outside React tree', () => {31 var otherNode = document.createElement('h1');32 var component = ReactDOM.render(<div />, document.createElement('div'));33 expect(handleTopLevel.mock.calls.length).toBe(0);34 ReactEventListener.dispatchEvent(35 'topMouseOut',36 {37 type: 'mouseout',38 fromElement: otherNode,39 target: otherNode,40 srcElement: otherNode,41 toElement: ReactDOM.findDOMNode(component),42 relatedTarget: ReactDOM.findDOMNode(component),43 view: window,44 path: [otherNode, otherNode],45 },46 );47 expect(handleTopLevel.mock.calls.length).toBe(1);48 });49 describe('Propagation', () => {50 it('should propagate events one level down', () => {51 var childContainer = document.createElement('div');52 var childControl = <div>Child</div>;53 var parentContainer = document.createElement('div');54 var parentControl = <div>Parent</div>;55 childControl = ReactDOM.render(childControl, childContainer);56 parentControl =57 ReactDOM.render(parentControl, parentContainer);58 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);59 var callback = ReactEventListener.dispatchEvent.bind(null, 'test');60 callback({61 target: ReactDOM.findDOMNode(childControl),62 });63 var calls = handleTopLevel.mock.calls;64 expect(calls.length).toBe(2);65 expect(calls[0][EVENT_TARGET_PARAM])66 .toBe(ReactDOMComponentTree.getInstanceFromNode(childControl));67 expect(calls[1][EVENT_TARGET_PARAM])68 .toBe(ReactDOMComponentTree.getInstanceFromNode(parentControl));69 });70 it('should propagate events two levels down', () => {71 var childContainer = document.createElement('div');72 var childControl = <div>Child</div>;73 var parentContainer = document.createElement('div');74 var parentControl = <div>Parent</div>;75 var grandParentContainer = document.createElement('div');76 var grandParentControl = <div>Parent</div>;77 childControl = ReactDOM.render(childControl, childContainer);78 parentControl =79 ReactDOM.render(parentControl, parentContainer);80 grandParentControl =81 ReactDOM.render(grandParentControl, grandParentContainer);82 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);83 ReactDOM.findDOMNode(grandParentControl).appendChild(parentContainer);84 var callback = ReactEventListener.dispatchEvent.bind(null, 'test');85 callback({86 target: ReactDOM.findDOMNode(childControl),87 });88 var calls = handleTopLevel.mock.calls;89 expect(calls.length).toBe(3);90 expect(calls[0][EVENT_TARGET_PARAM])91 .toBe(ReactDOMComponentTree.getInstanceFromNode(childControl));92 expect(calls[1][EVENT_TARGET_PARAM])93 .toBe(ReactDOMComponentTree.getInstanceFromNode(parentControl));94 expect(calls[2][EVENT_TARGET_PARAM])95 .toBe(ReactDOMComponentTree.getInstanceFromNode(grandParentControl));96 });97 it('should not get confused by disappearing elements', () => {98 var childContainer = document.createElement('div');99 var childControl = <div>Child</div>;100 var parentContainer = document.createElement('div');101 var parentControl = <div>Parent</div>;102 childControl = ReactDOM.render(childControl, childContainer);103 parentControl =104 ReactDOM.render(parentControl, parentContainer);105 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);106 // ReactBrowserEventEmitter.handleTopLevel might remove the107 // target from the DOM. Here, we have handleTopLevel remove the108 // node when the first event handlers are called; we'll still109 // expect to receive a second call for the parent control.110 var childNode = ReactDOM.findDOMNode(childControl);111 handleTopLevel.mockImplementation(112 function(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent) {113 if (topLevelTarget === childNode) {114 ReactDOM.unmountComponentAtNode(childContainer);115 }116 }117 );118 var callback = ReactEventListener.dispatchEvent.bind(null, 'test');119 callback({120 target: childNode,121 });122 var calls = handleTopLevel.mock.calls;123 expect(calls.length).toBe(2);124 expect(calls[0][EVENT_TARGET_PARAM])125 .toBe(ReactDOMComponentTree.getInstanceFromNode(childNode));126 expect(calls[1][EVENT_TARGET_PARAM])127 .toBe(ReactDOMComponentTree.getInstanceFromNode(parentControl));128 });129 it('should batch between handlers from different roots', () => {130 var childContainer = document.createElement('div');131 var parentContainer = document.createElement('div');132 var childControl = ReactDOM.render(133 <div>Child</div>,134 childContainer135 );136 var parentControl = ReactDOM.render(137 <div>Parent</div>,138 parentContainer139 );140 ReactDOM.findDOMNode(parentControl).appendChild(childContainer);141 // Suppose an event handler in each root enqueues an update to the142 // childControl element -- the two updates should get batched together.143 var childNode = ReactDOM.findDOMNode(childControl);144 handleTopLevel.mockImplementation(145 function(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent) {146 ReactDOM.render(147 <div>{topLevelTarget === childNode ? '1' : '2'}</div>,148 childContainer149 );150 // Since we're batching, neither update should yet have gone through.151 expect(childNode.textContent).toBe('Child');152 }153 );154 var callback =155 ReactEventListener.dispatchEvent.bind(ReactEventListener, 'test');156 callback({157 target: childNode,158 });159 var calls = handleTopLevel.mock.calls;160 expect(calls.length).toBe(2);161 expect(childNode.textContent).toBe('2');162 });163 });164 it('should not fire duplicate events for a React DOM tree', () => {165 class Wrapper extends React.Component {166 getInner = () => {167 return this.refs.inner;168 };169 render() {170 var inner = <div ref="inner">Inner</div>;171 return <div><div id="outer">{inner}</div></div>;172 }173 }174 var instance = ReactTestUtils.renderIntoDocument(<Wrapper />);175 var callback = ReactEventListener.dispatchEvent.bind(null, 'test');176 callback({177 target: ReactDOM.findDOMNode(instance.getInner()),178 });179 var calls = handleTopLevel.mock.calls;180 expect(calls.length).toBe(1);181 expect(calls[0][EVENT_TARGET_PARAM])182 .toBe(ReactDOMComponentTree.getInstanceFromNode(instance.getInner()));183 });...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: 'example.png' });6 await browser.close();7})();8import { Page } from '../page';9import { assert } from '../helper';10import { Keyboard, KeyInput, KeyDefinition, KeyDefinitions, KeyboardModifier, KeyboardLayout } from '../types';11import { ModifierBit } from './input';12import { debugError } from '../utils/debug';13export class KeyboardImpl implements Keyboard {14 private _page: Page;15 private _modifiers: number = 0;16 private _pressedKeys: Set<string> = new Set();17 private _layout: KeyboardLayout;18 constructor(page: Page, layout?: KeyboardLayout) {19 this._page = page;20 this._layout = layout || { ...USKeyboardLayout };21 }22 async down(key: string, options: { text?: string } = {}): Promise<void> {23 await this._page._delegate.handleTopLevel(async (page) => {24 const keyDef = this._resolveKey(key);25 const autoRepeat = this._pressedKeys.has(keyDef.code);26 this._pressedKeys.add(keyDef.code);27 this._modifiers |= keyDef.modifiers;28 await page._delegate.handleKeyboard({29 });30 });31 }32 async up(key: string): Promise<void> {33 await this._page._delegate.handleTopLevel(async (page) => {34 const keyDef = this._resolveKey(key);35 this._pressedKeys.delete(keyDef.code);36 this._modifiers &= ~keyDef.modifiers;37 await page._delegate.handleKeyboard({38 });39 });40 }
Using AI Code Generation
1const { handleTopLevel } = require('playwright/lib/server/supplements/recorder/recorderSupplement');2const { recorderSupplement } = require('playwright/lib/server/supplements/recorder/recorderSupplement');3const { Page } = require('playwright/lib/server/page');4const { Frame } = require('playwright/lib/server/frames');5const { ElementHandle } = require('playwright/lib/server/dom');6const { JSHandle } = require('playwright/lib/server/jsHandle');7const { serializeResult } = require('playwright/lib/server/serializers');8const { helper } = require('playwright/lib/helper');9const { assert } = require('playwright/lib/helper');10const { debugLogger } = require('playwright/lib/utils/debugLogger');11const { debugError } = require('playwright/lib/utils/debugLogger');12const { debug } = require('playwright/lib/utils/debugLogger');13const { debugProtocol } = require('playwright/lib/utils/debugLogger');14const { debugServer } = require('playwright/lib/utils/debugLogger');15const { debugLog } = require('playwright/lib/utils/debugLogger');16const { debugAssert } = require('playwright/lib/utils/debugLogger');17const { debugErrorLog } = require('playwright/lib/utils/debugLogger');18const { debugErrorLogOnce } = require('playwright/lib/utils/debugLogger');19const { debugLogOnce } = require('playwright/lib/utils/debugLogger');20const { debugTrace } = require('playwright/lib/utils/debugLogger');21const { debugTraceLog } = require('playwright/lib/utils/debugLogger');22const { debugTraceLogOnce } = require('playwright/lib/utils/debugLogger');23const { debugTraceLogApi } = require('playwright/lib/utils/debugLogger');24const { debugTraceLogApiOnce } = require('playwright/lib/utils/debugLogger');25const { debugTraceLogApiCall } = require('playwright/lib/utils/debugLogger');26const { debugTraceLogApiCallOnce } = require('playwright/lib/utils/debugLogger');27const { debugTraceLogApiCallResult } = require('playwright/lib/utils/debugLogger');28const { debugTraceLogApiCallResultOnce } = require('playwright/lib/utils/debugLogger');29const { debugTraceLogApiCallResultError } = require('playwright/lib/utils/debugLogger');30const { debugTraceLogApiCallResultErrorOnce } = require('playwright/lib/utils/debugLogger');31const { debug
Using AI Code Generation
1const playwright = require('playwright');2const { Internal } = require('playwright/lib/server/frames');3async function main() {4 const browser = await playwright['chromium'].launch();5 const page = await browser.newPage();6 const internal = new Internal(page);7 internal.handleTopLevel({method: 'Page.handleJavaScriptDialog', params: {type: 'alert', message: 'Hello world'}});8 await page.waitForTimeout(5000);9 await browser.close();10}11main();
Using AI Code Generation
1const { handleTopLevel } = require('playwright/lib/server/frames');2const { Frame } = require('playwright/lib/server/frames');3const { Page } = require('playwright/lib/server/page');4const { EventEmitter } = require('events');5const page = new Page(new EventEmitter());6const frame = new Frame(page, 'frameId', 'frameName', null);7const event = {8 params: {9 frame: {10 },11 },12};13handleTopLevel(frame, event);14const frame = new Frame(page, 'frameId', 'frameName', null);15const event = {16 params: {17 frame: {18 },19 },20};21handleTopLevel(frame, event);
Using AI Code Generation
1const playwright = require('playwright');2const { Internal } = require('playwright/lib/server/frames');3async function main() {4 const browser = await playwright['chromium'].launch();5 const page = await browser.newPage();6 const internal = new Internal(page);7 internal.handleTopLevel({method: 'Page.handleJavaScriptDialog', params: {type: 'alert', message: 'Hello world'}});8 await page.waitForTimeout(5000);9 await browser.close();10}11main();
Using AI Code Generation
1const { handleTopLevel } = require('playwright/lib/server/frames');2const { Frame } = require('playwright/lib/server/frames');3const { Page } = require('playwright/lib/server/page');4const { EventEmitter } = require('events');5const page = new Page(new EventEmitter());6const frame = new Frame(page, 'frameId', 'frameName', null);7const event = {8 params: {9 frame: {10 },11 },12};13handleTopLevel(frame, event);14const frame = new Frame(page, 'frameId', 'frameName', null);15const event = {16 params: {17 frame: {18 },19 },20};21handleTopLevel(frame, event);
Using AI Code Generation
1const { handleTopLevel } = require('playwright/lib/internal/handlers');2const { Page } = require('playwright/lib/page');3const { ElementHandle } = require('playwright/lib/elementHandle');4const page = new Page();5const elementHandle = new ElementHandle();6const event = {7};
Using AI Code Generation
1const { Internal } = require('playwright/lib/server/chromium/crConnection');2const { Page } = require('playwright/lib/server/chromium/crPage');3const { events } = require('playwright/lib/server/chromium/crProtocolHelper');4const page = new Page({ browser: null, context: null, opener: null, pageOrError: null, targetId: null, viewportSize: null, screencastFrameAckTimeout: null, screencastFrameRate: null, screencastQuality: null, screencastFormat: null, screencastMaxHeight: null, screencastMaxWidth: null, screencastEveryNthFrame: null, viewport: null, emulateMedia: null, deviceScaleFactor: null, isMobile: null, hasTouch: null, colorScheme: null, acceptDownloads: null, javaScriptEnabled: null, bypassCSP: null, locale: null, timezoneId: null, geolocation: null, permissions: null, extraHTTPHeaders: null, offline: null, httpCredentials: null, userAgent: null, viewportSize: null, screencastFrameAckTimeout: null, screencastFrameRate: null, screencastQuality: null, screencastFormat: null, screencastMaxHeight: null, screencastMaxWidth: null, screencastEveryNthFrame: null, viewport: null, emulateMedia: null, deviceScaleFactor: null, isMobile: null, hasTouch: null, colorScheme: null, acceptDownloads: null, javaScriptEnabled: null, bypassCSP: null, locale: null, timezoneId: null, geolocation: null, permissions: null, extraHTTPHeaders: null, offline: null, httpCredentials: null, userAgent: null, viewportSize: null, screencastFrameAckTimeout: null, screencastFrameRate: null, screencastQuality: null, screencastFormat: null, screencastMaxHeight: null, screencastMaxWidth: null, screencastEveryNthFrame: null, viewport: null, emulateMedia: null, deviceScaleFactor: null, isMobile: null, hasTouch: null, colorScheme: null, acceptDownloads: null, javaScriptEnabled: null, bypassCSP: null, locale:5const result = handleTopLevel(event);6console.log(result);
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false, slowMo: 1000 });4 const context = await browser.newContext();5 const page = await context.newPage();6 const response = await page._delegate.handleTopLevel(await page._delegate.mainFrame()._delegate._mainFrameSession._client.send('Page.navigate', {7 }));8 console.log(response);9 await browser.close();10})();
Using AI Code Generation
1const { Playwright } = require('playwright');2const { handleTopLevel } = Playwright._internal;3handleTopLevel(async (event) => {4 console.log(event);5});6const browser = await playwright.chromium.launch();7const page = await browser.newPage();8await browser.close();9{ method: 'Target.targetCreated',10 params: { targetInfo: { targetId: 'CD31A3C2A1F3F3A6F9D0B9B2E0D3BE3C' } } }11{ method: 'Target.targetInfoChanged',12 { targetInfo:13 { targetId: 'CD31A3C2A1F3F3A6F9D0B9B2E0D3BE3C',14 browserContexts: undefined } } }15{ method: 'Target.targetInfoChanged',16 { targetInfo:17 { targetId: 'CD31A3C2A1F3F3A6F9D0B9B2E0D3BE3C',18 browserContexts: undefined } } }19{ method: 'Target.targetInfoChanged',20 { targetInfo:21 { targetId: 'CD31A3C2A1F3F3A6F9D0B9B2E0D3BE3C',22 browserContexts: undefined } } }23{ method: '
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!