Best JavaScript code snippet using wpt
mock-idp.js
Source:mock-idp.js
1'use strict';2// Code is based on the following editor draft:3// https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html4/*5 mock-idp.js is a naive IdP that provides absolutely no6 security for authentication. It can generate identity7 assertion for whatever identity that is requested.8 mock-idp.js validates identity assertion by simply decoding9 the JSON and return whatever that is inside, with no integrity10 protection and thus can be spoofed by anyone.11 While being not practical at all, mock-idp.js allows us12 to test various aspects of the identity API and allow tests13 to manipulate the IdP at will.14 */15// We pass around test options as query string to instruct16// the test IdP proxy script on what actions to perform.17// This hack is based on the fact that query string is allowed18// when specifying the IdP protocol.19function parseQueryString(urlStr) {20 const url = new URL(urlStr);21 const result = {};22 for(const [key, value] of url.searchParams) {23 result[key] = value;24 }25 return result;26}27/*28 9.2.1. Interface Exposed by Identity Providers29 callback GenerateAssertionCallback =30 Promise<RTCIdentityAssertionResult> (31 DOMString contents,32 DOMString origin,33 RTCIdentityProviderOptions options);34 dictionary RTCIdentityProviderOptions {35 DOMString protocol = "default";36 DOMString usernameHint;37 DOMString peerIdentity;38 };39 dictionary RTCIdentityAssertionResult {40 required RTCIdentityProviderDetails idp;41 required DOMString assertion;42 };43 dictionary RTCIdentityProviderDetails {44 required DOMString domain;45 DOMString protocol = "default";46 };47 */48const query = parseQueryString(location);49// Generate a naive identity assertion. The result assertion50// is a JSON string that report the various parameters51// received by this function.52// watermark - a special mark to make sure the result is returned53// from this function54// args - the function arguments received55// env - some global variable values when this function is called56// query - the parsed query string of the script URL57function generateAssertion(contents, origin, options) {58 const args = {59 contents, origin, options60 };61 const env = {62 origin,63 location64 };65 const assertion = {66 watermark: 'mock-idp.js.watermark',67 args,68 env,69 query70 };71 const assertionStr = JSON.stringify(assertion);72 const { generatorAction } = query;73 if(generatorAction === 'throw-error') {74 const err = new Error('Mock Internal IdP Error');75 err.idpErrorInfo = query.errorInfo;76 throw err;77 } else if(generatorAction === 'require-login') {78 const err = new RTCError('idp-need-login');79 err.idpLoginUrl = `${origin}/login`;80 err.idpErrorInfo = 'login required';81 throw err;82 } else if(generatorAction === 'return-custom-idp') {83 const { domain, protocol } = query;84 return {85 idp: {86 domain,87 protocol88 },89 assertion: assertionStr90 };91 } else if(generatorAction === 'return-invalid-result') {92 return 'invalid-result';93 } else {94 return {95 idp: {96 domain: location.host,97 protocol: 'mock-idp.js'98 },99 assertion: assertionStr100 };101 }102}103/*104 9.2.1. Interface Exposed by Identity Providers105 callback ValidateAssertionCallback =106 Promise<RTCIdentityValidationResult> (107 DOMString assertion,108 DOMString origin);109 dictionary RTCIdentityValidationResult {110 required DOMString identity;111 required DOMString contents;112 };113 */114function validateAssertion(assertionStr, origin) {115 const assertion = JSON.parse(assertionStr);116 const { args, query } = assertion;117 const { contents, options } = args;118 const identity = options.usernameHint;119 const {120 validatorAction121 } = query;122 if(validatorAction === 'throw-error') {123 const err = new Error('Mock Internal IdP Error');124 err.idpErrorInfo = query.errorInfo;125 throw err;126 } else if(validatorAction === 'return-custom-contents') {127 const { contents } = query;128 return {129 identity,130 contents131 };132 } else {133 return {134 identity, contents135 };136 }137}138/*139 9.2. Registering an IdP Proxy140 [Global,141 Exposed=RTCIdentityProviderGlobalScope]142 interface RTCIdentityProviderGlobalScope : WorkerGlobalScope {143 readonly attribute RTCIdentityProviderRegistrar rtcIdentityProvider;144 };145 [Exposed=RTCIdentityProviderGlobalScope]146 interface RTCIdentityProviderRegistrar {147 void register(RTCIdentityProvider idp);148 };149 dictionary RTCIdentityProvider {150 required GenerateAssertionCallback generateAssertion;151 required ValidateAssertionCallback validateAssertion;152 };153 */154// if rtcIdentityProvider is defined, and the caller do not ask155// to not register through query string, register our assertion callbacks.156if(rtcIdentityProvider && query.action !== 'do-not-register') {157 rtcIdentityProvider.register({158 generateAssertion,159 validateAssertion160 });...
Using AI Code Generation
1const wpt = require('wpt');2const assert = require('assert');3const wpt = require('wpt');4const assert = require('assert');5 assert.equal(response.statusCode, 200);6 assert.equal(response.statusText, 'OK');7 assert.equal(response.headers['content-type'], 'text/plain');8 assert.equal(response.body, 'WebPageTest.org');9});10const wpt = require('wpt');11const assert = require('assert');12 assert.equal(response.statusCode, 200);13 assert.equal(response.statusText, 'OK');14 assert.equal(response.headers['content-type'], 'text/plain');15 assert.equal(response.body, 'WebPageTest.org');16});17const wpt = require('wpt');18const assert = require('assert');19 assert.equal(response.statusCode, 200);20 assert.equal(response.statusText, 'OK');21 assert.equal(response.headers['content-type'], 'text/plain');22 assert.equal(response.body, 'WebPageTest.org');23});24const wpt = require('wpt');25const assert = require('assert');26 assert.equal(response.statusCode, 200);27 assert.equal(response.statusText, 'OK');28 assert.equal(response.headers['content-type'], 'text/plain');29 assert.equal(response.body, 'WebPageTest.org');30});
Using AI Code Generation
1var wpt = require('webpagetest');2var test = new wpt('API_KEY');3var assert = require('assert');4var location = 'Dulles:Chrome';5var runs = 1;6test.runTest(url, {7}, function(err, data) {8 if (err) {9 console.log('Error: ' + err);10 } else {11 console.log('Test Status: ' + data.statusText);12 console.log('Test ID: ' + data.data.testId);13 console.log('Test URL: ' + data.data.summary);14 console.log('Test runs: ' + data.data.average.firstView.requests);15 console.log('Test bytesIn: ' + data.data.average.firstView.bytesIn);16 console.log('Test bytesOut: ' + data.data.average.firstView.bytesOut);17 console.log('Test result: ' + data.data.average.firstView.result);18 console.log('Test loadTime: ' + data.data.average.firstView.loadTime);19 console.log('Test TTFB: ' + data.data.average.firstView.TTFB);20 console.log('Test render: ' + data.data.average.firstView.render);21 console.log('Test fullyLoaded: ' + data.data.average.firstView.fullyLoaded);22 console.log('Test docTime: ' + data.data.average.firstView.docTime);23 console.log('Test SpeedIndex: ' + data.data.average.firstView.SpeedIndex);24 console.log('Test visualComplete: ' + data.data.average.firstView.visualComplete);25 console.log('Test titleTime: ' + data.data.average.firstView.titleTime);26 console.log('Test domTime: ' + data.data.average.firstView.domTime);27 console.log('Test lastVisualChange: ' + data.data.average.firstView.lastVisualChange);28 console.log('Test score_cache: ' + data.data.average.firstView.score_cache);29 console.log('Test score_cdn: ' + data.data.average.firstView.score_cdn);30 console.log('Test score_gzip: ' + data.data.average.firstView.score_gzip);31 console.log('Test score_cookies: ' + data.data.average.firstView.score_cookies);32 console.log('Test score_keep-alive:
Using AI Code Generation
1var wpt = require('wpt');2var assert = require('assert');3var assertStr = require('assert-str');4assertStr(wpt, assert);5wpt.assertStr('assertStr', 'assertStr');6wpt.assertStr('assertStr', 'assertStr', 'message');
Using AI Code Generation
1var wpt = require('wpt');2var fs = require('fs');3var assert = require('assert');4var wpt = new WebPageTest('www.webpagetest.org', 'A.9fe9b9fbbf8e1d2a2e0c6f7e6c8d8d0e');5var options = {6};7wpt.runTest(url, options, function(err, data) {8 if (err) return console.error(err);9 wpt.getTestResults(data.data.testId, function(err, data) {10 if (err) return console.error(err);11 var json = JSON.stringify(data);12 fs.writeFile("output.json", json, 'utf8');13 var assertionString = wpt.assertionStr(data, {14 'First View': {15 'Speed Index': {16 }17 }18 });19 console.log(assertionString);20 assert.equal(assertionString, 'First View Speed Index min: 1000');21 });22});231. Fork it (
Using AI Code Generation
1var wpt = require('wpt');2var assert = require('assert');3var options = {4};5wpt.runTest(options, function(err, data) {6 assert.ifError(err);7 assert.ok(data.statusCode, 200);8 assert.ok(data.statusText, 'Ok');9 assert.ok(data.data.success, 1);10 assert.ok(data.data.data.average.firstView.SpeedIndex, 2000);11 assert.ok(data.data.data.median.firstView.SpeedIndex, 2000);12 assert.ok(data.data.data.standardDeviation.firstView.SpeedIndex, 2000);13 assert.ok(data.data.data.median.firstView.SpeedIndex, 2000);
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!!