Best JavaScript code snippet using wpt
test-amp-sidebar.js
Source:test-amp-sidebar.js
1/**2 * Copyright 2018 The AMP HTML Authors. All Rights Reserved.3 *4 * Licensed under the Apache License, Version 2.0 (the "License");5 * you may not use this file except in compliance with the License.6 * You may obtain a copy of the License at7 *8 * http://www.apache.org/licenses/LICENSE-2.09 *10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS-IS" BASIS,12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13 * See the License for the specific language governing permissions and14 * limitations under the License.15 */16import {poll} from '../../../../../testing/iframe';17describe.configure().skipSafari().skipEdge().run('amp-sidebar', function() {18 // Extend timeout slightly for flakes on Windows environments19 this.timeout(4000);20 const extensions = ['amp-sidebar'];21 const sidebarBody = `22 <amp-sidebar23 id="sidebar1"24 layout="nodisplay"25 // eslint-disable-next-line26 on="sidebarOpen:focusOnMe.focus,dummy.hide;sidebarClose:dummy.show">27 <ul>28 <li> <a id="focusOnMe" href="https://google.com">Focused on open</a></li>29 <li>30 <button id="sidebarCloser" on="tap:sidebar1.close">31 Close32 </button>33 </li>34 </ul>35 </amp-sidebar>36 <button id="sidebarOpener" on="tap:sidebar1.toggle">Open Sidebar</button>37 <div id="section2" style="position: absolute; top: 1000px;">38 <h1 >Section 2</h1>39 </div>40 <div id="section3" style="position: absolute; top: 2000px;">41 <h1 >Section 3</h1>42 </div>43 <div id="dummy"></div>44 `;45 describes.integration('sidebar focus', {46 body: sidebarBody,47 extensions,48 }, env => {49 let win;50 beforeEach(() => {51 win = env.win;52 });53 // TODO (#16157): this tests times out on Chrome Mobile Webview Android54 it.configure().skipChrome().run('should focus on opener on close', () => {55 const openerButton = win.document.getElementById('sidebarOpener');56 const openedPromise = waitForSidebarOpen(win.document);57 openerButton.click();58 return openedPromise.then(() => {59 const closerButton = win.document.getElementById('sidebarCloser');60 const closedPromise = waitForSidebarClose(win.document);61 closerButton.click();62 return closedPromise;63 }).then(() => {64 expect(win.document.activeElement).to.equal(openerButton);65 });66 });67 it.configure().skipIfPropertiesObfuscated().run(68 'should not change scroll position after close', () => {69 const openerButton = win.document.getElementById('sidebarOpener');70 const sidebar = win.document.getElementById('sidebar1');71 const viewport = sidebar.implementation_.getViewport();72 const openedPromise = waitForSidebarOpen(win.document);73 openerButton.click();74 expect(viewport.getScrollTop()).to.equal(0);75 return openedPromise.then(() => {76 viewport.setScrollTop(1000);77 expect(viewport.getScrollTop()).to.equal(1000);78 const closerButton = win.document.getElementById('sidebarCloser');79 const closedPromise = waitForSidebarClose(win.document);80 closerButton.click();81 return closedPromise;82 }).then(() => {83 // Firefox resets scroll to top on pop history84 // Safari resets scroll to top somewhere unrelated to focus85 // expect(viewport.getScrollTop()).to.equal(1000);86 expect(win.document.activeElement).to.not.equal(openerButton);87 });88 });89 });90});91function waitForSidebarOpen(document) {92 return poll('wait for sidebar to open', () => {93 const dummy = document.getElementById('dummy');94 const styles = document.defaultView.getComputedStyle(dummy);95 return styles.display == 'none';96 });97}98function waitForSidebarClose(document) {99 return poll('wait for sidebar to open', () => {100 const dummy = document.getElementById('dummy');101 const styles = document.defaultView.getComputedStyle(dummy);102 return styles.display != 'none';103 });...
browser_popup_close_main_window.js
Source:browser_popup_close_main_window.js
1/* Any copyright is dedicated to the Public Domain.2 * http://creativecommons.org/publicdomain/zero/1.0/ */3"use strict";4function muffleMainWindowType() {5 let oldWinType = document.documentElement.getAttribute("windowtype");6 // Check if we've already done this to allow calling multiple times:7 if (oldWinType != "navigator:testrunner") {8 // Make the main test window not count as a browser window any longer9 document.documentElement.setAttribute("windowtype", "navigator:testrunner");10 registerCleanupFunction(() => {11 document.documentElement.setAttribute("windowtype", oldWinType);12 });13 }14}15/**16 * Check that if we close the 1 remaining window, we treat it as quitting on17 * non-mac.18 *19 * Sets the window type for the main browser test window to something else to20 * avoid having to actually close the main browser window.21 */22add_task(async function closing_last_window_equals_quitting() {23 if (navigator.platform.startsWith("Mac")) {24 ok(true, "Not testing on mac");25 return;26 }27 muffleMainWindowType();28 let observed = 0;29 function obs() {30 observed++;31 }32 Services.obs.addObserver(obs, "browser-lastwindow-close-requested");33 let newWin = await BrowserTestUtils.openNewBrowserWindow();34 let closedPromise = BrowserTestUtils.windowClosed(newWin);35 newWin.BrowserTryToCloseWindow();36 await closedPromise;37 is(observed, 1, "Got a notification for closing the normal window.");38 Services.obs.removeObserver(obs, "browser-lastwindow-close-requested");39});40/**41 * Check that if we close the 1 remaining window and also have a popup open,42 * we don't treat it as quitting.43 *44 * Sets the window type for the main browser test window to something else to45 * avoid having to actually close the main browser window.46 */47add_task(async function closing_last_window_equals_quitting() {48 if (navigator.platform.startsWith("Mac")) {49 ok(true, "Not testing on mac");50 return;51 }52 muffleMainWindowType();53 let observed = 0;54 function obs() {55 observed++;56 }57 Services.obs.addObserver(obs, "browser-lastwindow-close-requested");58 let newWin = await BrowserTestUtils.openNewBrowserWindow();59 let popupPromise = BrowserTestUtils.waitForNewWindow("https://example.com/");60 ContentTask.spawn(newWin.gBrowser.selectedBrowser, null, function() {61 content.open("https://example.com/", "_blank", "height=500");62 });63 let popupWin = await popupPromise;64 let closedPromise = BrowserTestUtils.windowClosed(newWin);65 newWin.BrowserTryToCloseWindow();66 await closedPromise;67 is(observed, 0, "Got no notification for closing the normal window.");68 closedPromise = BrowserTestUtils.windowClosed(popupWin);69 popupWin.BrowserTryToCloseWindow();70 await closedPromise;71 is(72 observed,73 0,74 "Got no notification now that we're closing the last window, as it's a popup."75 );76 Services.obs.removeObserver(obs, "browser-lastwindow-close-requested");...
garbage-collection.js
Source:garbage-collection.js
1'use strict';2if (self.importScripts) {3 self.importScripts('../resources/test-utils.js');4 self.importScripts('/resources/testharness.js');5}6promise_test(() => {7 let controller;8 new ReadableStream({9 start(c) {10 controller = c;11 }12 });13 garbageCollect();14 return delay(50).then(() => {15 controller.close();16 assert_throws(new TypeError(), () => controller.close(), 'close should throw a TypeError the second time');17 assert_throws(new TypeError(), () => controller.error(), 'error should throw a TypeError on a closed stream');18 });19}, 'ReadableStreamController methods should continue working properly when scripts lose their reference to the ' +20 'readable stream');21promise_test(() => {22 let controller;23 const closedPromise = new ReadableStream({24 start(c) {25 controller = c;26 }27 }).getReader().closed;28 garbageCollect();29 return delay(50).then(() => controller.close()).then(() => closedPromise);30}, 'ReadableStream closed promise should fulfill even if the stream and reader JS references are lost');31promise_test(t => {32 const theError = new Error('boo');33 let controller;34 const closedPromise = new ReadableStream({35 start(c) {36 controller = c;37 }38 }).getReader().closed;39 garbageCollect();40 return delay(50).then(() => controller.error(theError))41 .then(() => promise_rejects(t, theError, closedPromise));42}, 'ReadableStream closed promise should reject even if stream and reader JS references are lost');43promise_test(() => {44 const rs = new ReadableStream({});45 rs.getReader();46 garbageCollect();47 return delay(50).then(() => assert_throws(new TypeError(), () => rs.getReader(),48 'old reader should still be locking the stream even after garbage collection'));49}, 'Garbage-collecting a ReadableStreamReader should not unlock its stream');...
Using AI Code Generation
1var wpt = require('webpagetest');2var test = new wpt('www.webpagetest.org');3 if (err) {4 console.log(err);5 } else {6 var testId = data.data.testId;7 test.getTestStatus(testId, function(err, data) {8 if (err) {9 console.log(err);10 } else {11 console.log(data);12 }13 });14 }15});16var wpt = require('webpagetest');17var test = new wpt('www.webpagetest.org');18 if (err) {19 console.log(err);20 } else {21 var testId = data.data.testId;22 test.getTestStatus(testId, function(err, data) {23 if (err) {24 console.log(err);25 } else {26 console.log(data);27 }28 });29 }30});31 at Object.<anonymous> (/Users/alex/Desktop/test.js:3:17)32 at Module._compile (module.js:456:26)33 at Object.Module._extensions..js (module.js:474:10)34 at Module.load (module.js:356:32)35 at Function.Module._load (module.js:312:12)36 at Function.Module.runMain (module.js:497:10)37 at startup (node.js:119:16)
Using AI Code Generation
1var wptools = require('wptools');2var page = wptools.page('Barack Obama');3page.get(function(err, info) {4 console.log(info);5});6var wptools = require('wptools');7var page = wptools.page('Barack Obama');8page.get().then(function(info) {9 console.log(info);10});11var wptools = require('wptools');12var page = wptools.page('Barack Obama');13var info = await page.get();14console.log(info);15var wptools = require('wptools');16var page = wptools.page('Barack Obama');17page.get(function(err, info) {18 console.log(info);19});20var wptools = require('wptools');21var page = wptools.page('Barack Obama');22page.get().then(function(info) {23 console.log(info);24});25var wptools = require('wptools');26var page = wptools.page('Barack Obama');27var info = await page.get();28console.log(info);29var wptools = require('wptools');30var page = wptools.page('Barack Obama');31page.get(function(err, info) {32 console.log(info);33});34var wptools = require('wptools');35var page = wptools.page('Barack Obama');36page.get().then(function(info) {37 console.log(info);38});39var wptools = require('wptools');40var page = wptools.page('Barack Obama');41var info = await page.get();42console.log(info);43var wptools = require('wptools');
Using AI Code Generation
1var wpt = require('webpagetest');2var myWpt = new wpt('www.webpagetest.org');3var testId;4 if (err) {5 console.log(err);6 } else {7 testId = data.data.testId;8 myWpt.closePromise(testId, function(err, data) {9 if (err) {10 console.log(err);11 } else {12 console.log(data);13 }14 });15 }16});17var wpt = require('webpagetest');18var myWpt = new wpt('www.webpagetest.org');19var testId;20 if (err) {21 console.log(err);22 } else {23 testId = data.data.testId;24 myWpt.close(testId, function(err, data) {25 if (err) {26 console.log(err);27 } else {28 console.log(data);29 }30 });31 }32});33var wpt = require('webpagetest');34var myWpt = new wpt('www.webpagetest.org');35myWpt.getLocations(function(err, data) {36 if (err) {37 console.log(err);38 } else {39 console.log(data);40 }41});42var wpt = require('webpagetest');43var myWpt = new wpt('www.webpagetest.org');44myWpt.getTesters(function(err, data) {45 if (err) {46 console.log(err);47 } else {48 console.log(data);49 }50});51var wpt = require('webpagetest');52var myWpt = new wpt('www.webpagetest.org');53myWpt.getTesters(function(err, data) {54 if (err) {55 console.log(err);56 } else {57 console.log(data);58 }59});
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!