Best JavaScript code snippet using wpt
addBinding.js
Source:addBinding.js
1/*2 * Licensed to the Apache Software Foundation (ASF) under one or more3 * contributor license agreements. See the NOTICE file distributed with4 * this work for additional information regarding copyright ownership.5 * The ASF licenses this file to You under the Apache License, Version 2.06 * (the "License"); you may not use this file except in compliance with7 * the License. You may obtain a copy of the License at8 *9 * http://www.apache.org/licenses/LICENSE-2.010 *11 * Unless required by applicable law or agreed to in writing, software12 * distributed under the License is distributed on an "AS IS" BASIS,13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14 * See the License for the specific language governing permissions and15 * limitations under the License.16 */17define(["dojo/_base/connect",18 "dojo/dom",19 "dojo/dom-construct",20 "dojo/_base/window",21 "dijit/registry",22 "dojo/parser",23 "dojo/_base/array",24 "dojo/_base/event",25 'dojo/_base/json',26 "dojo/_base/lang",27 "dojo/_base/declare",28 "dojo/store/Memory",29 "dijit/form/FilteringSelect",30 "qpid/common/util",31 "dojo/text!addBinding.html",32 "dijit/form/NumberSpinner", // required by the form33 /* dojox/ validate resources */34 "dojox/validate/us", "dojox/validate/web",35 /* basic dijit classes */36 "dijit/Dialog",37 "dijit/form/CheckBox", "dijit/form/Textarea",38 "dijit/form/FilteringSelect", "dijit/form/TextBox",39 "dijit/form/ValidationTextBox", "dijit/form/DateTextBox",40 "dijit/form/TimeTextBox", "dijit/form/Button",41 "dijit/form/RadioButton", "dijit/form/Form",42 "dijit/form/DateTextBox",43 /* basic dojox classes */44 "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect",45 "dojox/grid/EnhancedGrid",46 "dojo/data/ObjectStore",47 "dojo/domReady!"],48 function (connect, dom, construct, win, registry, parser, array, event, json, lang, declare, Memory, FilteringSelect, util, template) {49 var noLocalValues = new Memory({50 data: [51 {name:"true", id:true},52 {name:"false", id:false}53 ]54 });55 var xMatchValues = new Memory({56 data: [57 {name:"all", id:"all"},58 {name:"any", id:"any"}59 ]60 });61 var defaultBindingArguments = [62 {id: 0, name:"x-filter-jms-selector", value: null},63 {id: 1, name:"x-qpid-no-local", value: null}64 ];65 var GridWidgetProxy = declare("qpid.dojox.grid.cells.GridWidgetProxy", dojox.grid.cells._Widget, {66 createWidget: function(inNode, inDatum, inRowIndex)67 {68 var WidgetClass = this.widgetClass;69 var widgetProperties = this.getWidgetProps(inDatum);70 var getWidgetProperties = widgetProperties.getWidgetProperties;71 if (typeof getWidgetProperties == "function")72 {73 var item = this.grid.getItem(inRowIndex);74 if (item)75 {76 var additionalWidgetProperties = getWidgetProperties(inDatum, inRowIndex, item);77 if (additionalWidgetProperties)78 {79 WidgetClass = additionalWidgetProperties.widgetClass;80 for(var prop in additionalWidgetProperties)81 {82 if(additionalWidgetProperties.hasOwnProperty(prop) && !widgetProperties[prop])83 {84 widgetProperties[prop] = additionalWidgetProperties[ prop ];85 }86 }87 }88 }89 }90 var widget = new WidgetClass(widgetProperties, inNode);91 return widget;92 },93 getValue: function(inRowIndex)94 {95 if (this.widget)96 {97 return this.widget.get('value');98 }99 return null;100 },101 _finish: function(inRowIndex)102 {103 if (this.widget)104 {105 this.inherited(arguments);106 this.widget.destroyRecursive();107 this.widget = null;108 }109 }110 });111 var addBinding = {};112 var node = construct.create("div", null, win.body(), "last");113 var convertToBinding = function convertToBinding(formValues)114 {115 var newBinding = {};116 newBinding.name = formValues.name;117 for(var propName in formValues)118 {119 if(formValues.hasOwnProperty(propName))120 {121 if(propName === "durable")122 {123 if (formValues.durable[0] && formValues.durable[0] == "durable") {124 newBinding.durable = true;125 }126 } else {127 if(formValues[ propName ] !== "") {128 newBinding[ propName ] = formValues[propName];129 }130 }131 }132 }133 if(addBinding.queue) {134 newBinding.queue = addBinding.queue;135 }136 if(addBinding.exchange) {137 newBinding.exchange = addBinding.exchange;138 }139 addBinding.bindingArgumentsGrid.store.fetch({140 onComplete:function(items,request)141 {142 if(items.length)143 {144 array.forEach(items, function(item)145 {146 if (item && item.name && item.value)147 {148 var bindingArguments = newBinding.arguments;149 if (!bindingArguments)150 {151 bindingArguments = {};152 newBinding.arguments = bindingArguments;153 }154 bindingArguments[item.name]=item.value;155 }156 });157 }158 }159 });160 return newBinding;161 };162 var theForm;163 node.innerHTML = template;164 addBinding.dialogNode = dom.byId("addBinding");165 parser.instantiate([addBinding.dialogNode]);166 theForm = registry.byId("formAddBinding");167 array.forEach(theForm.getDescendants(), function(widget)168 {169 if(widget.name === "type") {170 widget.on("change", function(isChecked) {171 var obj = registry.byId(widget.id + ":fields");172 if(obj) {173 if(isChecked) {174 obj.domNode.style.display = "block";175 obj.resize();176 } else {177 obj.domNode.style.display = "none";178 obj.resize();179 }180 }181 })182 }183 });184 var argumentsGridNode = dom.byId("formAddbinding.bindingArguments");185 var objectStore = new dojo.data.ObjectStore({objectStore: new Memory({data:lang.clone(defaultBindingArguments), idProperty: "id"})});186 var layout = [[187 { name: "Argument Name", field: "name", width: "50%", editable: true },188 { name: 'Argument Value', field: 'value', width: '50%', editable: true, type: GridWidgetProxy,189 widgetProps: {190 getWidgetProperties: function(inDatum, inRowIndex, item)191 {192 if (item.name == "x-qpid-no-local")193 {194 return {195 labelAttr: "name",196 searchAttr: "id",197 selectOnClick: false,198 query: { id: "*"},199 required: false,200 store: noLocalValues,201 widgetClass: dijit.form.FilteringSelect202 };203 }204 else if (item.name && item.name.toLowerCase() == "x-match")205 {206 return {207 labelAttr: "name",208 searchAttr: "id",209 selectOnClick: false,210 query: { id: "*"},211 required: false,212 store: xMatchValues,213 widgetClass: dijit.form.FilteringSelect214 };215 }216 return {widgetClass: dijit.form.TextBox };217 }218 }219 }220 ]];221 var grid = new dojox.grid.EnhancedGrid({222 selectionMode: "multiple",223 store: objectStore,224 singleClickEdit: true,225 structure: layout,226 autoHeight: true,227 plugins: {indirectSelection: true}228 }, argumentsGridNode);229 grid.startup();230 addBinding.bindingArgumentsGrid = grid;231 addBinding.idGenerator = 1;232 var addArgumentButton = registry.byId("formAddbinding.addArgumentButton");233 var deleteArgumentButton = registry.byId("formAddbinding.deleteArgumentButton");234 var toggleGridButtons = function(index)235 {236 var data = grid.selection.getSelected();237 deleteArgumentButton.set("disabled", !data || data.length==0);238 };239 connect.connect(grid.selection, 'onSelected', toggleGridButtons);240 connect.connect(grid.selection, 'onDeselected', toggleGridButtons);241 deleteArgumentButton.set("disabled", true);242 addArgumentButton.on("click",243 function(event)244 {245 addBinding.idGenerator = addBinding.idGenerator + 1;246 var newItem = {id:addBinding.idGenerator, name: "", value: ""};247 grid.store.newItem(newItem);248 grid.store.save();249 grid.store.fetch(250 {251 onComplete:function(items,request)252 {253 var rowIndex = items.length - 1;254 window.setTimeout(function()255 {256 grid.focus.setFocusIndex(rowIndex, 1 );257 },10);258 }259 });260 }261 );262 deleteArgumentButton.on("click",263 function(event)264 {265 var data = grid.selection.getSelected();266 if(data.length)267 {268 array.forEach(data, function(selectedItem) {269 if (selectedItem !== null)270 {271 grid.store.deleteItem(selectedItem);272 }273 });274 grid.store.save();275 }276 }277 );278 theForm.on("submit", function(e) {279 event.stop(e);280 if(theForm.validate()){281 var newBinding = convertToBinding(util.getFormWidgetValues(registry.byId("formAddBinding")));282 var that = this;283 var model = null;284 if (addBinding.modelObj.type == "exchange")285 {286 model = {name: newBinding.queue, type: "queue", parent: addBinding.modelObj};287 }288 else289 {290 model = {name: newBinding.queue,291 type: "queue",292 parent: { name: newBinding.exchange,293 type: "exchange",294 parent: addBinding.modelObj.parent295 }296 };297 }298 addBinding.management.create("binding", model, newBinding).then(function(x){registry.byId("addBinding").hide();});299 return false;300 }else{301 alert('Form contains invalid data. Please correct first');302 return false;303 }304 });305 addBinding.show = function(management, obj) {306 var that = this;307 addBinding.management = management;308 addBinding.modelObj = obj;309 registry.byId("formAddBinding").reset();310 var grid = addBinding.bindingArgumentsGrid;311 grid.store.fetch({312 onComplete:function(items,request)313 {314 if(items.length)315 {316 array.forEach(items, function(item)317 {318 if (item !== null)319 {320 grid.store.deleteItem(item);321 }322 });323 }324 }325 });326 array.forEach(lang.clone(defaultBindingArguments), function(item) {grid.store.newItem(item); });327 grid.store.save();328 management.load({type: "queue", parent: obj.parent }, {depth: 0}).then(329 function(data) {330 var queues = [];331 for(var i=0; i < data.length; i++) {332 queues[i] = {id: data[i].name, name: data[i].name};333 }334 var queueStore = new Memory({ data: queues });335 if(that.queueChooser) {336 that.queueChooser.destroy( false );337 }338 var queueDiv = dom.byId("addBinding.selectQueueDiv");339 var input = construct.create("input", {id: "addBindingSelectQueue"}, queueDiv);340 that.queueChooser = new FilteringSelect({ id: "addBindingSelectQueue",341 name: "queue",342 store: queueStore,343 searchAttr: "name",344 promptMessage: "Name of the queue",345 title: "Select the name of the queue"}, input);346 if(obj.type == "queue")347 {348 that.queueChooser.set("value", obj.name);349 that.queueChooser.set("disabled", true);350 }351 management.load({type: "exchange", parent: obj.parent }, {depth: 0}).then(352 function(data) {353 var exchanges = [];354 for(var i=0; i < data.length; i++) {355 exchanges[i] = {id: data[i].name, name: data[i].name};356 }357 var exchangeStore = new Memory({ data: exchanges });358 if(that.exchangeChooser) {359 that.exchangeChooser.destroy( false );360 }361 var exchangeDiv = dom.byId("addBinding.selectExchangeDiv");362 var input = construct.create("input", {id: "addBindingSelectExchange"}, exchangeDiv);363 that.exchangeChooser = new FilteringSelect({ id: "addBindingSelectExchange",364 name: "exchange",365 store: exchangeStore,366 searchAttr: "name",367 promptMessage: "Name of the exchange",368 title: "Select the name of the exchange"}, input);369 if(obj.type == "exchange")370 {371 that.exchangeChooser.set("value", obj.name);372 that.exchangeChooser.set("disabled", true);373 }374 registry.byId("addBinding").show();375 }, util.xhrErrorHandler);376 }, util.xhrErrorHandler);377 };378 return addBinding;...
KeyBindingManager-test.js
Source:KeyBindingManager-test.js
...65 });66 describe("addBinding", function () {67 68 it("should require command and key binding arguments", function () {69 KeyBindingManager.addBinding();70 expect(KeyBindingManager.getKeymap()).toEqual({});71 72 KeyBindingManager.addBinding("test.foo");73 expect(KeyBindingManager.getKeymap()).toEqual({});74 expect(KeyBindingManager.getKeyBindings("test.foo")).toEqual([]);75 });76 77 it("should ignore invalid bindings", function () {78 expect(KeyBindingManager.addBinding("test.foo", "Ktrl-Shift-A")).toBeNull();79 expect(KeyBindingManager.addBinding("test.foo", "Ctrl+R")).toBeNull();80 expect(KeyBindingManager.getKeymap()).toEqual({});81 });82 83 it("should add single bindings to the keymap", function () {84 var result = KeyBindingManager.addBinding("test.foo", "Ctrl-A");85 expect(result).toEqual(key("Ctrl-A"));86 expect(KeyBindingManager.getKeyBindings("test.foo")).toEqual([key("Ctrl-A")]);87 88 result = KeyBindingManager.addBinding("test.bar", "Ctrl-B");89 expect(result).toEqual(key("Ctrl-B"));90 expect(KeyBindingManager.getKeyBindings("test.bar")).toEqual([key("Ctrl-B")]);91 92 result = KeyBindingManager.addBinding("test.cat", "Ctrl-C", "bark");93 expect(result).toBeNull();94 95 result = KeyBindingManager.addBinding("test.dog", "Ctrl-D", "test");96 expect(result).toEqual(key("Ctrl-D"));97 expect(KeyBindingManager.getKeyBindings("test.dog")).toEqual([key("Ctrl-D")]);98 99 // only "test" platform bindings100 var expected = keyMap([101 keyBinding("Ctrl-A", "test.foo"),102 keyBinding("Ctrl-B", "test.bar"),103 keyBinding("Ctrl-D", "test.dog")104 ]);105 106 expect(KeyBindingManager.getKeymap()).toEqual(expected);107 });108 109 it("should use displayKey to override display of the shortcut", function () {110 KeyBindingManager.addBinding("test.foo", key("Ctrl-=", "Ctrl-+"));111 112 // only "test" platform bindings113 var expected = keyMap([114 keyBinding("Ctrl-=", "test.foo", "Ctrl-+")115 ]);116 117 expect(KeyBindingManager.getKeymap()).toEqual(expected);118 });119 120 it("should add multiple bindings to the keymap", function () {121 // use a fake platform122 brackets.platform = "test1";123 124 var results = KeyBindingManager.addBinding("test.foo", [{key: "Ctrl-A", platform: "test1"}, "Ctrl-1"]);125 expect(results).toEqual([126 key("Ctrl-A"),127 key("Ctrl-1")128 ]);129 expect(KeyBindingManager.getKeyBindings("test.foo")).toEqual([130 key("Ctrl-A"),131 key("Ctrl-1")132 ]);133 134 results = KeyBindingManager.addBinding("test.bar", [{key: "Ctrl-B"}, {key: "Ctrl-2", platform: "test2"}]);135 expect(results).toEqual([136 key("Ctrl-B")137 ]);138 expect(KeyBindingManager.getKeyBindings("test.bar")).toEqual([139 key("Ctrl-B")140 ]);141 142 // only "test1" platform and cross-platform bindings143 var expected = keyMap([144 keyBinding("Ctrl-A", "test.foo"),145 keyBinding("Ctrl-1", "test.foo"),146 keyBinding("Ctrl-B", "test.bar")147 ]);148 149 expect(KeyBindingManager.getKeymap()).toEqual(expected);150 });151 152 it("should prevent a key binding from mapping to multiple commands", function () {153 KeyBindingManager.addBinding("test.foo", "Ctrl-A");154 KeyBindingManager.addBinding("test.bar", "Ctrl-A");155 156 var expected = keyMap([157 keyBinding("Ctrl-A", "test.foo")158 ]);159 160 expect(KeyBindingManager.getKeymap()).toEqual(expected);161 });162 163 it("should allow a command to map to multiple key bindings", function () {164 KeyBindingManager.addBinding("test.foo", "Ctrl-A");165 KeyBindingManager.addBinding("test.foo", "Ctrl-B");166 167 // only "test1" platform and cross-platform bindings168 var expected = keyMap([169 keyBinding("Ctrl-A", "test.foo"),170 keyBinding("Ctrl-B", "test.foo")171 ]);172 173 expect(KeyBindingManager.getKeymap()).toEqual(expected);174 });175 176 it("should support the Ctrl key on mac", function () {177 brackets.platform = "mac";178 179 KeyBindingManager.addBinding("test.cmd", "Cmd-A", "mac");180 KeyBindingManager.addBinding("test.ctrl", "Ctrl-A", "mac");181 KeyBindingManager.addBinding("test.ctrlAlt", "Ctrl-Alt-A", "mac");182 KeyBindingManager.addBinding("test.cmdCtrlAlt", "Cmd-Ctrl-A", "mac");183 184 var expected = keyMap([185 keyBinding("Cmd-A", "test.cmd"),186 keyBinding("Ctrl-A", "test.ctrl"),187 keyBinding("Ctrl-Alt-A", "test.ctrlAlt"),188 keyBinding("Ctrl-Cmd-A", "test.cmdCtrlAlt") // KeyBindingManager changes the order189 ]);190 191 expect(KeyBindingManager.getKeymap()).toEqual(expected);192 });193 });194 describe("removeBinding", function () {195 196 it("should handle an empty keymap gracefully", function () {197 KeyBindingManager.removeBinding("Ctrl-A");198 expect(KeyBindingManager.getKeymap()).toEqual({});199 });200 201 it("should require a key to remove", function () {202 KeyBindingManager.addBinding("test.foo", "Ctrl-A");203 KeyBindingManager.addBinding("test.bar", "Ctrl-B");204 205 // keymap should be unchanged206 var expected = keyMap([207 keyBinding("Ctrl-A", "test.foo"),208 keyBinding("Ctrl-B", "test.bar")209 ]);210 211 KeyBindingManager.removeBinding();212 213 expect(KeyBindingManager.getKeymap()).toEqual(expected);214 });215 216 it("should remove a key from the key map", function () {217 KeyBindingManager.addBinding("test.foo", "Ctrl-A");218 KeyBindingManager.addBinding("test.foo", "Ctrl-B");219 220 // Ctrl-A should be removed221 var expected = keyMap([222 keyBinding("Ctrl-B", "test.foo")223 ]);224 225 KeyBindingManager.removeBinding("Ctrl-A");226 227 expect(KeyBindingManager.getKeymap()).toEqual(expected);228 expect(KeyBindingManager.getKeyBindings("test.foo")).toEqual([key("Ctrl-B")]);229 230 KeyBindingManager.removeBinding("Ctrl-B");231 expect(KeyBindingManager.getKeyBindings("test.foo")).toEqual([]);232 });233 234 it("should remove a key from the key map for the specified platform", function () {235 brackets.platform = "test1";236 237 KeyBindingManager.addBinding("test.foo", "Ctrl-A", "test1");238 239 // remove Ctrl-A, only for platform "test1"240 KeyBindingManager.removeBinding("Ctrl-A", "test1");241 expect(KeyBindingManager.getKeymap()).toEqual({});242 });243 244 it("should exclude a specified platform key binding for a cross-platform command", function () {245 brackets.platform = "test1";246 247 // all platforms248 KeyBindingManager.addBinding("test.foo", "Ctrl-B");249 250 var expected = keyMap([251 keyBinding("Ctrl-B", "test.foo")252 ]);253 254 // remove Ctrl-B, only for platform "test2"255 KeyBindingManager.removeBinding("Ctrl-B", "test2");256 expect(KeyBindingManager.getKeymap()).toEqual(expected);257 });258 259 });260 describe("handleKey", function () {261 262 it("should execute a command", function () {263 var fooCalled = false;264 CommandManager.register("Foo", "test.foo", function () {265 fooCalled = true;266 });267 268 KeyBindingManager.addBinding("test.foo", "Ctrl-A");269 expect(fooCalled).toBe(false);270 271 KeyBindingManager.handleKey("Ctrl-A");272 expect(fooCalled).toBe(true);273 });274 275 });276 277 });...
add-binding.js
Source:add-binding.js
...5InspectorTest.runAsyncTestSuite([6 async function testBasic() {7 const {contextGroup, sessions: [session1, session2]} = setupSessions(2);8 InspectorTest.log('\nAdd binding inside session1..');9 session1.Protocol.Runtime.addBinding({name: 'send'});10 InspectorTest.log('Call binding..');11 await session1.Protocol.Runtime.evaluate({expression: `send('payload')`});12 InspectorTest.log('\nAdd binding inside session2..');13 session2.Protocol.Runtime.addBinding({name: 'send'});14 InspectorTest.log('Call binding..');15 await session2.Protocol.Runtime.evaluate({expression: `send('payload')`});16 InspectorTest.log('\nDisable agent inside session1..');17 session1.Protocol.Runtime.disable();18 InspectorTest.log('Call binding..');19 await session2.Protocol.Runtime.evaluate({expression: `send('payload')`});20 InspectorTest.log('\nDisable agent inside session2..');21 session2.Protocol.Runtime.disable();22 InspectorTest.log('Call binding..');23 await session2.Protocol.Runtime.evaluate({expression: `send('payload')`});24 InspectorTest.log('\nEnable agent inside session1..');25 session1.Protocol.Runtime.enable();26 InspectorTest.log('Call binding..');27 await session2.Protocol.Runtime.evaluate({expression: `send('payload')`});28 },29 async function testReconnect() {30 const {contextGroup, sessions: [session]} = setupSessions(1);31 InspectorTest.log('\nAdd binding inside session..');32 await session.Protocol.Runtime.addBinding({name: 'send'});33 InspectorTest.log('Reconnect..');34 session.reconnect();35 await session.Protocol.Runtime.evaluate({expression: `send('payload')`});36 },37 async function testBindingOverrides() {38 const {contextGroup, sessions: [session]} = setupSessions(1);39 InspectorTest.log('\nAdd send function on global object..');40 session.Protocol.Runtime.evaluate({expression: 'send = () => 42'});41 InspectorTest.log('Add binding inside session..');42 session.Protocol.Runtime.addBinding({name: 'send'});43 InspectorTest.log('Call binding..');44 await session.Protocol.Runtime.evaluate({expression: `send('payload')`});45 },46 async function testRemoveBinding() {47 const {contextGroup, sessions: [session]} = setupSessions(1);48 InspectorTest.log('\nAdd binding inside session..');49 session.Protocol.Runtime.addBinding({name: 'send'});50 InspectorTest.log('Call binding..');51 await session.Protocol.Runtime.evaluate({expression: `send('payload')`});52 InspectorTest.log('Remove binding inside session..');53 session.Protocol.Runtime.removeBinding({name: 'send'});54 InspectorTest.log('Call binding..');55 await session.Protocol.Runtime.evaluate({expression: `send('payload')`});56 },57 async function testAddBindingToContextById() {58 const {contextGroup, sessions: [session]} = setupSessions(1);59 const contextId1 = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;60 contextGroup.createContext();61 const contextId2 = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;62 await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextId: contextId2});63 const expression = `frobnicate('message')`;64 InspectorTest.log('Call binding in default context (binding should NOT be exposed)');65 await session.Protocol.Runtime.evaluate({expression});66 InspectorTest.log('Call binding in target context (binding should be exposed)');67 await session.Protocol.Runtime.evaluate({expression, contextId: contextId2});68 InspectorTest.log('Call binding in newly created context (binding should NOT be exposed)');69 contextGroup.createContext();70 const contextId3 = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;71 await session.Protocol.Runtime.evaluate({expression, contextId: contextId3});72 },73 async function testAddBindingToMultipleContextsById() {74 const {contextGroup, sessions: [session]} = setupSessions(1);75 const contextId1 = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;76 contextGroup.createContext();77 const contextId2 = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;78 await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextId: contextId1});79 await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextId: contextId2});80 const expression = `frobnicate('message')`;81 InspectorTest.log('Call binding in default context (binding should be exposed)');82 await session.Protocol.Runtime.evaluate({expression});83 InspectorTest.log('Call binding in target context (binding should be exposed)');84 await session.Protocol.Runtime.evaluate({expression, contextId: contextId2});85 },86 async function testAddBindingToMultipleContextsInDifferentContextGroups() {87 const sessions1 = setupSessions(1, 'group1/');88 const session1 = sessions1.sessions[0];89 const contextId1 = (await session1.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;90 const sessions2 = setupSessions(1, 'group2/');91 const session2 = sessions2.sessions[0];92 const contextId2 = (await session2.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;93 await session1.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextId: contextId1});94 await session2.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextId: contextId2});95 const expression = `frobnicate('message')`;96 InspectorTest.log('Call binding in default context (binding should be exposed)');97 await session1.Protocol.Runtime.evaluate({expression, contextId: contextId1});98 InspectorTest.log('Call binding in target context (binding should be exposed)');99 await session2.Protocol.Runtime.evaluate({expression, contextId: contextId2});100 },101 async function testAddBindingToContextByName() {102 const {contextGroup, sessions: [session]} = setupSessions(1);103 const defaultContext = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;104 contextGroup.createContext("foo");105 const contextFoo = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;106 contextGroup.createContext("bar");107 const contextBar = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;108 await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextName: 'foo'});109 const expression = `frobnicate('message')`;110 InspectorTest.log('Call binding in default context (binding should NOT be exposed)');111 await session.Protocol.Runtime.evaluate({expression});112 InspectorTest.log('Call binding in Foo (binding should be exposed)');113 await session.Protocol.Runtime.evaluate({expression, contextId: contextFoo});114 InspectorTest.log('Call binding in Bar (binding should NOT be exposed)');115 await session.Protocol.Runtime.evaluate({expression, contextId: contextBar});116 contextGroup.createContext("foo");117 const contextFoo2 = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;118 InspectorTest.log('Call binding in newly-created Foo (binding should be exposed)');119 await session.Protocol.Runtime.evaluate({expression, contextId: contextFoo2});120 contextGroup.createContext("bazz");121 const contextBazz = (await session.Protocol.Runtime.onceExecutionContextCreated()).params.context.id;122 InspectorTest.log('Call binding in newly-created Bazz (binding should NOT be exposed)');123 await session.Protocol.Runtime.evaluate({expression, contextId: contextBazz});124 },125 async function testErrors() {126 const {contextGroup, sessions: [session]} = setupSessions(1);127 let err = await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextName: ''});128 InspectorTest.logMessage(err);129 err = await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextName: 'foo', executionContextId: 1});130 InspectorTest.logMessage(err);131 err = await session.Protocol.Runtime.addBinding({name: 'frobnicate', executionContextId: 2128506});132 InspectorTest.logMessage(err);133 }134]);135function setupSessions(num, prefix = '') {136 const contextGroup = new InspectorTest.ContextGroup();137 const sessions = [];138 for (let i = 0; i < num; ++i) {139 const session = contextGroup.connect();140 sessions.push(session);141 session.Protocol.Runtime.enable();142 session.Protocol.Runtime.onBindingCalled(msg => {143 InspectorTest.log(`binding called in ${prefix}session${i + 1}`);144 InspectorTest.logMessage(msg);145 });...
history_in_a_rush.js
Source:history_in_a_rush.js
...3 if (typeof InARush !== 'undefined') {4 var translate = function(s) {5 return (HISTORY_IN_A_RUSH_TRANSLATIONS[s] || s);6 };7 InARush.Bindings.addBinding({8 id: 'system_history',9 keySequence: ['h'],10 handler: function () { window.location.href = APP_PATH + 'history'; },11 description: translate('system_history'),12 condition: function () { return !window.location.href.includes('/history'); },13 category: translate('category_history'),14 });15 InARush.Bindings.addBinding({16 id: 'record_history',17 keySequence: ['r'],18 handler: function () {19 window.location.href = $('#as-history-button').attr('href');20 },21 description: translate('record_history'),22 condition: function () { return $('#as-history-button').length > 0; },23 category: translate('category_history'),24 });25 InARush.Bindings.addBinding({26 id: 'diff_only_history',27 keySequence: ['1'],28 handler: function () {29 $('#as-history-tb-diff-only-button').click();30 },31 description: translate('diff_only_history'),32 condition: function () { return $('#as-history-tb-diff-only-button').length > 0; },33 category: translate('category_history'),34 });35 InARush.Bindings.addBinding({36 id: 'diff_all_history',37 keySequence: ['2'],38 handler: function () {39 $('#as-history-tb-diff-all-button').click();40 },41 description: translate('diff_all_history'),42 condition: function () { return $('#as-history-tb-diff-all-button').length > 0; },43 category: translate('category_history'),44 });45 InARush.Bindings.addBinding({46 id: 'diff_clean_history',47 keySequence: ['3'],48 handler: function () {49 $('#as-history-tb-diff-clean-button').click();50 },51 description: translate('diff_clean_history'),52 condition: function () { return $('#as-history-tb-diff-clean-button').length > 0; },53 category: translate('category_history'),54 });55 InARush.Bindings.addBinding({56 id: 'record_audit_history',57 keySequence: ['4'],58 handler: function () {59 $('#as-history-tb-record-button').click();60 },61 description: translate('record_audit_history'),62 condition: function () { return $('#as-history-tb-record-button').length > 0; },63 category: translate('category_history'),64 });65 InARush.Bindings.addBinding({66 id: 'exit_history',67 keySequence: ['5'],68 handler: function () {69 window.location.href = $('#as-history-tb-exit-button').attr('href');70 },71 description: translate('exit_history'),72 condition: function () { return $('#as-history-tb-exit-button').length > 0; },73 category: translate('category_history'),74 });75 InARush.Bindings.addBinding({76 id: 'restore_history',77 keySequence: ['6'],78 handler: function () {79 $('#as-history-tb-restore-button').click();80 },81 description: translate('restore_history'),82 condition: function () { return $('#as-history-tb-restore-button').length > 0; },83 category: translate('category_history'),84 });85 InARush.Bindings.addBinding({86 id: 'quit_history',87 keySequence: ['q'],88 handler: function () {89 window.location.href = $('#as-history-tb-exit-button').attr('href');90 },91 description: translate('quit_history'),92 condition: function () { return $('#as-history-tb-exit-button').length > 0; },93 category: translate('category_history'),94 });95 InARush.Bindings.addBinding({96 id: 'previous_history',97 keySequence: ['p'],98 handler: function () {99 $('.history-previous-sets-button').click();100 },101 description: translate('previous_history'),102 condition: function () { return $('.history-previous-sets-button').length > 0; },103 category: translate('category_history'),104 });105 InARush.Bindings.addBinding({106 id: 'search_history',107 keySequence: ['s'],108 handler: function () {109 $('.history-version-set').click();110 },111 description: translate('search_history'),112 condition: function () { return $('.history-version-set').length > 0; },113 category: translate('category_history'),114 });115 InARush.Bindings.addBinding({116 id: 'goto_diff_history',117 keySequence: [']'],118 handler: function () {119 window.location.href = $('.history-showing-diff-version').attr('href');120 },121 description: translate('goto_diff_history'),122 condition: function () { return $('.history-showing-diff-version').length > 0; },123 category: translate('category_history'),124 });125 InARush.Bindings.addBinding({126 id: 'goto_newer_history',127 keySequence: ['['],128 handler: function () {129 window.location.href = $('.history-showing-version').parent().prev().children().attr('href');130 },131 description: translate('goto_newer_history'),132 condition: function () { return $('.history-showing-version').parent().prev().children().length > 0; },133 category: translate('category_history'),134 });135 InARush.Bindings.addBinding({136 id: 'goto_first_history',137 keySequence: ['\\'],138 handler: function () {139 window.location.href = $('.history-version-box').first().children().attr('href');140 },141 description: translate('goto_first_history'),142 condition: function () { return $('.history-version-box').length > 0; },143 category: translate('category_history'),144 });145 InARush.Bindings.addBinding({146 id: 'goto_last_history',147 keySequence: ["'"],148 handler: function () {149 window.location.href = $('.history-version-box').last().find('.history-version').attr('href');150 },151 description: translate('goto_last_history'),152 condition: function () { return $('.history-version-box').length > 0; },153 category: translate('category_history'),154 });155 }...
initHotKey.js
Source:initHotKey.js
...3 */4'use strict';5import hooks from './hooks';6export default function (quill) {7 quill.keyboard.addBinding({8 key: 's',9 shortKey: true10 }, function(range, context) {11 console.log('save');12 hooks.onSave(range,context);13 });14 quill.keyboard.addBinding({15 key: 'b',16 shortKey: true17 }, function(range, context) {18 this.quill.formatText(range, 'bold', !context.format.bold,'user');19 });20 quill.keyboard.addBinding({21 key: 'i',22 shortKey: true23 }, function(range, context) {24 this.quill.formatText(range, 'italic', !context.format.italic,'user');25 });26 quill.keyboard.addBinding({27 key: 'u',28 shortKey: true29 }, function(range, context) {30 this.quill.formatText(range, 'underline', !context.format.underline,'user');31 });32 quill.keyboard.addBinding({33 key: 'x',34 shortKey: true,35 shiftKey: true36 }, function(range, context) {37 this.quill.formatText(range, 'strike', !context.format.strike,'user');38 });39 quill.keyboard.addBinding({40 key: 'u',41 shortKey: true,42 shiftKey: true43 }, function(range, context) {44 if(!context.format.list) {45 this.quill.formatLine(range, 'list', 'bullet','user');46 }else{47 this.quill.formatLine(range, 'list', false,'user');48 }49 });50 quill.keyboard.addBinding({51 key: 'l',52 shortKey: true,53 shiftKey: true54 }, function(range, context) {55 if(!context.format.list) {56 this.quill.formatLine(range, 'list', 'ordered','user');57 }else{58 this.quill.formatLine(range, 'list', false,'user');59 }60 });61 quill.keyboard.addBinding({62 key:'c',63 shortKey: true,64 shiftKey: true65 }, function(range, context) {66 this.quill.removeFormat(range.index,range.length,'user');67 });68 quill.keyboard.addBinding({69 key: '0',70 shortKey: true,71 altKey: true72 }, function(range, context) {73 this.quill.formatLine(range, 'header', false,'user');74 });75 quill.keyboard.addBinding({76 key: '1',77 shortKey: true,78 altKey: true79 }, function(range, context) {80 if(!context.format.header) {81 this.quill.formatLine(range, 'header', 1,'user');82 }else{83 this.quill.formatLine(range, 'header', false,'user');84 }85 });86 quill.keyboard.addBinding({87 key: '2',88 shortKey: true,89 altKey: true90 }, function(range, context) {91 if(!context.format.header) {92 this.quill.formatLine(range, 'header', 2,'user');93 }else{94 this.quill.formatLine(range, 'header', false,'user');95 }96 });97 quill.keyboard.addBinding({98 key: '3',99 shortKey: true,100 altKey: true101 }, function(range, context) {102 if(!context.format.header) {103 this.quill.formatLine(range, 'header', 3,'user');104 }else{105 this.quill.formatLine(range, 'header', false,'user');106 }107 });108 quill.keyboard.addBinding({109 key: '4',110 shortKey: true,111 altKey: true112 }, function(range, context) {113 if(!context.format.header) {114 this.quill.formatLine(range, 'header', 4,'user');115 }else{116 this.quill.formatLine(range, 'header', false,'user');117 }118 });119 quill.keyboard.addBinding({120 key: '5',121 shortKey: true,122 altKey: true123 }, function(range, context) {124 if(!context.format.header) {125 this.quill.formatLine(range, 'header', 5,'user');126 }else{127 this.quill.formatLine(range, 'header', false,'user');128 }129 });130 quill.keyboard.addBinding({131 key: '6',132 shortKey: true,133 altKey: true134 }, function(range, context) {135 if(!context.format.header) {136 this.quill.formatLine(range, 'header', 6,'user');137 }else{138 this.quill.formatLine(range, 'header', false,'user');139 }140 });141 quill.keyboard.addBinding({142 key: '6',143 shortKey: true,144 shiftKey: true145 }, function(range, context) {146 if(!context.format.header) {147 this.quill.formatLine(range, 'header', 6,'user');148 }else{149 this.quill.formatLine(range, 'header', false,'user');150 }151 });152 quill.keyboard.addBinding({153 key: 'j',154 shortKey: true,155 shiftKey: true156 }, function(range, context) {157 this.quill.format('align','justify','user');158 });159 quill.keyboard.addBinding({160 key: 'j',161 shortKey: true,162 shiftKey: true163 }, function(range, context) {164 this.quill.format('align','justify','user');165 });166 quill.keyboard.addBinding({167 key: 'j',168 shortKey: true,169 shiftKey: true170 }, function(range, context) {171 this.quill.format('align','justify','user');172 });173 quill.keyboard.addBinding({174 key: 'l',175 shortKey: true,176 shiftKey: true177 }, function(range, context) {178 this.quill.format('align','left','user');179 });180 quill.keyboard.addBinding({181 key: 'e',182 shortKey: true,183 shiftKey: true184 }, function(range, context) {185 this.quill.format('align','center','user');186 });187 quill.keyboard.addBinding({188 key: 'r',189 shortKey: true,190 shiftKey: true191 }, function(range, context) {192 this.quill.format('align','right','user');193 });...
custom-keybinding.js
Source:custom-keybinding.js
...14quillEditor.addEventListener('keydown', e => {15 EditorHelper.scrollToCaret();16});17// auto-complete menu18keyboardModule.addBinding({19 key: ' ',20 collapsed: true,21 format: {list: false}, // ...on an line that's not already a list22 prefix: /[\u0660-\u0669]/, // ...following a arabic number23 offset: 1, // ...at the 1st position of the line,24 handler: (range, context) => {25 // the space character is consumed by this handler26 // so we only need to delete the hyphen27 quill.deleteText(range.index - 1, 1);28 // apply bullet formatting to the line29 quill.formatLine(range.index, 1, 'list', 'ordered');30 // restore selection31 quill.setSelection(range.index - 1);32 }33});34keyboardModule.addBinding({35 key: ' ',36 collapsed: true,37 prefix: /صÙ٠اÙÙ٠عÙÙÙ ÙسÙÙ
/,38 handler: (range, context) => {39 let change = [40 {insert: 'ï·º '},41 {delete: 'صÙ٠اÙÙ٠عÙÙÙ ÙسÙÙ
'.length},42 ];43 if (range.index !== 'صÙ٠اÙÙ٠عÙÙÙ ÙسÙÙ
'.length) change.unshift({retain: range.index - 18});44 quill.updateContents({45 ops: change46 });47 }48});49keyboardModule.addBinding({50 key: ',',51 collapsed: true,52 shiftKey: null,53 format: {align: 'right', direction: 'rtl'},54 handler: (range) => {55 quill.insertText(range.index, ArabicHelper.COMMA);56 // restore selection57 quill.setSelection(range.index + 1);58 }59});60keyboardModule.addBinding({61 key: ';',62 collapsed: true,63 shiftKey: null,64 format: {align: 'right', direction: 'rtl'},65 handler: (range) => {66 quill.insertText(range.index, ArabicHelper.SEMI_COMMA);67 // restore selection68 quill.setSelection(range.index + 1);69 }70});71keyboardModule.addBinding({72 key: '1',73 collapsed: true,74 format: {align: 'right', direction: 'rtl'},75 handler: (range, context) => {76 const pressedNumber = context.event.key;77 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);78 // restore selection79 quill.setSelection(range.index + 1);80 }81});82keyboardModule.addBinding({83 key: '2',84 collapsed: true,85 format: {align: 'right', direction: 'rtl'},86 handler: (range, context) => {87 const pressedNumber = context.event.key;88 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);89 // restore selection90 quill.setSelection(range.index + 1);91 }92});93keyboardModule.addBinding({94 key: '3',95 collapsed: true,96 format: {align: 'right', direction: 'rtl'},97 handler: (range, context) => {98 const pressedNumber = context.event.key;99 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);100 // restore selection101 quill.setSelection(range.index + 1);102 }103});104keyboardModule.addBinding({105 key: '4',106 collapsed: true,107 format: {align: 'right', direction: 'rtl'},108 handler: (range, context) => {109 const pressedNumber = context.event.key;110 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);111 // restore selection112 quill.setSelection(range.index + 1);113 }114});115keyboardModule.addBinding({116 key: '5',117 collapsed: true,118 format: {align: 'right', direction: 'rtl'},119 handler: (range, context) => {120 const pressedNumber = context.event.key;121 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);122 // restore selection123 quill.setSelection(range.index + 1);124 }125});126keyboardModule.addBinding({127 key: '6',128 collapsed: true,129 format: {align: 'right', direction: 'rtl'},130 handler: (range, context) => {131 const pressedNumber = context.event.key;132 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);133 // restore selection134 quill.setSelection(range.index + 1);135 }136});137keyboardModule.addBinding({138 key: '7',139 collapsed: true,140 format: {align: 'right', direction: 'rtl'},141 handler: (range, context) => {142 const pressedNumber = context.event.key;143 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);144 // restore selection145 quill.setSelection(range.index + 1);146 }147});148keyboardModule.addBinding({149 key: '8',150 collapsed: true,151 format: {align: 'right', direction: 'rtl'},152 handler: (range, context) => {153 const pressedNumber = context.event.key;154 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);155 // restore selection156 quill.setSelection(range.index + 1);157 }158});159keyboardModule.addBinding({160 key: '9',161 collapsed: true,162 format: {align: 'right', direction: 'rtl'},163 handler: (range, context) => {164 const pressedNumber = context.event.key;165 quill.insertText(range.index, ArabicHelper.NUMBERS[pressedNumber]);166 // restore selection167 quill.setSelection(range.index + 1);168 }...
bindingPreprocessingBehaviors.js
Source:bindingPreprocessingBehaviors.js
...15 it('Should allow binding to add/replace bindings through "preprocess" method\'s "addBinding" callback', function() {16 ko.bindingHandlers.a = {17 preprocess: function(value, key, addBinding) {18 // the a binding will be copied to a219 addBinding(key+"2", value);20 return value;21 }22 };23 ko.bindingHandlers.b = {24 preprocess: function(value, key, addBinding) {25 // the b binding will be replaced by b226 addBinding(key+"2", value);27 }28 };29 var rewritten = ko.expressionRewriting.preProcessBindings("a: 1, b: 2");30 var parsedRewritten = eval("({" + rewritten + "})");31 expect(parsedRewritten.a).toEqual(1);32 expect(parsedRewritten.a2).toEqual(1);33 expect(parsedRewritten.b).toBeUndefined();34 expect(parsedRewritten.b2).toEqual(2);35 });36 it('Should be able to chain "preprocess" calls when one adds a binding for another', function() {37 ko.bindingHandlers.a = {38 preprocess: function(value, key, addBinding) {39 // replace with b40 addBinding("b", value);41 }42 };43 ko.bindingHandlers.b = {44 preprocess: function(value, key, addBinding) {45 // adds 1 to value46 return '' + (+value + 1);47 }48 };49 var rewritten = ko.expressionRewriting.preProcessBindings("a: 2");50 var parsedRewritten = eval("({" + rewritten + "})");51 expect(parsedRewritten.a).toBeUndefined();52 expect(parsedRewritten.b).toEqual(3);53 });54 it('Should be able to get a dynamically created binding handler during preprocessing', function() {...
5376.js
Source:5376.js
...15 it('Should allow binding to add/replace bindings through "preprocess" method\'s "addBinding" callback', function() {16 ko.bindingHandlers.a = {17 preprocess: function(value, key, addBinding) {18 // the a binding will be copied to a219 addBinding(key+"2", value);20 return value;21 }22 };23 ko.bindingHandlers.b = {24 preprocess: function(value, key, addBinding) {25 // the b binding will be replaced by b226 addBinding(key+"2", value);27 }28 };29 var rewritten = ko.expressionRewriting.preProcessBindings("a: 1, b: 2");30 var parsedRewritten = eval("({" + rewritten + "})");31 expect(parsedRewritten.a).toEqual(1);32 expect(parsedRewritten.a2).toEqual(1);33 expect(parsedRewritten.b).toBeUndefined();34 expect(parsedRewritten.b2).toEqual(2);35 });36 it('Should be able to chain "preprocess" calls when one adds a binding for another', function() {37 ko.bindingHandlers.a = {38 preprocess: function(value, key, addBinding) {39 // replace with b40 addBinding("b", value);41 }42 };43 ko.bindingHandlers.b = {44 preprocess: function(value, key, addBinding) {45 // adds 1 to value46 return '' + (+value + 1);47 }48 };49 var rewritten = ko.expressionRewriting.preProcessBindings("a: 2");50 var parsedRewritten = eval("({" + rewritten + "})");51 expect(parsedRewritten.a).toBeUndefined();52 expect(parsedRewritten.b).toEqual(3);53 });54 it('Should be able to get a dynamically created binding handler during preprocessing', function() {...
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2var wp = new wptoolkit();3wp.addBinding('test',function(){4 console.log('test binding');5});6var wptoolkit = require('wptoolkit');7var wp = new wptoolkit();8wp.addBinding('test2',function(){9 console.log('test2 binding');10});11var wptoolkit = require('wptoolkit');12var wp = new wptoolkit();13wp.addBinding('test3',function(){14 console.log('test3 binding');15});16var wptoolkit = require('wptoolkit');17var wp = new wptoolkit();18wp.addBinding('test4',function(){19 console.log('test4 binding');20});21var wptoolkit = require('wptoolkit');22var wp = new wptoolkit();23wp.addBinding('test5',function(){24 console.log('test5 binding');25});26var wptoolkit = require('wptoolkit');27var wp = new wptoolkit();28wp.addBinding('test6',function(){29 console.log('test6 binding');30});31var wptoolkit = require('wptoolkit');32var wp = new wptoolkit();33wp.addBinding('test7',function(){34 console.log('test7 binding');35});36var wptoolkit = require('wptoolkit');
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2var wp = new wptoolkit();3wp.addBinding('test',function(){4 console.log('test binding');5});6wp.test();7wp.addBinding('test1',function(){8 console.log('test1 binding');9});10wp.addBinding('test2',function(){11 console.log('test2 binding');12});13wp.test1();14wp.test2();15wp.getBindings();16{17}18wp.removeBinding('test');19wp.getBindings();20{21}22wp.removeAllBindings();23wp.getBindings();24{}25wp.getMethods();26{
Using AI Code Generation
1var wpt = require('./wpt');2var wpt = new wpt(process.env.WPT_API_KEY);3wpt.addBinding('test', function() {4 console.log('Hello world');5});6module.exports = function(apiKey) {7 this.apiKey = apiKey;8 this.addBinding = function(name, func) {9 this[name] = func;10 };11};
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2var wptoolkit = require('wptoolkit');3var wptoolkit = require('wptoolkit');4var wptoolkit = require('wptoolkit');5var wptoolkit = require('wptoolkit');6var wptoolkit = require('wptoolkit');7var wptoolkit = require('wptoolkit');8var wptoolkit = require('wptoolkit');9var wptoolkit = require('wptoolkit');10var wptoolkit = require('wptoolkit');
Using AI Code Generation
1var wpt = require('wpt');2var binding = {3 methods: {4 myMethod: function() {5 return 'myMethod called';6 }7 }8};9wpt.addBinding(binding);10var result = window.myBinding.myMethod();
Using AI Code Generation
1var wptoolkit = require('wptoolkit');2var binding = {3};4wptoolkit.addBinding(binding, function(err) {5 if (err) {6 console.log('error: ' + err);7 }8});9var wptoolkit = require('wptoolkit');10wptoolkit.removeBinding('mybinding', function(err) {11 if (err) {12 console.log('error: ' + err);13 }14});15var wptoolkit = require('wptoolkit');16wptoolkit.getBindings(function(err, bindings) {17 if (err) {18 console.log('error: ' + err);19 } else {20 console.log('bindings: ' + bindings);21 }22});23var wptoolkit = require('wptoolkit');24wptoolkit.getBinding('mybinding', function(err, binding) {25 if (err) {26 console.log('error: ' + err);27 } else {28 console.log('binding: ' + binding);29 }30});31var wptoolkit = require('wptoolkit');32var binding = {33};34wptoolkit.addBinding(binding, function(err) {35 if (err) {36 console.log('error: ' + err);37 }38});
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!!