/* * 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 // DO NOT EDIT IT DIRECTLY var exports = {}; var TEST_URI = "data:text/html;charset=utf-8,

gcli-testIncomplete.js

"; function test() { return Task.spawn(function() { let options = yield helpers.openTab(TEST_URI); yield helpers.openToolbar(options); gcli.addItems(mockCommands.items); yield helpers.runTests(options, exports); gcli.removeItems(mockCommands.items); yield helpers.closeToolbar(options); yield helpers.closeTab(options); }).then(finish, helpers.handleError); } // // var assert = require('../testharness/assert'); // var helpers = require('./helpers'); exports.testBasic = function(options) { return helpers.audit(options, [ { setup: 'tsu 2 extra', check: { args: { num: { value: 2, type: 'Argument' } } }, post: function() { var requisition = options.requisition; assert.is(requisition._unassigned.length, 1, 'single unassigned: tsu 2 extra'); assert.is(requisition._unassigned[0].param.type.isIncompleteName, false, 'unassigned.isIncompleteName: tsu 2 extra'); } }, { setup: 'tsu', check: { args: { num: { value: undefined, type: 'BlankArgument' } } } }, { setup: 'tsg', check: { args: { solo: { type: 'BlankArgument' }, txt1: { type: 'BlankArgument' }, bool: { type: 'BlankArgument' }, txt2: { type: 'BlankArgument' }, num: { type: 'BlankArgument' } } } } ]); }; exports.testCompleted = function(options) { return helpers.audit(options, [ { setup: 'tsela', check: { args: { command: { name: 'tselarr', type: 'Argument' }, num: { type: 'BlankArgument' }, arr: { type: 'ArrayArgument' } } } }, { setup: 'tsn dif ', check: { input: 'tsn dif ', hints: '', markup: 'VVVVVVVV', cursor: 8, status: 'ERROR', args: { command: { name: 'tsn dif', type: 'MergedArgument' }, text: { type: 'BlankArgument', status: 'INCOMPLETE' } } } }, { setup: 'tsn di', check: { input: 'tsn dif ', hints: '', markup: 'VVVVVVVV', cursor: 8, status: 'ERROR', args: { command: { name: 'tsn dif', type: 'Argument' }, text: { type: 'BlankArgument', status: 'INCOMPLETE' } } } }, // The above 2 tests take different routes to 'tsn dif '. // The results should be similar. The difference is in args.command.type. { setup: 'tsg -', check: { input: 'tsg -', hints: '-txt1 [options]', markup: 'VVVVI', cursor: 5, status: 'ERROR', args: { solo: { value: undefined, status: 'INCOMPLETE' }, txt1: { value: undefined, status: 'VALID' }, bool: { value: false, status: 'VALID' }, txt2: { value: undefined, status: 'VALID' }, num: { value: undefined, status: 'VALID' } } } }, { setup: 'tsg -', check: { input: 'tsg --txt1 ', hints: ' [options]', markup: 'VVVVIIIIIIV', cursor: 11, status: 'ERROR', args: { solo: { value: undefined, status: 'INCOMPLETE' }, txt1: { value: undefined, status: 'INCOMPLETE' }, bool: { value: false, status: 'VALID' }, txt2: { value: undefined, status: 'VALID' }, num: { value: undefined, status: 'VALID' } } } }, { setup: 'tsg --txt1 fred', check: { input: 'tsg --txt1 fred', hints: ' [options]', markup: 'VVVVVVVVVVVVVVV', status: 'ERROR', args: { solo: { value: undefined, status: 'INCOMPLETE' }, txt1: { value: 'fred', status: 'VALID' }, bool: { value: false, status: 'VALID' }, txt2: { value: undefined, status: 'VALID' }, num: { value: undefined, status: 'VALID' } } } }, { setup: 'tscook key value --path path --', check: { input: 'tscook key value --path path --', hints: 'domain [options]', markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVII', status: 'ERROR', args: { key: { value: 'key', status: 'VALID' }, value: { value: 'value', status: 'VALID' }, path: { value: 'path', status: 'VALID' }, domain: { value: undefined, status: 'VALID' }, secure: { value: false, status: 'VALID' } } } }, { setup: 'tscook key value --path path --domain domain --', check: { input: 'tscook key value --path path --domain domain --', hints: 'secure [options]', markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVII', status: 'ERROR', args: { key: { value: 'key', status: 'VALID' }, value: { value: 'value', status: 'VALID' }, path: { value: 'path', status: 'VALID' }, domain: { value: 'domain', status: 'VALID' }, secure: { value: false, status: 'VALID' } } } } ]); }; exports.testCase = function(options) { return helpers.audit(options, [ { setup: 'tsg AA', check: { input: 'tsg AA', hints: ' [options] -> aaa', markup: 'VVVVII', status: 'ERROR', args: { solo: { value: undefined, text: 'AA', status: 'INCOMPLETE' }, txt1: { value: undefined, status: 'VALID' }, bool: { value: false, status: 'VALID' }, txt2: { value: undefined, status: 'VALID' }, num: { value: undefined, status: 'VALID' } } } } ]); }; exports.testIncomplete = function(options) { return helpers.audit(options, [ { setup: 'tsm a a -', check: { args: { abc: { value: 'a', type: 'Argument' }, txt: { value: 'a', type: 'Argument' }, num: { value: undefined, arg: ' -', type: 'Argument', status: 'INCOMPLETE' } } } }, { setup: 'tsg -', check: { args: { solo: { type: 'BlankArgument' }, txt1: { type: 'BlankArgument' }, bool: { type: 'BlankArgument' }, txt2: { type: 'BlankArgument' }, num: { type: 'BlankArgument' } } }, post: function() { var requisition = options.requisition; assert.is(requisition._unassigned[0], requisition.getAssignmentAt(5), 'unassigned -'); assert.is(requisition._unassigned.length, 1, 'single unassigned - tsg -'); assert.is(requisition._unassigned[0].param.type.isIncompleteName, true, 'unassigned.isIncompleteName: tsg -'); } } ]); }; exports.testRepeated = function(options) { return helpers.audit(options, [ { setup: 'tscook key value --path jjj --path kkk', check: { input: 'tscook key value --path jjj --path kkk', hints: ' [options]', markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVEEEEEEVEEE', cursor: 38, current: '__unassigned', status: 'ERROR', options: [ ], message: '', predictions: [ ], unassigned: [ ' --path', ' kkk' ], args: { command: { name: 'tscook' }, key: { value: 'key', arg: ' key', status: 'VALID', message: '' }, value: { value: 'value', arg: ' value', status: 'VALID', message: '' }, path: { value: 'jjj', arg: ' --path jjj', status: 'VALID', message: '' }, domain: { value: undefined, arg: '', status: 'VALID', message: '' }, secure: { value: false, arg: '', status: 'VALID', message: '' }, } } } ]); }; exports.testHidden = function(options) { return helpers.audit(options, [ { setup: 'tshidde', check: { input: 'tshidde', hints: ' -> tse', status: 'ERROR' } }, { setup: 'tshidden', check: { input: 'tshidden', hints: ' [options]', markup: 'VVVVVVVV', status: 'VALID', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: undefined, status: 'VALID' }, invisibleboolean: { value: false, status: 'VALID' } } } }, { setup: 'tshidden --vis', check: { input: 'tshidden --vis', hints: 'ible [options]', markup: 'VVVVVVVVVIIIII', status: 'ERROR', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: undefined, status: 'VALID' }, invisibleboolean: { value: false, status: 'VALID' } } } }, { setup: 'tshidden --invisiblestrin', check: { input: 'tshidden --invisiblestrin', hints: ' [options]', markup: 'VVVVVVVVVEEEEEEEEEEEEEEEE', status: 'ERROR', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: undefined, status: 'VALID' }, invisibleboolean: { value: false, status: 'VALID' } } } }, { setup: 'tshidden --invisiblestring', check: { input: 'tshidden --invisiblestring', hints: ' [options]', markup: 'VVVVVVVVVIIIIIIIIIIIIIIIII', status: 'ERROR', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: undefined, status: 'INCOMPLETE' }, invisibleboolean: { value: false, status: 'VALID' } } } }, { setup: 'tshidden --invisiblestring x', check: { input: 'tshidden --invisiblestring x', hints: ' [options]', markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVV', status: 'VALID', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: 'x', status: 'VALID' }, invisibleboolean: { value: false, status: 'VALID' } } } }, { setup: 'tshidden --invisibleboolea', check: { input: 'tshidden --invisibleboolea', hints: ' [options]', markup: 'VVVVVVVVVEEEEEEEEEEEEEEEEE', status: 'ERROR', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: undefined, status: 'VALID' }, invisibleboolean: { value: false, status: 'VALID' } } } }, { setup: 'tshidden --invisibleboolean', check: { input: 'tshidden --invisibleboolean', hints: ' [options]', markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVV', status: 'VALID', args: { visible: { value: undefined, status: 'VALID' }, invisiblestring: { value: undefined, status: 'VALID' }, invisibleboolean: { value: true, status: 'VALID' } } } }, { setup: 'tshidden --visible xxx', check: { input: 'tshidden --visible xxx', markup: 'VVVVVVVVVVVVVVVVVVVVVV', status: 'VALID', hints: '', args: { visible: { value: 'xxx', status: 'VALID' }, invisiblestring: { value: undefined, status: 'VALID' }, invisibleboolean: { value: false, status: 'VALID' } } } } ]); };