Best JavaScript code snippet using puppeteer
test_word_boundary_search.js
Source:test_word_boundary_search.js
1/* This Source Code Form is subject to the terms of the Mozilla Public2 * License, v. 2.0. If a copy of the MPL was not distributed with this3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */4/**5 * Test to make sure matches against the url, title, tags are first made on word6 * boundaries, instead of in the middle of words, and later are extended to the7 * whole words. For this test it is critical to check sorting of the matches.8 *9 * Make sure we don't try matching one after a CamelCase because the upper-case10 * isn't really a word boundary. (bug 429498)11 */12var katakana = ["\u30a8", "\u30c9"]; // E, Do13var ideograph = ["\u4efb", "\u5929", "\u5802"]; // Nin Ten Do14add_task(async function test_escape() {15 Services.prefs.setBoolPref("browser.urlbar.autoFill.searchEngines", false);16 Services.prefs.setBoolPref("browser.urlbar.autoFill", false);17 await PlacesTestUtils.addVisits([18 { uri: "http://matchme/", title: "title1" },19 { uri: "http://dontmatchme/", title: "title1" },20 { uri: "http://title/1", title: "matchme2" },21 { uri: "http://title/2", title: "dontmatchme3" },22 { uri: "http://tag/1", title: "title1" },23 { uri: "http://tag/2", title: "title1" },24 { uri: "http://crazytitle/", title: "!@#$%^&*()_+{}|:<>?word" },25 { uri: "http://katakana/", title: katakana.join("") },26 { uri: "http://ideograph/", title: ideograph.join("") },27 { uri: "http://camel/pleaseMatchMe/", title: "title1" },28 ]);29 await addBookmark({30 uri: "http://tag/1",31 title: "title1",32 tags: ["matchme2"],33 });34 await addBookmark({35 uri: "http://tag/2",36 title: "title1",37 tags: ["dontmatchme3"],38 });39 info("Match 'match' at the beginning or after / or on a CamelCase");40 await check_autocomplete({41 search: "match",42 checkSorting: true,43 matches: [44 {45 uri: "http://tag/1",46 title: "title1",47 tags: ["matchme2"],48 style: ["bookmark-tag"],49 },50 { uri: "http://camel/pleaseMatchMe/", title: "title1" },51 { uri: "http://title/1", title: "matchme2" },52 { uri: "http://matchme/", title: "title1" },53 {54 uri: "http://tag/2",55 title: "title1",56 tags: ["dontmatchme3"],57 style: ["bookmark-tag"],58 },59 { uri: "http://title/2", title: "dontmatchme3" },60 { uri: "http://dontmatchme/", title: "title1" },61 ],62 });63 info("Match 'dont' at the beginning or after /");64 await check_autocomplete({65 search: "dont",66 checkSorting: true,67 matches: [68 {69 uri: "http://tag/2",70 title: "title1",71 tags: ["dontmatchme3"],72 style: ["bookmark-tag"],73 },74 { uri: "http://title/2", title: "dontmatchme3" },75 { uri: "http://dontmatchme/", title: "title1" },76 ],77 });78 info("Match 'match' at the beginning or after / or on a CamelCase");79 await check_autocomplete({80 search: "2",81 checkSorting: true,82 matches: [83 {84 uri: "http://tag/2",85 title: "title1",86 tags: ["dontmatchme3"],87 style: ["bookmark-tag"],88 },89 {90 uri: "http://tag/1",91 title: "title1",92 tags: ["matchme2"],93 style: ["bookmark-tag"],94 },95 { uri: "http://title/2", title: "dontmatchme3" },96 { uri: "http://title/1", title: "matchme2" },97 ],98 });99 info("Match 't' at the beginning or after /");100 await check_autocomplete({101 search: "t",102 checkSorting: true,103 matches: [104 {105 uri: "http://tag/2",106 title: "title1",107 tags: ["dontmatchme3"],108 style: ["bookmark-tag"],109 },110 {111 uri: "http://tag/1",112 title: "title1",113 tags: ["matchme2"],114 style: ["bookmark-tag"],115 },116 { uri: "http://camel/pleaseMatchMe/", title: "title1" },117 { uri: "http://title/2", title: "dontmatchme3" },118 { uri: "http://title/1", title: "matchme2" },119 { uri: "http://dontmatchme/", title: "title1" },120 { uri: "http://matchme/", title: "title1" },121 { uri: "http://katakana/", title: katakana.join("") },122 { uri: "http://crazytitle/", title: "!@#$%^&*()_+{}|:<>?word" },123 ],124 });125 info("Match 'word' after many consecutive word boundaries");126 await check_autocomplete({127 search: "word",128 checkSorting: true,129 matches: [{ uri: "http://crazytitle/", title: "!@#$%^&*()_+{}|:<>?word" }],130 });131 info("Match a word boundary '/' for everything");132 await check_autocomplete({133 search: "/",134 checkSorting: true,135 matches: [136 {137 uri: "http://tag/2",138 title: "title1",139 tags: ["dontmatchme3"],140 style: ["bookmark-tag"],141 },142 {143 uri: "http://tag/1",144 title: "title1",145 tags: ["matchme2"],146 style: ["bookmark-tag"],147 },148 { uri: "http://camel/pleaseMatchMe/", title: "title1" },149 { uri: "http://ideograph/", title: ideograph.join("") },150 { uri: "http://katakana/", title: katakana.join("") },151 { uri: "http://crazytitle/", title: "!@#$%^&*()_+{}|:<>?word" },152 { uri: "http://title/2", title: "dontmatchme3" },153 { uri: "http://title/1", title: "matchme2" },154 { uri: "http://dontmatchme/", title: "title1" },155 { uri: "http://matchme/", title: "title1" },156 ],157 });158 info("Match word boundaries '()_' that are among word boundaries");159 await check_autocomplete({160 search: "()_",161 checkSorting: true,162 matches: [{ uri: "http://crazytitle/", title: "!@#$%^&*()_+{}|:<>?word" }],163 });164 info("Katakana characters form a string, so match the beginning");165 await check_autocomplete({166 search: katakana[0],167 checkSorting: true,168 matches: [{ uri: "http://katakana/", title: katakana.join("") }],169 });170 /*171 info("Middle of a katakana word shouldn't be matched");172 await check_autocomplete({173 search: katakana[1],174 matches: [ ],175 });176*/177 info("Ideographs are treated as words so 'nin' is one word");178 await check_autocomplete({179 search: ideograph[0],180 checkSorting: true,181 matches: [{ uri: "http://ideograph/", title: ideograph.join("") }],182 });183 info("Ideographs are treated as words so 'ten' is another word");184 await check_autocomplete({185 search: ideograph[1],186 checkSorting: true,187 matches: [{ uri: "http://ideograph/", title: ideograph.join("") }],188 });189 info("Ideographs are treated as words so 'do' is yet another word");190 await check_autocomplete({191 search: ideograph[2],192 checkSorting: true,193 matches: [{ uri: "http://ideograph/", title: ideograph.join("") }],194 });195 info("Match in the middle. Should just be sorted by frecency.");196 await check_autocomplete({197 search: "ch",198 checkSorting: true,199 matches: [200 {201 uri: "http://tag/2",202 title: "title1",203 tags: ["dontmatchme3"],204 style: ["bookmark-tag"],205 },206 {207 uri: "http://tag/1",208 title: "title1",209 tags: ["matchme2"],210 style: ["bookmark-tag"],211 },212 { uri: "http://camel/pleaseMatchMe/", title: "title1" },213 { uri: "http://title/2", title: "dontmatchme3" },214 { uri: "http://title/1", title: "matchme2" },215 { uri: "http://dontmatchme/", title: "title1" },216 { uri: "http://matchme/", title: "title1" },217 ],218 });219 // Also this test should just be sorted by frecency.220 info(221 "Don't match one character after a camel-case word boundary (bug 429498). Should just be sorted by frecency."222 );223 await check_autocomplete({224 search: "atch",225 checkSorting: true,226 matches: [227 {228 uri: "http://tag/2",229 title: "title1",230 tags: ["dontmatchme3"],231 style: ["bookmark-tag"],232 },233 {234 uri: "http://tag/1",235 title: "title1",236 tags: ["matchme2"],237 style: ["bookmark-tag"],238 },239 { uri: "http://camel/pleaseMatchMe/", title: "title1" },240 { uri: "http://title/2", title: "dontmatchme3" },241 { uri: "http://title/1", title: "matchme2" },242 { uri: "http://dontmatchme/", title: "title1" },243 { uri: "http://matchme/", title: "title1" },244 ],245 });246 await cleanup();...
test_getCookieSince.js
Source:test_getCookieSince.js
...14}15async function sleep() {16 await new Promise(resolve => do_timeout(1000, resolve));17}18function checkSorting(cookies) {19 for (let i = 1; i < cookies.length; ++i) {20 Assert.greater(21 cookies[i].creationTime,22 cookies[i - 1].creationTime,23 "Cookie " + cookies[i].name24 );25 }26}27add_task(async function() {28 Services.prefs.setBoolPref(29 "network.cookieJarSettings.unblocked_for_testing",30 true31 );32 await setCookie("A", Services.io.newURI("https://example.com/A/"));33 await sleep();34 await setCookie("B", Services.io.newURI("https://foo.bar/B/"));35 await sleep();36 await setCookie("C", Services.io.newURI("https://example.org/C/"));37 await sleep();38 await setCookie("D", Services.io.newURI("https://example.com/D/"));39 await sleep();40 Assert.equal(cm.cookies.length, 4, "Cookie check");41 const cookies = cm.getCookiesSince(0);42 Assert.equal(cookies.length, 4, "We retrieve all the 4 cookies");43 checkSorting(cookies);44 let someCookies = cm.getCookiesSince(cookies[0].creationTime + 1);45 Assert.equal(someCookies.length, 3, "We retrieve some cookies");46 checkSorting(someCookies);47 someCookies = cm.getCookiesSince(cookies[1].creationTime + 1);48 Assert.equal(someCookies.length, 2, "We retrieve some cookies");49 checkSorting(someCookies);50 someCookies = cm.getCookiesSince(cookies[2].creationTime + 1);51 Assert.equal(someCookies.length, 1, "We retrieve some cookies");52 checkSorting(someCookies);53 someCookies = cm.getCookiesSince(cookies[3].creationTime + 1);54 Assert.equal(someCookies.length, 0, "We retrieve some cookies");...
sorts.test.js
Source:sorts.test.js
1const { bubbleSort, selectionSort, insertionSort, quickSort, mergeSort } = require('./sorts');2describe('Sorts testing', () => {3 function checkSorting(sortFn) {4 expect(sortFn([3, 2, 100])).toEqual([2, 3, 100]);5 expect(sortFn([])).toEqual([]);6 expect(sortFn([1])).toEqual([1]);7 expect(sortFn([100, 1000, -100, -100, 1, 2, 3])).toEqual([8 -100,9 -100,10 1,11 2,12 3,13 100,14 1000,15 ]);16 }17 it('should test selectionSort', () => checkSorting(selectionSort));18 it('should test insertionSort', () => checkSorting(insertionSort));19 it('should test bubbleSort', () => checkSorting(bubbleSort));20 it('should test quickSort', () => checkSorting(quickSort));21 it('should test mergeSort', () => checkSorting(mergeSort));...
Using AI Code Generation
1const puppeteerSorter = require('puppeteer-sorter');2const puppeteer = require('puppeteer');3(async () => {4 const browser = await puppeteer.launch();5 const page = await browser.newPage();6 const isSorted = puppeteerSorter.checkSorting(page, 'a', 'title', 'asc');7 await browser.close();8})();9const puppeteerSorter = require('puppeteer-sorter');10const puppeteer = require('puppeteer');11(async () => {12 const browser = await puppeteer.launch();13 const page = await browser.newPage();14 puppeteerSorter.sort(page, 'a', 'title', 'asc');15 puppeteerSorter.sort(page, 'a', 'title', 'desc');16 puppeteerSorter.sort(page, 'a', 'text', 'asc');17 puppeteerSorter.sort(page, 'a', 'text', 'desc');18 await browser.close();19})();20const puppeteerSorter = require('puppeteer-sorter');21const puppeteer = require('puppeteer');22(async () => {23 const browser = await puppeteer.launch();24 const page = await browser.newPage();25 puppeteerSorter.sort(page, 'a', 'title', 'asc');26 puppeteerSorter.sort(page, 'a', 'title', 'desc');27 puppeteerSorter.sort(page, 'a', 'text', 'asc');28 puppeteerSorter.sort(page, 'a', 'text', 'desc');29 await browser.close();30})();
Using AI Code Generation
1const checkSorting = require('check-sorting')2const puppeteer = require('puppeteer')3async function run() {4 const browser = await puppeteer.launch({5 })6 const page = await browser.newPage()7 await page.waitForSelector('input[name="q"]')8 await page.type('input[name="q"]', 'Puppeteer')9 await page.click('input[name="btnK"]')10 await page.waitForSelector('div#resultStats')11 const resultStats = await page.$eval('div#resultStats', el => el.textContent)12 console.log(resultStats)13 await page.waitForSelector('h3.r a')14 const links = await page.evaluate(() =>15 Array.from(document.querySelectorAll('h3.r a'), a => a.href)16 console.log(links)17 const isSorted = checkSorting(links)18 console.log(isSorted)19 await browser.close()20}21run()22{23 "scripts": {24 },25 "dependencies": {26 }27}
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!!