/* * Copyright 2012, Mozilla Foundation and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ "use strict"; // THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT // PLEASE TALK TO SOMEONE IN DEVELOPER TOOLS BEFORE EDITING IT var mockCommands; if (typeof exports !== "undefined") { // If we're being loaded via require(); mockCommands = exports; } else { // If we're being loaded via loadScript in mochitest mockCommands = {}; } // We use an alias for exports here because this module is used in Firefox // mochitests where we don't have define/require /** * Registration and de-registration. */ mockCommands.setup = function (requisition) { requisition.system.addItems(mockCommands.items); }; mockCommands.shutdown = function (requisition) { requisition.system.removeItems(mockCommands.items); }; function createExec(name) { return function (args, context) { var promises = []; Object.keys(args).map(function (argName) { var value = args[argName]; var type = this.getParameterByName(argName).type; var promise = Promise.resolve(type.stringify(value, context)); promises.push(promise.then(function (str) { return { name: argName, value: str }; }.bind(this))); }.bind(this)); return Promise.all(promises).then(function (data) { var argValues = {}; data.forEach(function (entry) { argValues[entry.name] = entry.value; }); return context.typedData("testCommandOutput", { name: name, args: argValues }); }.bind(this)); }; } mockCommands.items = [ { item: "converter", from: "testCommandOutput", to: "dom", exec: function (testCommandOutput, context) { var view = context.createView({ data: testCommandOutput, html: "" + "" + "" + "" + '' + "" + "" + "" + '' + "" + "" + "" + "" + "" + "
Exec: ${name}
${key}=${args[key]}
", options: { allowEval: true } }); return view.toDom(context.document); } }, { item: "converter", from: "testCommandOutput", to: "string", exec: function (testCommandOutput, context) { var argsOut = Object.keys(testCommandOutput.args).map(function (key) { return key + "=" + testCommandOutput.args[key]; }).join(" "); return "Exec: " + testCommandOutput.name + " " + argsOut; } }, { item: "type", name: "optionType", parent: "selection", lookup: [ { name: "option1", value: "string" }, { name: "option2", value: "number" }, { name: "option3", value: { name: "selection", lookup: [ { name: "one", value: 1 }, { name: "two", value: 2 }, { name: "three", value: 3 } ] } } ] }, { item: "type", name: "optionValue", parent: "delegate", delegateType: function (executionContext) { if (executionContext != null) { var option = executionContext.getArgsObject().optionType; if (option != null) { return option; } } return "blank"; } }, { item: "command", name: "tsv", params: [ { name: "optionType", type: "optionType" }, { name: "optionValue", type: "optionValue" } ], exec: createExec("tsv") }, { item: "command", name: "tsr", params: [ { name: "text", type: "string" } ], exec: createExec("tsr") }, { item: "command", name: "tsrsrsr", params: [ { name: "p1", type: "string" }, { name: "p2", type: "string" }, { name: "p3", type: { name: "string", allowBlank: true} }, ], exec: createExec("tsrsrsr") }, { item: "command", name: "tso", params: [ { name: "text", type: "string", defaultValue: null } ], exec: createExec("tso") }, { item: "command", name: "tse", params: [ { name: "node", type: "node" }, { group: "options", params: [ { name: "nodes", type: { name: "nodelist" } }, { name: "nodes2", type: { name: "nodelist", allowEmpty: true } } ] } ], exec: createExec("tse") }, { item: "command", name: "tsj", params: [ { name: "javascript", type: "javascript" } ], exec: createExec("tsj") }, { item: "command", name: "tsb", params: [ { name: "toggle", type: "boolean" } ], exec: createExec("tsb") }, { item: "command", name: "tss", exec: createExec("tss") }, { item: "command", name: "tsu", params: [ { name: "num", type: { name: "number", max: 10, min: -5, step: 3 } } ], exec: createExec("tsu") }, { item: "command", name: "tsf", params: [ { name: "num", type: { name: "number", allowFloat: true, max: 11.5, min: -6.5, step: 1.5 } } ], exec: createExec("tsf") }, { item: "command", name: "tsn" }, { item: "command", name: "tsn dif", params: [ { name: "text", type: "string", description: "tsn dif text" } ], exec: createExec("tsnDif") }, { item: "command", name: "tsn hidden", hidden: true, exec: createExec("tsnHidden") }, { item: "command", name: "tsn ext", params: [ { name: "text", type: "string" } ], exec: createExec("tsnExt") }, { item: "command", name: "tsn exte", params: [ { name: "text", type: "string" } ], exec: createExec("tsnExte") }, { item: "command", name: "tsn exten", params: [ { name: "text", type: "string" } ], exec: createExec("tsnExten") }, { item: "command", name: "tsn extend", params: [ { name: "text", type: "string" } ], exec: createExec("tsnExtend") }, { item: "command", name: "tsn deep" }, { item: "command", name: "tsn deep down" }, { item: "command", name: "tsn deep down nested" }, { item: "command", name: "tsn deep down nested cmd", exec: createExec("tsnDeepDownNestedCmd") }, { item: "command", name: "tshidden", hidden: true, params: [ { group: "Options", params: [ { name: "visible", type: "string", short: "v", defaultValue: null, description: "visible" }, { name: "invisiblestring", type: "string", short: "i", description: "invisiblestring", defaultValue: null, hidden: true }, { name: "invisibleboolean", short: "b", type: "boolean", description: "invisibleboolean", hidden: true } ] } ], exec: createExec("tshidden") }, { item: "command", name: "tselarr", params: [ { name: "num", type: { name: "selection", data: [ "1", "2", "3" ] } }, { name: "arr", type: { name: "array", subtype: "string" } } ], exec: createExec("tselarr") }, { item: "command", name: "tsm", description: "a 3-param test selection|string|number", params: [ { name: "abc", type: { name: "selection", data: [ "a", "b", "c" ] } }, { name: "txt", type: "string" }, { name: "num", type: { name: "number", max: 42, min: 0 } } ], exec: createExec("tsm") }, { item: "command", name: "tsg", description: "a param group test", params: [ { name: "solo", type: { name: "selection", data: [ "aaa", "bbb", "ccc" ] }, description: "solo param" }, { group: "First", params: [ { name: "txt1", type: "string", defaultValue: null, description: "txt1 param" }, { name: "bool", type: "boolean", description: "bool param" } ] }, { name: "txt2", type: "string", defaultValue: "d", description: "txt2 param", option: "Second" }, { name: "num", type: { name: "number", min: 40 }, defaultValue: 42, description: "num param", option: "Second" } ], exec: createExec("tsg") }, { item: "command", name: "tscook", description: "param group test to catch problems with cookie command", params: [ { name: "key", type: "string", description: "tscookKeyDesc" }, { name: "value", type: "string", description: "tscookValueDesc" }, { group: "tscookOptionsDesc", params: [ { name: "path", type: "string", defaultValue: "/", description: "tscookPathDesc" }, { name: "domain", type: "string", defaultValue: null, description: "tscookDomainDesc" }, { name: "secure", type: "boolean", description: "tscookSecureDesc" } ] } ], exec: createExec("tscook") }, { item: "command", name: "tslong", description: "long param tests to catch problems with the jsb command", params: [ { name: "msg", type: "string", description: "msg Desc" }, { group: "Options Desc", params: [ { name: "num", short: "n", type: "number", description: "num Desc", defaultValue: 2 }, { name: "sel", short: "s", type: { name: "selection", lookup: [ { name: "space", value: " " }, { name: "tab", value: "\t" } ] }, description: "sel Desc", defaultValue: " " }, { name: "bool", short: "b", type: "boolean", description: "bool Desc" }, { name: "num2", short: "m", type: "number", description: "num2 Desc", defaultValue: -1 }, { name: "bool2", short: "c", type: "boolean", description: "bool2 Desc" }, { name: "sel2", short: "t", type: { name: "selection", data: [ "collapse", "basic", "with space", "with two spaces" ] }, description: "sel2 Desc", defaultValue: "collapse" } ] } ], exec: createExec("tslong") }, { item: "command", name: "tsdate", description: "long param tests to catch problems with the jsb command", params: [ { name: "d1", type: "date", }, { name: "d2", type: { name: "date", min: "1 jan 2000", max: "28 feb 2000", step: 2 } }, ], exec: createExec("tsdate") }, { item: "command", name: "tsfail", description: "test errors", params: [ { name: "method", type: { name: "selection", data: [ "reject", "rejecttyped", "throwerror", "throwstring", "throwinpromise", "noerror" ] } } ], exec: function (args, context) { if (args.method === "reject") { return new Promise(function (resolve, reject) { context.environment.window.setTimeout(function () { reject("rejected promise"); }, 10); }); } if (args.method === "rejecttyped") { return new Promise(function (resolve, reject) { context.environment.window.setTimeout(function () { reject(context.typedData("number", 54)); }, 10); }); } if (args.method === "throwinpromise") { return new Promise(function (resolve, reject) { context.environment.window.setTimeout(function () { resolve("should be lost"); }, 10); }).then(function () { var t = null; return t.foo; }); } if (args.method === "throwerror") { throw new Error("thrown error"); } if (args.method === "throwstring") { throw "thrown string"; } return "no error"; } }, { item: "command", name: "tsfile", description: "test file params", }, { item: "command", name: "tsfile open", description: "a file param in open mode", params: [ { name: "p1", type: { name: "file", filetype: "file", existing: "yes" } } ], exec: createExec("tsfile open") }, { item: "command", name: "tsfile saveas", description: "a file param in saveas mode", params: [ { name: "p1", type: { name: "file", filetype: "file", existing: "no" } } ], exec: createExec("tsfile saveas") }, { item: "command", name: "tsfile save", description: "a file param in save mode", params: [ { name: "p1", type: { name: "file", filetype: "file", existing: "maybe" } } ], exec: createExec("tsfile save") }, { item: "command", name: "tsfile cd", description: "a file param in cd mode", params: [ { name: "p1", type: { name: "file", filetype: "directory", existing: "yes" } } ], exec: createExec("tsfile cd") }, { item: "command", name: "tsfile mkdir", description: "a file param in mkdir mode", params: [ { name: "p1", type: { name: "file", filetype: "directory", existing: "no" } } ], exec: createExec("tsfile mkdir") }, { item: "command", name: "tsfile rm", description: "a file param in rm mode", params: [ { name: "p1", type: { name: "file", filetype: "any", existing: "yes" } } ], exec: createExec("tsfile rm") }, { item: "command", name: "tsslow", params: [ { name: "hello", type: { name: "selection", data: function (context) { return new Promise(function (resolve, reject) { context.environment.window.setTimeout(function () { resolve([ "Shalom", "Namasté", "Hallo", "Dydd-da", "Chào", "Hej", "Saluton", "Sawubona" ]); }, 10); }); } } } ], exec: function (args, context) { return "Test completed"; } }, { item: "command", name: "urlc", params: [ { name: "url", type: "url" } ], returnType: "json", exec: function (args, context) { return args; } }, { item: "command", name: "unionc1", params: [ { name: "first", type: { name: "union", alternatives: [ { name: "selection", lookup: [ { name: "one", value: 1 }, { name: "two", value: 2 }, ] }, "number", { name: "string" } ] } } ], returnType: "json", exec: function (args, context) { return args; } }, { item: "command", name: "unionc2", params: [ { name: "first", type: { name: "union", alternatives: [ { name: "selection", lookup: [ { name: "one", value: 1 }, { name: "two", value: 2 }, ] }, { name: "url" } ] } } ], returnType: "json", exec: function (args, context) { return args; } }, { item: "command", name: "tsres", params: [ { name: "resource", type: "resource" } ], exec: createExec("tsres"), } ];