Best JavaScript code snippet using wpt
test-case.sub.js
Source:test-case.sub.js
...5// scenarios for URLs containing username/password/etc.6function stripUrlForUseAsReferrer(url) {7 return url.replace(/#.*$/, "");8}9function invokeScenario(scenario) {10 const urls = getRequestURLs(11 scenario.subresource,12 scenario.origin,13 scenario.redirection);14 /** @type {Subresource} */15 const subresource = {16 subresourceType: scenario.subresource,17 url: urls.testUrl,18 policyDeliveries: scenario.subresource_policy_deliveries,19 };20 return invokeRequest(subresource, scenario.source_context_list);21}22function TestCase(scenario, testDescription, sanityChecker) {23 // This check is A NOOP in release.24 sanityChecker.checkScenario(scenario);25 const referrerUrlResolver = {26 "omitted": function(sourceUrl) {27 return undefined;28 },29 "origin": function(sourceUrl) {30 return new URL(sourceUrl).origin + "/";31 },32 "stripped-referrer": function(sourceUrl) {33 return stripUrlForUseAsReferrer(sourceUrl);34 }35 };36 const checkResult = (expectation, result) => {37 // https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer38 let referrerSource = result.sourceContextUrl;39 const sentFromSrcdoc = scenario.source_context_list.length > 0 &&40 scenario.source_context_list[scenario.source_context_list.length - 1]41 .sourceContextType === 'srcdoc';42 if (sentFromSrcdoc) {43 // Step 3. While document is an iframe srcdoc document, let document be44 // document's browsing context's browsing context container's node45 // document. [spec text]46 // Workaround for srcdoc cases. Currently we only test <iframe srcdoc>47 // inside the top-level Document, so |document| in the spec here is48 // the top-level Document.49 // This doesn't work if e.g. we test <iframe srcdoc> inside another50 // external <iframe>.51 referrerSource = location.toString();52 }53 const expectedReferrerUrl =54 referrerUrlResolver[expectation](referrerSource);55 // Check the reported URL.56 assert_equals(result.referrer,57 expectedReferrerUrl,58 "Reported Referrer URL is '" +59 expectation + "'.");60 assert_equals(result.headers.referer,61 expectedReferrerUrl,62 "Reported Referrer URL from HTTP header is '" +63 expectedReferrerUrl + "'");64 };65 function runTest() {66 function historyBackPromise(t, scenario) {67 history.back();68 return new Promise(resolve => {69 // Wait for completion of `history.back()` by listening the70 // popstate events that are fired near the end of71 // `history.back()` processing.72 window.addEventListener('popstate', resolve, {once: true});73 // Workaround for Safari: Waiting for popstate events causes74 // timeout in a-tag tests. To avoid timeout, we anyway resolve75 // the promise.76 if (scenario.subresource === 'a-tag') {77 t.step_timeout(resolve, 1000);78 }79 });80 }81 promise_test(_ => {82 return invokeScenario(scenario)83 .then(result => checkResult(scenario.expectation, result));84 }, testDescription);85 // `Referer` headers with length over 4k are culled down to an origin, so,86 // let's test around that boundary for tests that would otherwise return87 // the complete URL.88 // The following tests run only on top-level Documents, because they rely89 // on navigations using `history`.90 // Different subresource URLs are used because getRequestURLs() is called91 // for each sub test which returns a unique URL.92 if (scenario.expectation == "stripped-referrer" &&93 scenario.source_context_list.length == 0) {94 promise_test(t => {95 history.pushState(null, null, "/");96 history.replaceState(null, null, "A".repeat(4096 - location.href.length - 1));97 return invokeScenario(scenario)98 .then(result => checkResult(scenario.expectation, result))99 .finally(_ => historyBackPromise(t, scenario));100 }, "`Referer` header with length < 4k is not stripped to an origin.");101 promise_test(t => {102 history.pushState(null, null, "/");103 history.replaceState(null, null, "A".repeat(4096 - location.href.length));104 return invokeScenario(scenario)105 .then(result => checkResult(scenario.expectation, result))106 .finally(_ => historyBackPromise(t, scenario));107 }, "`Referer` header with length == 4k is not stripped to an origin.");108 promise_test(t => {109 history.pushState(null, null, "/");110 history.replaceState(null, null, "A".repeat(4096 - location.href.length + 1));111 return invokeScenario(scenario)112 .then(result => checkResult("origin", result))113 .finally(_ => historyBackPromise(t, scenario));114 }, "`Referer` header with length > 4k is stripped to an origin.");115 }116 }117 return {start: runTest};...
Using AI Code Generation
1var wpt = require('wpt');2var wpt = new WebPageTest('www.webpagetest.org');3 if (err) {4 console.error(err);5 } else {6 console.log('Test status: ' + data.statusText);7 console.log('Test ID: ' + data.data.testId);8 console.log('Test URL: ' + data.data.summary);9 }10});11### WebPageTest(host, apiKey, options)
Using AI Code Generation
1var wpt = require('wpt');2var wpt = new WebPageTest('www.webpagetest.org', 'A.1234567890abcdef1234567890abcdef');3}, function(err, data) {4 if (err) {5 console.log(err);6 } else {7 console.log(data);8 wpt.getTestResults(data.data.testId, function(err, data) {9 console.log(data);10 });11 }12});13### WebPageTest(apiKey, server)14### runTest(url, options, callback)15* `options` - Test options (see below)16* `runs` - Number of test runs (default: 3)17* `location` - Test location (default: Dulles:Chrome)18* `firstViewOnly` - Only test the first view (default: false)19* `video` - Record video (default: true)20* `connectivity` - The network connectivity profile (default: Cable)21* `latency` - The latency in milliseconds (default: 0)22* `bwDown` - The download bandwidth in kbps (default: 0)23* `bwUp` - The upload bandwidth in kbps (default: 0)24* `plr` - The packet loss rate in percent (default: 0)25* `mobile` - Mobile device emulation (default: false)26* `mobileDevice` - Mobile device to emulate (default: Nexus 5)27* `mobileCarrier` - Mobile carrier to emulate (default: Verizon)28* `script` - Script to run on the page (default: null)29* `label` - Label to use for the test (default: null)30* `private` - Make the test private (default: false)
Using AI Code Generation
1var wpt = require('wpt');2wpt.invokeScenario('test', function(err, data) {3if (err) {4console.log("error in invoking scenario");5}6else {7console.log(data);8}9});10var wpt = require('wpt');11wpt.invokeScenario('test', {param1: 'v1', param2: 'v2'}, function(err, data) {12if (err) {13console.log("error in invoking scenario");14}15else {16console.log(data);17}18});19var wpt = require('wpt');20wpt.invokeScenario('test', {param1: 'v1', param2: 'v2'}, {param3: 'v3', param4: 'v4'}, function(err, data) {21if (err) {22console.log("error in invoking scenario");23}24else {25console.log(data);26}27});28var wpt = require('wpt');29wpt.invokeScenario('test', {param1: 'v1', param2: 'v2'}, {param3: 'v3', param4: 'v4'}, {param5: 'v5', param6: 'v6'}, function(err, data) {30if (err) {31console.log("error in invoking scenario");32}33else {34console.log(data);35}36});37var wpt = require('wpt');38wpt.invokeScenario('test', {param1: 'v1', param2: 'v2'}, {param3: 'v3', param4: 'v4'}, {param5: 'v5', param6: 'v6'}, {param7: 'v7', param8: 'v8'}, function(err, data) {39if (err) {40console.log("error in invoking scenario");41}42else {43console.log(data);44}45});46var wpt = require('wpt');47wpt.invokeScenario('test', {param1: 'v1', param2: 'v2'}, {param3: 'v
Using AI Code Generation
1var wpt = require(‘wpt’);2var wpt = require(‘wpt’);3var wpt = require(‘wpt’);4var wpt = require(‘wpt’);5var wpt = require(‘wpt’);6var wpt = require(‘wpt’);7var wpt = require(‘wpt’);8var wpt = require(‘wpt’);9var wpt = require(‘wpt’);
Using AI Code Generation
1var wpt = require('wpt');2var wpt = new WebPageTest('www.webpagetest.org', 'A.9b0d7b1c1e1e7b0f8c5f7e2b2d5d7e5e');3 if (err) return console.error(err);4 console.log('Test status: ' + data.statusCode);5 console.log('Test status text: ' + data.statusText);6 console.log('Test ID: ' + data.data.testId);7 console.log('Test URL: ' + data.data.summary);8 console.log('Test location: ' + data.data.location);9 console.log('Test connectivity: ' + data.data.connectivity);10 console.log('Test runs: ' + data.data.runs);11 console.log('Test video: ' + data.data.video);12 console.log('Test firstView: ' + data.data.firstView);13 console.log('Test repeatView: ' + data.data.repeatView);14});15 if (err) return console.error(err);16 console.log('Test status: ' + data.statusCode);17 console.log('Test status text: ' + data.statusText);18 console.log('Test ID: ' + data.data.testId);19 console.log('Test URL: ' + data.data.summary);20 console.log('Test location: ' + data.data.location);21 console.log('Test connectivity: ' + data.data.connectivity);22 console.log('Test runs: ' + data.data.runs);23 console.log('Test video: ' + data.data.video);24 console.log('Test firstView: ' + data.data.firstView);25 console.log('Test repeatView: ' + data.data.repeatView);26});
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!!