Best JavaScript code snippet using wpt
call_capturer.test.js
Source:call_capturer.test.js
1var assert = require('chai').assert;2var sinon = require('sinon');3var CallCapturer = require('../../../lib/patchers/call_capturer');4describe('CallCapturer', function() {5 var sandbox;6 beforeEach(function() {7 sandbox = sinon.sandbox.create();8 });9 afterEach(function() {10 sandbox.restore();11 });12 describe('#constructor', function() {13 var jsonDoc = {14 services: {15 s3: {}16 }17 };18 it('should return a call capturer object loaded with the default JSON document', function() {19 var capturer = new CallCapturer();20 assert.instanceOf(capturer, CallCapturer);21 assert.property(capturer.services, 'dynamodb');22 });23 it('should return a call capturer object loaded with a custom JSON document given a file location', function() {24 var capturer = new CallCapturer('./test/resources/custom_whitelist.json');25 assert.instanceOf(capturer, CallCapturer);26 assert.property(capturer.services, 's3');27 });28 it('should return a call capturer object loaded with a custom source object', function() {29 var capturer = new CallCapturer(jsonDoc);30 assert.instanceOf(capturer, CallCapturer);31 assert.property(capturer.services, 's3');32 });33 });34 describe('#append', function() {35 var capturer;36 beforeEach(function() {37 capturer = new CallCapturer({ services: { s3: {} }});38 });39 it('should extend the current service list', function() {40 capturer.append({ services: { dynamodb: {} }});41 assert.property(capturer.services, 's3');42 assert.property(capturer.services, 'dynamodb');43 });44 });45 describe('#capture', function() {46 var jsonDocDynamoParams, jsonDocDynamoDesc, jsonDocSQS, responseDynamo, responseSQS;47 beforeEach(function() {48 responseDynamo = {49 request: {50 operation: 'getItem',51 params: {52 TableName: 'myTable',53 ProjectionExpression: 'Table',54 ConsistentRead: true,55 ExpressionAttributeNames: {56 '#attrName': 'SessionID'57 }58 }59 },60 data: {61 TableNames: ['hello'],62 ConsumedCapacity: '10'63 }64 };65 responseSQS = {66 request: {67 operation: 'sendMessageBatch',68 params: {}69 },70 data: {71 Failed: [1,2,3],72 Successful: [1,2,3,4,5,6,7]73 }74 };75 jsonDocDynamoParams = {76 services: {77 dynamodb: {78 operations: {79 getItem: {80 request_parameters: [ 'TableName' ],81 response_parameters: [ 'ConsumedCapacity' ]82 }83 }84 }85 }86 };87 jsonDocDynamoDesc = {88 services: {89 dynamodb: {90 operations: {91 getItem: {92 request_descriptors: {93 ExpressionAttributeNames: {94 get_keys: true,95 rename_to: 'attribute_names_substituted'96 }97 },98 response_descriptors: {99 TableNames: {100 list: true,101 get_count: true102 }103 }104 }105 }106 }107 }108 };109 jsonDocSQS = {110 services: {111 sqs: {112 operations: {113 sendMessageBatch: {114 response_descriptors: {115 Failed: {116 list: true,117 get_count: true,118 },119 Successful: {120 list: true,121 get_count: true,122 },123 }124 }125 }126 }127 }128 };129 });130 it('should capture the request and response params noted', function() {131 var capturer = new CallCapturer(jsonDocDynamoParams);132 var data = capturer.capture('dynamodb', responseDynamo);133 assert.deepEqual(data, { table_name: 'myTable', consumed_capacity: '10' });134 });135 it('should capture falsey request and response params noted', function() {136 responseDynamo.request.params.TableName = false;137 var capturer = new CallCapturer(jsonDocDynamoParams);138 var data = capturer.capture('dynamodb', responseDynamo);139 assert.deepEqual(data, { table_name: false, consumed_capacity: '10' });140 });141 it('should not capture the request param if missing', function() {142 delete responseDynamo.request.params.TableName;143 var capturer = new CallCapturer(jsonDocDynamoParams);144 var data = capturer.capture('dynamodb', responseDynamo);145 assert.notProperty(data, 'table_name');146 assert.propertyVal(data, 'consumed_capacity', '10');147 });148 it('should not capture the response param if missing', function() {149 delete responseDynamo.data.ConsumedCapacity;150 var capturer = new CallCapturer(jsonDocDynamoParams);151 var data = capturer.capture('dynamodb', responseDynamo);152 assert.notProperty(data, 'consumed_capacity');153 });154 it('should capture the request descriptors as noted', function() {155 var capturer = new CallCapturer(jsonDocDynamoDesc);156 var data = capturer.capture('dynamodb', responseDynamo);157 assert.deepEqual(data, { attribute_names_substituted: [ '#attrName' ], table_names: 1 });158 });159 it('should capture falsey request descriptors noted', function() {160 delete jsonDocDynamoDesc.services.dynamodb.operations.getItem.request_descriptors.ExpressionAttributeNames.get_keys;161 delete jsonDocDynamoDesc.services.dynamodb.operations.getItem.request_descriptors.ExpressionAttributeNames.rename_to;162 responseDynamo.request.params.ExpressionAttributeNames = false;163 var capturer = new CallCapturer(jsonDocDynamoDesc);164 var data = capturer.capture('dynamodb', responseDynamo);165 assert.propertyVal(data, 'expression_attribute_names', false);166 });167 it('should rename the request descriptor if noted', function() {168 var capturer = new CallCapturer(jsonDocDynamoDesc);169 var data = capturer.capture('dynamodb', responseDynamo);170 assert.property(data, 'attribute_names_substituted');171 assert.deepEqual(data.attribute_names_substituted, [ '#attrName' ]);172 });173 it('should not capture the request descriptor if missing', function() {174 delete responseDynamo.request.params.ExpressionAttributeNames;175 var capturer = new CallCapturer(jsonDocDynamoDesc);176 var data = capturer.capture('dynamodb', responseDynamo);177 assert.notProperty(data, 'attribute_names_substituted');178 });179 it('should capture the response descriptors as noted', function() {180 var capturer = new CallCapturer(jsonDocSQS);181 var data = capturer.capture('sqs', responseSQS);182 assert.deepEqual(data, { failed: 3, successful: 7 });183 });184 it('should not capture the response descriptor if missing', function() {185 delete responseSQS.data.Failed;186 var capturer = new CallCapturer(jsonDocSQS);187 var data = capturer.capture('sqs', responseSQS);188 assert.notProperty(data, 'failed');189 assert.propertyVal(data, 'successful', 7);190 });191 it('should rename the response descriptor if noted', function() {192 jsonDocSQS.services.sqs.operations.sendMessageBatch.response_descriptors.Failed.rename_to = 'error';193 var capturer = new CallCapturer(jsonDocSQS);194 var data = capturer.capture('sqs', responseSQS);195 assert.propertyVal(data, 'error', 3);196 });197 it('should ignore response data if null, in the event of an error', function () {198 var capturer = new CallCapturer(jsonDocSQS);199 responseSQS.data = null;200 var data = capturer.capture('sqs', responseSQS);201 assert.deepEqual(data, {});202 });203 });...
input_capture.js
Source:input_capture.js
1"use strict";2Object.defineProperty(exports, "__esModule", {3 value: true4});5exports.inputCaptureSetWatcher = inputCaptureSetWatcher;6exports.inputCaptureRegisterElement = inputCaptureRegisterElement;7function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }8function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }9function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }10function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }11function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }12function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }13var MOUSE_BUTTON_TYPE = 1;14var LEFT_MOUSE_BUTTON_CODE = window.DiscordNative.process.platform === 'win32' ? 0 : 1;15var SEQUENCE_CAPTURE_TIMEOUT = 5000;16var MAX_SEQUENCE_LENGTH = 4;17var inputWatchAll = null;18var InputCapturer = /*#__PURE__*/function () {19 function InputCapturer(callback) {20 _classCallCheck(this, InputCapturer);21 this._timeout = null;22 this._callback = null;23 this._capturedInputSequence = [];24 this._callback = callback;25 }26 _createClass(InputCapturer, [{27 key: "start",28 value: function start() {29 var _this = this;30 if (this.isActive()) {31 return;32 }33 this._timeout = setTimeout(function () {34 return _this.stop();35 }, SEQUENCE_CAPTURE_TIMEOUT);36 InputCapturer._activeCapturers.push(this);37 if (InputCapturer._activeCapturers.length === 1) {38 inputWatchAll(InputCapturer._globalInputHandler);39 }40 }41 }, {42 key: "stop",43 value: function stop() {44 var _this2 = this;45 InputCapturer._activeCapturers = InputCapturer._activeCapturers.filter(function (x) {46 return x !== _this2;47 });48 if (InputCapturer._activeCapturers.length === 0) {49 inputWatchAll(null);50 }51 if (this._timeout != null) {52 clearTimeout(this._timeout);53 this._timeout = null;54 }55 var inputSequence = this._capturedInputSequence.map(function (entry) {56 return [entry[0], entry[1]];57 });58 this._capturedInputSequence = [];59 if (this._callback != null) {60 this._callback(inputSequence);61 }62 }63 }, {64 key: "isActive",65 value: function isActive() {66 return this._timeout != null;67 }68 }, {69 key: "_handleInputEvent",70 value: function _handleInputEvent(type, state, code) {71 if (state === 0) {72 var allEntriesReleased = true;73 var _iterator = _createForOfIteratorHelper(this._capturedInputSequence),74 _step;75 try {76 for (_iterator.s(); !(_step = _iterator.n()).done;) {77 var entry = _step.value;78 if (entry[0] === type && entry[1] === code) {79 entry[2] = false;80 }81 allEntriesReleased = allEntriesReleased && entry[2] === false;82 }83 } catch (err) {84 _iterator.e(err);85 } finally {86 _iterator.f();87 }88 if (this._capturedInputSequence.length > 0 && allEntriesReleased) {89 this.stop();90 }91 } else {92 this._capturedInputSequence.push([type, code, true]);93 if (this._capturedInputSequence.length === MAX_SEQUENCE_LENGTH) {94 this.stop();95 }96 }97 }98 }], [{99 key: "_globalInputHandler",100 value: function _globalInputHandler(type, state, code) {101 if (type === MOUSE_BUTTON_TYPE && code === LEFT_MOUSE_BUTTON_CODE) {102 // ignore left click103 return;104 }105 var _iterator2 = _createForOfIteratorHelper(InputCapturer._activeCapturers),106 _step2;107 try {108 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {109 var capturer = _step2.value;110 capturer._handleInputEvent(type, state, code);111 }112 } catch (err) {113 _iterator2.e(err);114 } finally {115 _iterator2.f();116 }117 }118 }]);119 return InputCapturer;120}();121InputCapturer._activeCapturers = [];122function inputCaptureSetWatcher(inputWatcher) {123 inputWatchAll = inputWatcher;124}125function inputCaptureRegisterElement(elementId, callback) {126 if (inputWatchAll == null) {127 throw new Error('Input capturing is missing an input watcher');128 }129 var capturer = new InputCapturer(callback);130 var registerUserInteractionHandler = window.DiscordNative.app.registerUserInteractionHandler;131 var unregisterFunctions = [registerUserInteractionHandler(elementId, 'click', function (_) {132 return capturer.start();133 }), registerUserInteractionHandler(elementId, 'focus', function (_) {134 return capturer.start();135 }), registerUserInteractionHandler(elementId, 'blur', function (_) {136 return capturer.stop();137 })];138 return function () {139 var _iterator3 = _createForOfIteratorHelper(unregisterFunctions),140 _step3;141 try {142 for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {143 var unregister = _step3.value;144 unregister();145 }146 } catch (err) {147 _iterator3.e(err);148 } finally {149 _iterator3.f();150 }151 capturer.stop();152 };...
CaptureService.js
Source:CaptureService.js
1angular.module("CaptureService",[])2 .factory('Capture',["$http",function($http){3 var beginCapture = function(formData){4 var promise = $http.post('/api/startCapture', formData);5 console.log("Logging promise: " + promise);6 return promise;7 };8 var getPackets = function(capturer) {9 console.log("Request to backend to getPackets");10 var promise = $http.post('/api/getPackets',{'packmon': capturer});11 return promise;12 };13 var setCapturer = function(capturer) {14 var self = this;15 console.log("Setting capturer: " + capturer);16 self.capturer = capturer;17 console.log("Capturer type: " + capturer.constructor);18 };19 var getCapturer = function() {20 var self = this;21 return self.capturer;22 };23 var endCapture = function(capturer) {24 console.log("Stopping capture ...");25 var promise = $http.post('/api/stopCapture',{'capturer': capturer});26 return promise;27 };28 return {29 startCapture: function(formData) {return beginCapture(formData);},30 getPackets: function(capturer) {return getPackets(capturer);},31 setCapturer: function(capturer) {return setCapturer(capturer);},32 getCapturer: function() {return getCapturer();},33 stopCapture: function(capturer) { return endCapture(capturer);}34 };...
Using AI Code Generation
1var webPage = require('webpage');2var page = webPage.create();3var system = require('system');4var fs = require('fs');5if (system.args.length === 1) {6 console.log('Usage: test.js <some URL>');7 phantom.exit();8}9var url = system.args[1];10var filename = system.args[2];11var wptServer = system.args[3];12var wpt = require('webpagetest');13var client = wpt(wptServer);14var options = {
Using AI Code Generation
1var page = require('webpage').create();2page.viewportSize = { width: 1920, height: 1080 };3 page.render('google.png');4 phantom.exit();5});6var page = require('webpage').create();7var system = require('system');8var args = system.args;9var url = args[1];10page.viewportSize = { width: 1920, height: 1080 };11page.open(url, function() {12 page.render('google.png');13 phantom.exit();14});
Using AI Code Generation
1var wpt = new WebPageTest('www.webpagetest.org', 'A.8d8e5b7d0e0c66d7b8f0c0f1e9c9a2e2');2var options = {3};4 if (err){5 console.log(err);6 }7 else {8 console.log(data);9 }10});
Using AI Code Generation
1const wpt = require('wpt-api');2const client = new wpt('A.4f6a2a2f2f1bae8f9b9ae2f7d2b2d8c1');3const options = {4 videoParams: {5 videoParams: {6 }7 }8};9client.capturer(url, options)10 .then(data => console.log(data))11 .catch(err => console.log(err));12const wpt = require('wpt-api');13const client = new wpt('A.4f6a2a2f2f1bae8f9b9ae2f7d2b2d8c1');14const options = {15 videoParams: {16 videoParams: {17 }18 }19};20client.capturer(url, options)21 .then(data => console.log(data))22 .catch(err => console.log(err));
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!!