summaryrefslogtreecommitdiffstats
path: root/devtools/client/commandline/test/browser_gcli_cli2.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/commandline/test/browser_gcli_cli2.js')
-rw-r--r--devtools/client/commandline/test/browser_gcli_cli2.js788
1 files changed, 788 insertions, 0 deletions
diff --git a/devtools/client/commandline/test/browser_gcli_cli2.js b/devtools/client/commandline/test/browser_gcli_cli2.js
new file mode 100644
index 000000000..7ae5174d3
--- /dev/null
+++ b/devtools/client/commandline/test/browser_gcli_cli2.js
@@ -0,0 +1,788 @@
+/*
+ * 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
+
+const exports = {};
+
+function test() {
+ helpers.runTestModule(exports, "browser_gcli_cli2.js");
+}
+
+// var helpers = require('./helpers');
+
+exports.testSingleString = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tsr",
+ check: {
+ input: "tsr",
+ hints: " <text>",
+ markup: "VVV",
+ cursor: 3,
+ current: "__command",
+ status: "ERROR",
+ unassigned: [ ],
+ args: {
+ command: { name: "tsr" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsr ",
+ check: {
+ input: "tsr ",
+ hints: "<text>",
+ markup: "VVVV",
+ cursor: 4,
+ current: "text",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsr" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsr h",
+ check: {
+ input: "tsr h",
+ hints: "",
+ markup: "VVVVV",
+ cursor: 5,
+ current: "text",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsr" },
+ text: {
+ value: "h",
+ arg: " h",
+ status: "VALID",
+ message: ""
+ }
+ }
+ }
+ },
+ {
+ setup: 'tsr "h h"',
+ check: {
+ input: 'tsr "h h"',
+ hints: "",
+ markup: "VVVVVVVVV",
+ cursor: 9,
+ current: "text",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsr" },
+ text: {
+ value: "h h",
+ arg: ' "h h"',
+ status: "VALID",
+ message: ""
+ }
+ }
+ }
+ },
+ {
+ setup: "tsr h h h",
+ check: {
+ input: "tsr h h h",
+ hints: "",
+ markup: "VVVVVVVVV",
+ cursor: 9,
+ current: "text",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsr" },
+ text: {
+ value: "h h h",
+ arg: " h h h",
+ status: "VALID",
+ message: ""
+ }
+ }
+ }
+ }
+ ]);
+};
+
+exports.testSingleNumber = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tsu",
+ check: {
+ input: "tsu",
+ hints: " <num>",
+ markup: "VVV",
+ cursor: 3,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsu" },
+ num: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018num\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsu ",
+ check: {
+ input: "tsu ",
+ hints: "<num>",
+ markup: "VVVV",
+ cursor: 4,
+ current: "num",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsu" },
+ num: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018num\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsu 1",
+ check: {
+ input: "tsu 1",
+ hints: "",
+ markup: "VVVVV",
+ cursor: 5,
+ current: "num",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsu" },
+ num: { value: 1, arg: " 1", status: "VALID", message: "" }
+ }
+ }
+ },
+ {
+ setup: "tsu x",
+ check: {
+ input: "tsu x",
+ hints: "",
+ markup: "VVVVE",
+ cursor: 5,
+ current: "num",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ tooltipState: "true:isError",
+ args: {
+ command: { name: "tsu" },
+ num: {
+ value: undefined,
+ arg: " x",
+ status: "ERROR",
+ message: "Can\u2019t convert \u201cx\u201d to a number."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsu 1.5",
+ check: {
+ input: "tsu 1.5",
+ hints: "",
+ markup: "VVVVEEE",
+ cursor: 7,
+ current: "num",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsu" },
+ num: {
+ value: undefined,
+ arg: " 1.5",
+ status: "ERROR",
+ message: "Can\u2019t convert \u201c1.5\u201d to an integer."
+ }
+ }
+ }
+ }
+ ]);
+};
+
+exports.testSingleFloat = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tsf",
+ check: {
+ input: "tsf",
+ hints: " <num>",
+ markup: "VVV",
+ cursor: 3,
+ current: "__command",
+ status: "ERROR",
+ error: "",
+ unassigned: [ ],
+ args: {
+ command: { name: "tsf" },
+ num: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018num\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsf 1",
+ check: {
+ input: "tsf 1",
+ hints: "",
+ markup: "VVVVV",
+ cursor: 5,
+ current: "num",
+ status: "VALID",
+ error: "",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsf" },
+ num: { value: 1, arg: " 1", status: "VALID", message: "" }
+ }
+ }
+ },
+ {
+ setup: "tsf 1.",
+ check: {
+ input: "tsf 1.",
+ hints: "",
+ markup: "VVVVVV",
+ cursor: 6,
+ current: "num",
+ status: "VALID",
+ error: "",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsf" },
+ num: { value: 1, arg: " 1.", status: "VALID", message: "" }
+ }
+ }
+ },
+ {
+ setup: "tsf 1.5",
+ check: {
+ input: "tsf 1.5",
+ hints: "",
+ markup: "VVVVVVV",
+ cursor: 7,
+ current: "num",
+ status: "VALID",
+ error: "",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsf" },
+ num: { value: 1.5, arg: " 1.5", status: "VALID", message: "" }
+ }
+ }
+ },
+ {
+ setup: "tsf 1.5x",
+ check: {
+ input: "tsf 1.5x",
+ hints: "",
+ markup: "VVVVVVVV",
+ cursor: 8,
+ current: "num",
+ status: "VALID",
+ error: "",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsf" },
+ num: { value: 1.5, arg: " 1.5x", status: "VALID", message: "" }
+ }
+ }
+ },
+ {
+ name: "tsf x (cursor=4)",
+ setup: function () {
+ return helpers.setInput(options, "tsf x", 4);
+ },
+ check: {
+ input: "tsf x",
+ hints: "",
+ markup: "VVVVE",
+ cursor: 4,
+ current: "num",
+ status: "ERROR",
+ error: "Can\u2019t convert \u201cx\u201d to a number.",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsf" },
+ num: {
+ value: undefined,
+ arg: " x",
+ status: "ERROR",
+ message: "Can\u2019t convert \u201cx\u201d to a number."
+ }
+ }
+ }
+ }
+ ]);
+};
+
+exports.testElementWeb = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tse #gcli-root",
+ check: {
+ input: "tse #gcli-root",
+ hints: " [options]",
+ markup: "VVVVVVVVVVVVVV",
+ cursor: 14,
+ current: "node",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tse" },
+ node: {
+ arg: " #gcli-root",
+ status: "VALID",
+ message: ""
+ },
+ nodes: { arg: "", status: "VALID", message: "" },
+ nodes2: { arg: "", status: "VALID", message: "" },
+ }
+ }
+ }
+ ]);
+};
+
+exports.testElement = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tse",
+ check: {
+ input: "tse",
+ hints: " <node> [options]",
+ markup: "VVV",
+ cursor: 3,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ "tse", "tselarr" ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tse" },
+ node: { arg: "", status: "INCOMPLETE" },
+ nodes: { arg: "", status: "VALID", message: "" },
+ nodes2: { arg: "", status: "VALID", message: "" },
+ }
+ }
+ },
+ {
+ setup: "tse #gcli-nomatch",
+ check: {
+ input: "tse #gcli-nomatch",
+ hints: " [options]",
+ markup: "VVVVIIIIIIIIIIIII",
+ cursor: 17,
+ current: "node",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ outputState: "false:default",
+ tooltipState: "true:isError",
+ args: {
+ command: { name: "tse" },
+ node: {
+ value: undefined,
+ arg: " #gcli-nomatch",
+ // This is somewhat debatable because this input can't be corrected
+ // simply by typing so it's and error rather than incomplete,
+ // however without digging into the CSS engine we can't tell that
+ // so we default to incomplete
+ status: "INCOMPLETE",
+ message: "No matches"
+ },
+ nodes: { arg: "", status: "VALID", message: "" },
+ nodes2: { arg: "", status: "VALID", message: "" },
+ }
+ }
+ },
+ {
+ setup: "tse #",
+ check: {
+ input: "tse #",
+ hints: " [options]",
+ markup: "VVVVE",
+ cursor: 5,
+ current: "node",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ tooltipState: "true:isError",
+ args: {
+ command: { name: "tse" },
+ node: {
+ value: undefined,
+ arg: " #",
+ status: "ERROR",
+ message: "Syntax error in CSS query"
+ },
+ nodes: { arg: "", status: "VALID", message: "" },
+ nodes2: { arg: "", status: "VALID", message: "" },
+ }
+ }
+ },
+ {
+ setup: "tse .",
+ check: {
+ input: "tse .",
+ hints: " [options]",
+ markup: "VVVVE",
+ cursor: 5,
+ current: "node",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ tooltipState: "true:isError",
+ args: {
+ command: { name: "tse" },
+ node: {
+ value: undefined,
+ arg: " .",
+ status: "ERROR",
+ message: "Syntax error in CSS query"
+ },
+ nodes: { arg: "", status: "VALID", message: "" },
+ nodes2: { arg: "", status: "VALID", message: "" },
+ }
+ }
+ },
+ {
+ setup: "tse *",
+ check: {
+ input: "tse *",
+ hints: " [options]",
+ markup: "VVVVE",
+ cursor: 5,
+ current: "node",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ tooltipState: "true:isError",
+ args: {
+ command: { name: "tse" },
+ node: {
+ value: undefined,
+ arg: " *",
+ status: "ERROR",
+ message: /^Too many matches \([0-9]*\)/
+ },
+ nodes: { arg: "", status: "VALID", message: "" },
+ nodes2: { arg: "", status: "VALID", message: "" },
+ }
+ }
+ }
+ ]);
+};
+
+exports.testNestedCommand = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tsn",
+ check: {
+ input: "tsn",
+ hints: " deep down nested cmd",
+ markup: "III",
+ cursor: 3,
+ current: "__command",
+ status: "ERROR",
+ predictionsInclude: [
+ "tsn deep", "tsn deep down", "tsn deep down nested",
+ "tsn deep down nested cmd", "tsn dif"
+ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn" }
+ }
+ }
+ },
+ {
+ setup: "tsn ",
+ check: {
+ input: "tsn ",
+ hints: " deep down nested cmd",
+ markup: "IIIV",
+ cursor: 4,
+ current: "__command",
+ status: "ERROR",
+ unassigned: [ ]
+ }
+ },
+ {
+ skipIf: options.isPhantomjs, // PhantomJS gets predictions wrong
+ setup: "tsn x",
+ check: {
+ input: "tsn x",
+ hints: " -> tsn ext",
+ markup: "IIIVI",
+ cursor: 5,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ "tsn ext" ],
+ unassigned: [ ]
+ }
+ },
+ {
+ setup: "tsn dif",
+ check: {
+ input: "tsn dif",
+ hints: " <text>",
+ markup: "VVVVVVV",
+ cursor: 7,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn dif" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsn dif ",
+ check: {
+ input: "tsn dif ",
+ hints: "<text>",
+ markup: "VVVVVVVV",
+ cursor: 8,
+ current: "text",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn dif" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsn dif x",
+ check: {
+ input: "tsn dif x",
+ hints: "",
+ markup: "VVVVVVVVV",
+ cursor: 9,
+ current: "text",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn dif" },
+ text: { value: "x", arg: " x", status: "VALID", message: "" }
+ }
+ }
+ },
+ {
+ setup: "tsn ext",
+ check: {
+ input: "tsn ext",
+ hints: " <text>",
+ markup: "VVVVVVV",
+ cursor: 7,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ "tsn ext", "tsn exte", "tsn exten", "tsn extend" ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn ext" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsn exte",
+ check: {
+ input: "tsn exte",
+ hints: " <text>",
+ markup: "VVVVVVVV",
+ cursor: 8,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ "tsn exte", "tsn exten", "tsn extend" ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn exte" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsn exten",
+ check: {
+ input: "tsn exten",
+ hints: " <text>",
+ markup: "VVVVVVVVV",
+ cursor: 9,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ "tsn exten", "tsn extend" ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn exten" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "tsn extend",
+ check: {
+ input: "tsn extend",
+ hints: " <text>",
+ markup: "VVVVVVVVVV",
+ cursor: 10,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn extend" },
+ text: {
+ value: undefined,
+ arg: "",
+ status: "INCOMPLETE",
+ message: "Value required for \u2018text\u2019."
+ }
+ }
+ }
+ },
+ {
+ setup: "ts ",
+ check: {
+ input: "ts ",
+ hints: "",
+ markup: "EEV",
+ cursor: 3,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ ],
+ unassigned: [ ],
+ tooltipState: "true:isError"
+ }
+ },
+ ]);
+};
+
+// From Bug 664203
+exports.testDeeplyNested = function (options) {
+ return helpers.audit(options, [
+ {
+ setup: "tsn deep down nested",
+ check: {
+ input: "tsn deep down nested",
+ hints: " cmd",
+ markup: "IIIVIIIIVIIIIVIIIIII",
+ cursor: 20,
+ current: "__command",
+ status: "ERROR",
+ predictions: [ "tsn deep down nested cmd" ],
+ unassigned: [ ],
+ outputState: "false:default",
+ tooltipState: "false:default",
+ args: {
+ command: { name: "tsn deep down nested" },
+ }
+ }
+ },
+ {
+ setup: "tsn deep down nested cmd",
+ check: {
+ input: "tsn deep down nested cmd",
+ hints: "",
+ markup: "VVVVVVVVVVVVVVVVVVVVVVVV",
+ cursor: 24,
+ current: "__command",
+ status: "VALID",
+ predictions: [ ],
+ unassigned: [ ],
+ args: {
+ command: { name: "tsn deep down nested cmd" },
+ }
+ }
+ }
+ ]);
+};