123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657 |
- /*
- * 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_exec.js");
- }
- // var assert = require('../testharness/assert');
- // var helpers = require('./helpers');
- exports.testParamGroup = function (options) {
- var tsg = options.requisition.system.commands.get("tsg");
- assert.is(tsg.params[0].groupName, null, "tsg param 0 group null");
- assert.is(tsg.params[1].groupName, "First", "tsg param 1 group First");
- assert.is(tsg.params[2].groupName, "First", "tsg param 2 group First");
- assert.is(tsg.params[3].groupName, "Second", "tsg param 3 group Second");
- assert.is(tsg.params[4].groupName, "Second", "tsg param 4 group Second");
- };
- exports.testWithHelpers = function (options) {
- return helpers.audit(options, [
- {
- setup: "tss",
- check: {
- input: "tss",
- hints: "",
- markup: "VVV",
- cursor: 3,
- current: "__command",
- status: "VALID",
- unassigned: [ ],
- args: {
- command: { name: "tss" },
- }
- },
- exec: {
- output: /^Exec: tss/,
- }
- },
- {
- setup: "tsv option1 10",
- check: {
- input: "tsv option1 10",
- hints: "",
- markup: "VVVVVVVVVVVVVV",
- cursor: 14,
- current: "optionValue",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsv" },
- optionType: {
- value: "string",
- arg: " option1",
- status: "VALID",
- message: ""
- },
- optionValue: {
- arg: " 10",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsv optionType=option1 optionValue=10"
- }
- },
- {
- setup: "tsv option2 10",
- check: {
- input: "tsv option2 10",
- hints: "",
- markup: "VVVVVVVVVVVVVV",
- cursor: 14,
- current: "optionValue",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsv" },
- optionType: {
- value: "number",
- arg: " option2",
- status: "VALID",
- message: ""
- },
- optionValue: {
- arg: " 10",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsv optionType=option2 optionValue=10"
- }
- },
- // Delegated remote types can't transfer value types so we only test for
- // the value of optionValue when we're local
- {
- skipIf: options.isRemote,
- setup: "tsv option1 10",
- check: {
- args: { optionValue: { value: "10" } }
- },
- exec: {
- output: "Exec: tsv optionType=option1 optionValue=10"
- }
- },
- {
- skipIf: options.isRemote,
- setup: "tsv option2 10",
- check: {
- args: { optionValue: { value: 10 } }
- },
- exec: {
- output: "Exec: tsv optionType=option2 optionValue=10"
- }
- }
- ]);
- };
- exports.testExecText = function (options) {
- return helpers.audit(options, [
- {
- setup: "tsr fred",
- check: {
- input: "tsr fred",
- hints: "",
- markup: "VVVVVVVV",
- cursor: 8,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsr" },
- text: {
- value: "fred",
- arg: " fred",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsr text=fred"
- }
- },
- {
- setup: "tsr fred bloggs",
- check: {
- input: "tsr fred bloggs",
- hints: "",
- markup: "VVVVVVVVVVVVVVV",
- cursor: 15,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsr" },
- text: {
- value: "fred bloggs",
- arg: " fred bloggs",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsr text=fred\\ bloggs"
- }
- },
- {
- setup: 'tsr "fred bloggs"',
- check: {
- input: 'tsr "fred bloggs"',
- hints: "",
- markup: "VVVVVVVVVVVVVVVVV",
- cursor: 17,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsr" },
- text: {
- value: "fred bloggs",
- arg: ' "fred bloggs"',
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsr text=fred\\ bloggs"
- }
- },
- {
- setup: 'tsr "fred bloggs',
- check: {
- input: 'tsr "fred bloggs',
- hints: "",
- markup: "VVVVVVVVVVVVVVVV",
- cursor: 16,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsr" },
- text: {
- value: "fred bloggs",
- arg: ' "fred bloggs',
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsr text=fred\\ bloggs"
- }
- }
- ]);
- };
- exports.testExecBoolean = function (options) {
- return helpers.audit(options, [
- {
- setup: "tsb",
- check: {
- input: "tsb",
- hints: " [toggle]",
- markup: "VVV",
- cursor: 3,
- current: "__command",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsb" },
- toggle: {
- value: false,
- arg: "",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsb toggle=false"
- }
- },
- {
- setup: "tsb --toggle",
- check: {
- input: "tsb --toggle",
- hints: "",
- markup: "VVVVVVVVVVVV",
- cursor: 12,
- current: "toggle",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- outputState: "false:default",
- args: {
- command: { name: "tsb" },
- toggle: {
- value: true,
- arg: " --toggle",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsb toggle=true"
- }
- }
- ]);
- };
- exports.testExecNumber = function (options) {
- return helpers.audit(options, [
- {
- setup: "tsu 10",
- check: {
- input: "tsu 10",
- hints: "",
- markup: "VVVVVV",
- cursor: 6,
- current: "num",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsu" },
- num: { value: 10, arg: " 10", status: "VALID", message: "" }
- }
- },
- exec: {
- output: "Exec: tsu num=10"
- }
- },
- {
- setup: "tsu --num 10",
- check: {
- input: "tsu --num 10",
- hints: "",
- markup: "VVVVVVVVVVVV",
- cursor: 12,
- current: "num",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsu" },
- num: { value: 10, arg: " --num 10", status: "VALID", message: "" }
- }
- },
- exec: {
- output: "Exec: tsu num=10"
- }
- }
- ]);
- };
- exports.testExecScript = function (options) {
- return helpers.audit(options, [
- {
- // Bug 704829 - Enable GCLI Javascript parameters
- // The answer to this should be 2
- setup: "tsj { 1 + 1 }",
- check: {
- input: "tsj { 1 + 1 }",
- hints: "",
- markup: "VVVVVVVVVVVVV",
- cursor: 13,
- current: "javascript",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsj" },
- javascript: {
- arg: " { 1 + 1 }",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: "Exec: tsj javascript=1 + 1"
- }
- }
- ]);
- };
- exports.testExecNode = function (options) {
- return helpers.audit(options, [
- {
- skipIf: options.isRemote,
- setup: "tse :root",
- check: {
- input: "tse :root",
- hints: " [options]",
- markup: "VVVVVVVVV",
- cursor: 9,
- current: "node",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tse" },
- node: {
- arg: " :root",
- status: "VALID",
- message: ""
- },
- nodes: {
- arg: "",
- status: "VALID",
- message: ""
- },
- nodes2: {
- arg: "",
- status: "VALID",
- message: ""
- }
- }
- },
- exec: {
- output: /^Exec: tse/
- },
- post: function (output) {
- assert.is(output.data.args.node, ":root", "node should be :root");
- assert.is(output.data.args.nodes, "Error", "nodes should be Error");
- assert.is(output.data.args.nodes2, "Error", "nodes2 should be Error");
- }
- }
- ]);
- };
- exports.testExecSubCommand = function (options) {
- return helpers.audit(options, [
- {
- setup: "tsn dif fred",
- check: {
- input: "tsn dif fred",
- hints: "",
- markup: "VVVVVVVVVVVV",
- cursor: 12,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsn dif" },
- text: { value: "fred", arg: " fred", status: "VALID", message: "" }
- }
- },
- exec: {
- output: "Exec: tsnDif text=fred"
- }
- },
- {
- setup: "tsn exten fred",
- check: {
- input: "tsn exten fred",
- hints: "",
- markup: "VVVVVVVVVVVVVV",
- cursor: 14,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsn exten" },
- text: { value: "fred", arg: " fred", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tsnExten text=fred"
- }
- },
- {
- setup: "tsn extend fred",
- check: {
- input: "tsn extend fred",
- hints: "",
- markup: "VVVVVVVVVVVVVVV",
- cursor: 15,
- current: "text",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsn extend" },
- text: { value: "fred", arg: " fred", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tsnExtend text=fred"
- }
- }
- ]);
- };
- exports.testExecArray = function (options) {
- return helpers.audit(options, [
- {
- setup: "tselarr 1",
- check: {
- input: "tselarr 1",
- hints: "",
- markup: "VVVVVVVVV",
- cursor: 9,
- current: "num",
- status: "VALID",
- predictions: ["1"],
- unassigned: [ ],
- outputState: "false:default",
- args: {
- command: { name: "tselarr" },
- num: { value: "1", arg: " 1", status: "VALID", message: "" },
- arr: { /* value:,*/ arg: "{}", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tselarr num=1 arr="
- }
- },
- {
- setup: "tselarr 1 a",
- check: {
- input: "tselarr 1 a",
- hints: "",
- markup: "VVVVVVVVVVV",
- cursor: 11,
- current: "arr",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tselarr" },
- num: { value: "1", arg: " 1", status: "VALID", message: "" },
- arr: { /* value:a,*/ arg: "{ a}", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tselarr num=1 arr=a"
- }
- },
- {
- setup: "tselarr 1 a b",
- check: {
- input: "tselarr 1 a b",
- hints: "",
- markup: "VVVVVVVVVVVVV",
- cursor: 13,
- current: "arr",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tselarr" },
- num: { value: "1", arg: " 1", status: "VALID", message: "" },
- arr: { /* value:a,b,*/ arg: "{ a, b}", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tselarr num=1 arr=a b"
- }
- }
- ]);
- };
- exports.testExecMultiple = function (options) {
- return helpers.audit(options, [
- {
- setup: "tsm a 10 10",
- check: {
- input: "tsm a 10 10",
- hints: "",
- markup: "VVVVVVVVVVV",
- cursor: 11,
- current: "num",
- status: "VALID",
- predictions: [ ],
- unassigned: [ ],
- args: {
- command: { name: "tsm" },
- abc: { value: "a", arg: " a", status: "VALID", message: "" },
- txt: { value: "10", arg: " 10", status: "VALID", message: "" },
- num: { value: 10, arg: " 10", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tsm abc=a txt=10 num=10"
- }
- }
- ]);
- };
- exports.testExecDefaults = function (options) {
- return helpers.audit(options, [
- {
- // Bug 707009 - GCLI doesn't always fill in default parameters properly
- setup: "tsg aaa",
- check: {
- input: "tsg aaa",
- hints: " [options]",
- markup: "VVVVVVV",
- cursor: 7,
- current: "solo",
- status: "VALID",
- predictions: ["aaa"],
- unassigned: [ ],
- args: {
- command: { name: "tsg" },
- solo: { value: "aaa", arg: " aaa", status: "VALID", message: "" },
- txt1: { value: undefined, arg: "", status: "VALID", message: "" },
- bool: { value: false, arg: "", status: "VALID", message: "" },
- txt2: { value: undefined, arg: "", status: "VALID", message: "" },
- num: { value: undefined, arg: "", status: "VALID", message: "" },
- }
- },
- exec: {
- output: "Exec: tsg solo=aaa txt1= bool=false txt2=d num=42"
- }
- }
- ]);
- };
- exports.testNested = function (options) {
- var commands = options.requisition.system.commands;
- commands.add({
- name: "nestorama",
- exec: function (args, context) {
- return context.updateExec("tsb").then(function (tsbOutput) {
- return context.updateExec("tsu 6").then(function (tsuOutput) {
- return JSON.stringify({
- tsb: tsbOutput.data,
- tsu: tsuOutput.data
- });
- });
- });
- }
- });
- return helpers.audit(options, [
- {
- setup: "nestorama",
- exec: {
- output:
- "{" +
- '"tsb":{' +
- '"name":"tsb",' +
- '"args":{"toggle":"false"}' +
- "}," +
- '"tsu":{' +
- '"name":"tsu",' +
- '"args":{"num":"6"}' +
- "}" +
- "}"
- },
- post: function () {
- commands.remove("nestorama");
- }
- }
- ]);
- };
|