summaryrefslogtreecommitdiffstats
path: root/devtools/client/commandline/test/mockCommands.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/commandline/test/mockCommands.js')
-rw-r--r--devtools/client/commandline/test/mockCommands.js794
1 files changed, 794 insertions, 0 deletions
diff --git a/devtools/client/commandline/test/mockCommands.js b/devtools/client/commandline/test/mockCommands.js
new file mode 100644
index 000000000..82cc7e384
--- /dev/null
+++ b/devtools/client/commandline/test/mockCommands.js
@@ -0,0 +1,794 @@
+/*
+ * 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: "" +
+ "<table>" +
+ "<thead>" +
+ "<tr>" +
+ '<th colspan="3">Exec: ${name}</th>' +
+ "</tr>" +
+ "</thead>" +
+ "<tbody>" +
+ '<tr foreach="key in ${args}">' +
+ "<td> ${key}</td>" +
+ "<td>=</td>" +
+ "<td>${args[key]}</td>" +
+ "</tr>" +
+ "</tbody>" +
+ "</table>",
+ 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"),
+ }
+];