browser/devtools/commandline/test/browser_gcli_incomplete.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2  * Copyright 2012, Mozilla Foundation and contributors
     3  *
     4  * Licensed under the Apache License, Version 2.0 (the "License");
     5  * you may not use this file except in compliance with the License.
     6  * You may obtain a copy of the License at
     7  *
     8  * http://www.apache.org/licenses/LICENSE-2.0
     9  *
    10  * Unless required by applicable law or agreed to in writing, software
    11  * distributed under the License is distributed on an "AS IS" BASIS,
    12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    15  */
    17 'use strict';
    18 // <INJECTED SOURCE:START>
    20 // THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT
    21 // DO NOT EDIT IT DIRECTLY
    23 var exports = {};
    25 var TEST_URI = "data:text/html;charset=utf-8,<p id='gcli-input'>gcli-testIncomplete.js</p>";
    27 function test() {
    28   return Task.spawn(function() {
    29     let options = yield helpers.openTab(TEST_URI);
    30     yield helpers.openToolbar(options);
    31     gcli.addItems(mockCommands.items);
    33     yield helpers.runTests(options, exports);
    35     gcli.removeItems(mockCommands.items);
    36     yield helpers.closeToolbar(options);
    37     yield helpers.closeTab(options);
    38   }).then(finish, helpers.handleError);
    39 }
    41 // <INJECTED SOURCE:END>
    43 // var assert = require('../testharness/assert');
    44 // var helpers = require('./helpers');
    46 exports.testBasic = function(options) {
    47   return helpers.audit(options, [
    48     {
    49       setup: 'tsu 2 extra',
    50       check: {
    51         args: {
    52           num: { value: 2, type: 'Argument' }
    53         }
    54       },
    55       post: function() {
    56         var requisition = options.requisition;
    58         assert.is(requisition._unassigned.length,
    59                   1,
    60                   'single unassigned: tsu 2 extra');
    61         assert.is(requisition._unassigned[0].param.type.isIncompleteName,
    62                   false,
    63                   'unassigned.isIncompleteName: tsu 2 extra');
    64       }
    65     },
    66     {
    67       setup: 'tsu',
    68       check: {
    69         args: {
    70           num: { value: undefined, type: 'BlankArgument' }
    71         }
    72       }
    73     },
    74     {
    75       setup: 'tsg',
    76       check: {
    77         args: {
    78           solo: { type: 'BlankArgument' },
    79           txt1: { type: 'BlankArgument' },
    80           bool: { type: 'BlankArgument' },
    81           txt2: { type: 'BlankArgument' },
    82           num: { type: 'BlankArgument' }
    83         }
    84       }
    85     }
    86   ]);
    87 };
    89 exports.testCompleted = function(options) {
    90   return helpers.audit(options, [
    91     {
    92       setup: 'tsela<TAB>',
    93       check: {
    94         args: {
    95           command: { name: 'tselarr', type: 'Argument' },
    96           num: { type: 'BlankArgument' },
    97           arr: { type: 'ArrayArgument' }
    98         }
    99       }
   100     },
   101     {
   102       setup:    'tsn dif ',
   103       check: {
   104         input:  'tsn dif ',
   105         hints:          '<text>',
   106         markup: 'VVVVVVVV',
   107         cursor: 8,
   108         status: 'ERROR',
   109         args: {
   110           command: { name: 'tsn dif', type: 'MergedArgument' },
   111           text: { type: 'BlankArgument', status: 'INCOMPLETE' }
   112         }
   113       }
   114     },
   115     {
   116       setup:    'tsn di<TAB>',
   117       check: {
   118         input:  'tsn dif ',
   119         hints:          '<text>',
   120         markup: 'VVVVVVVV',
   121         cursor: 8,
   122         status: 'ERROR',
   123         args: {
   124           command: { name: 'tsn dif', type: 'Argument' },
   125           text: { type: 'BlankArgument', status: 'INCOMPLETE' }
   126         }
   127       }
   128     },
   129     // The above 2 tests take different routes to 'tsn dif '.
   130     // The results should be similar. The difference is in args.command.type.
   131     {
   132       setup:    'tsg -',
   133       check: {
   134         input:  'tsg -',
   135         hints:       '-txt1 <solo> [options]',
   136         markup: 'VVVVI',
   137         cursor: 5,
   138         status: 'ERROR',
   139         args: {
   140           solo: { value: undefined, status: 'INCOMPLETE' },
   141           txt1: { value: undefined, status: 'VALID' },
   142           bool: { value: false, status: 'VALID' },
   143           txt2: { value: undefined, status: 'VALID' },
   144           num: { value: undefined, status: 'VALID' }
   145         }
   146       }
   147     },
   148     {
   149       setup:    'tsg -<TAB>',
   150       check: {
   151         input:  'tsg --txt1 ',
   152         hints:             '<string> <solo> [options]',
   153         markup: 'VVVVIIIIIIV',
   154         cursor: 11,
   155         status: 'ERROR',
   156         args: {
   157           solo: { value: undefined, status: 'INCOMPLETE' },
   158           txt1: { value: undefined, status: 'INCOMPLETE' },
   159           bool: { value: false, status: 'VALID' },
   160           txt2: { value: undefined, status: 'VALID' },
   161           num: { value: undefined, status: 'VALID' }
   162         }
   163       }
   164     },
   165     {
   166       setup:    'tsg --txt1 fred',
   167       check: {
   168         input:  'tsg --txt1 fred',
   169         hints:                 ' <solo> [options]',
   170         markup: 'VVVVVVVVVVVVVVV',
   171         status: 'ERROR',
   172         args: {
   173           solo: { value: undefined, status: 'INCOMPLETE' },
   174           txt1: { value: 'fred', status: 'VALID' },
   175           bool: { value: false, status: 'VALID' },
   176           txt2: { value: undefined, status: 'VALID' },
   177           num: { value: undefined, status: 'VALID' }
   178         }
   179       }
   180     },
   181     {
   182       setup:    'tscook key value --path path --',
   183       check: {
   184         input:  'tscook key value --path path --',
   185         hints:                                 'domain [options]',
   186         markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVII',
   187         status: 'ERROR',
   188         args: {
   189           key: { value: 'key', status: 'VALID' },
   190           value: { value: 'value', status: 'VALID' },
   191           path: { value: 'path', status: 'VALID' },
   192           domain: { value: undefined, status: 'VALID' },
   193           secure: { value: false, status: 'VALID' }
   194         }
   195       }
   196     },
   197     {
   198       setup:    'tscook key value --path path --domain domain --',
   199       check: {
   200         input:  'tscook key value --path path --domain domain --',
   201         hints:                                                 'secure [options]',
   202         markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVII',
   203         status: 'ERROR',
   204         args: {
   205           key: { value: 'key', status: 'VALID' },
   206           value: { value: 'value', status: 'VALID' },
   207           path: { value: 'path', status: 'VALID' },
   208           domain: { value: 'domain', status: 'VALID' },
   209           secure: { value: false, status: 'VALID' }
   210         }
   211       }
   212     }
   213   ]);
   215 };
   217 exports.testCase = function(options) {
   218   return helpers.audit(options, [
   219     {
   220       setup:    'tsg AA',
   221       check: {
   222         input:  'tsg AA',
   223         hints:        ' [options] -> aaa',
   224         markup: 'VVVVII',
   225         status: 'ERROR',
   226         args: {
   227           solo: { value: undefined, text: 'AA', status: 'INCOMPLETE' },
   228           txt1: { value: undefined, status: 'VALID' },
   229           bool: { value: false, status: 'VALID' },
   230           txt2: { value: undefined, status: 'VALID' },
   231           num: { value: undefined, status: 'VALID' }
   232         }
   233       }
   234     }
   235   ]);
   236 };
   238 exports.testIncomplete = function(options) {
   239   return helpers.audit(options, [
   240     {
   241       setup:    'tsm a a -',
   242       check: {
   243         args: {
   244           abc: { value: 'a', type: 'Argument' },
   245           txt: { value: 'a', type: 'Argument' },
   246           num: { value: undefined, arg: ' -', type: 'Argument', status: 'INCOMPLETE' }
   247         }
   248       }
   249     },
   250     {
   251       setup:    'tsg -',
   252       check: {
   253         args: {
   254           solo: { type: 'BlankArgument' },
   255           txt1: { type: 'BlankArgument' },
   256           bool: { type: 'BlankArgument' },
   257           txt2: { type: 'BlankArgument' },
   258           num: { type: 'BlankArgument' }
   259         }
   260       },
   261       post: function() {
   262         var requisition = options.requisition;
   264         assert.is(requisition._unassigned[0],
   265                   requisition.getAssignmentAt(5),
   266                   'unassigned -');
   267         assert.is(requisition._unassigned.length,
   268                   1,
   269                   'single unassigned - tsg -');
   270         assert.is(requisition._unassigned[0].param.type.isIncompleteName,
   271                   true,
   272                   'unassigned.isIncompleteName: tsg -');
   273       }
   274     }
   275   ]);
   276 };
   278 exports.testRepeated = function(options) {
   279   return helpers.audit(options, [
   280     {
   281       setup:    'tscook key value --path jjj --path kkk',
   282       check: {
   283         input:  'tscook key value --path jjj --path kkk',
   284         hints:                                        ' [options]',
   285         markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVEEEEEEVEEE',
   286         cursor: 38,
   287         current: '__unassigned',
   288         status: 'ERROR',
   289         options: [ ],
   290         message: '',
   291         predictions: [ ],
   292         unassigned: [ ' --path', ' kkk' ],
   293         args: {
   294           command: { name: 'tscook' },
   295           key: {
   296             value: 'key',
   297             arg: ' key',
   298             status: 'VALID',
   299             message: ''
   300           },
   301           value: {
   302             value: 'value',
   303             arg: ' value',
   304             status: 'VALID',
   305             message: ''
   306           },
   307           path: {
   308             value: 'jjj',
   309             arg: ' --path jjj',
   310             status: 'VALID',
   311             message: ''
   312           },
   313           domain: {
   314             value: undefined,
   315             arg: '',
   316             status: 'VALID',
   317             message: ''
   318           },
   319           secure: {
   320             value: false,
   321             arg: '',
   322             status: 'VALID',
   323             message: ''
   324           },
   325         }
   326       }
   327     }
   328   ]);
   329 };
   331 exports.testHidden = function(options) {
   332   return helpers.audit(options, [
   333     {
   334       setup:    'tshidde',
   335       check: {
   336         input:  'tshidde',
   337         hints:         ' -> tse',
   338         status: 'ERROR'
   339       }
   340     },
   341     {
   342       setup:    'tshidden',
   343       check: {
   344         input:  'tshidden',
   345         hints:          ' [options]',
   346         markup: 'VVVVVVVV',
   347         status: 'VALID',
   348         args: {
   349           visible: { value: undefined, status: 'VALID' },
   350           invisiblestring: { value: undefined, status: 'VALID' },
   351           invisibleboolean: { value: false, status: 'VALID' }
   352         }
   353       }
   354     },
   355     {
   356       setup:    'tshidden --vis',
   357       check: {
   358         input:  'tshidden --vis',
   359         hints:                'ible [options]',
   360         markup: 'VVVVVVVVVIIIII',
   361         status: 'ERROR',
   362         args: {
   363           visible: { value: undefined, status: 'VALID' },
   364           invisiblestring: { value: undefined, status: 'VALID' },
   365           invisibleboolean: { value: false, status: 'VALID' }
   366         }
   367       }
   368     },
   369     {
   370       setup:    'tshidden --invisiblestrin',
   371       check: {
   372         input:  'tshidden --invisiblestrin',
   373         hints:                           ' [options]',
   374         markup: 'VVVVVVVVVEEEEEEEEEEEEEEEE',
   375         status: 'ERROR',
   376         args: {
   377           visible: { value: undefined, status: 'VALID' },
   378           invisiblestring: { value: undefined, status: 'VALID' },
   379           invisibleboolean: { value: false, status: 'VALID' }
   380         }
   381       }
   382     },
   383     {
   384       setup:    'tshidden --invisiblestring',
   385       check: {
   386         input:  'tshidden --invisiblestring',
   387         hints:                            ' <string> [options]',
   388         markup: 'VVVVVVVVVIIIIIIIIIIIIIIIII',
   389         status: 'ERROR',
   390         args: {
   391           visible: { value: undefined, status: 'VALID' },
   392           invisiblestring: { value: undefined, status: 'INCOMPLETE' },
   393           invisibleboolean: { value: false, status: 'VALID' }
   394         }
   395       }
   396     },
   397     {
   398       setup:    'tshidden --invisiblestring x',
   399       check: {
   400         input:  'tshidden --invisiblestring x',
   401         hints:                              ' [options]',
   402         markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVV',
   403         status: 'VALID',
   404         args: {
   405           visible: { value: undefined, status: 'VALID' },
   406           invisiblestring: { value: 'x', status: 'VALID' },
   407           invisibleboolean: { value: false, status: 'VALID' }
   408         }
   409       }
   410     },
   411     {
   412       setup:    'tshidden --invisibleboolea',
   413       check: {
   414         input:  'tshidden --invisibleboolea',
   415         hints:                            ' [options]',
   416         markup: 'VVVVVVVVVEEEEEEEEEEEEEEEEE',
   417         status: 'ERROR',
   418         args: {
   419           visible: { value: undefined, status: 'VALID' },
   420           invisiblestring: { value: undefined, status: 'VALID' },
   421           invisibleboolean: { value: false, status: 'VALID' }
   422         }
   423       }
   424     },
   425     {
   426       setup:    'tshidden --invisibleboolean',
   427       check: {
   428         input:  'tshidden --invisibleboolean',
   429         hints:                             ' [options]',
   430         markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVV',
   431         status: 'VALID',
   432         args: {
   433           visible: { value: undefined, status: 'VALID' },
   434           invisiblestring: { value: undefined, status: 'VALID' },
   435           invisibleboolean: { value: true, status: 'VALID' }
   436         }
   437       }
   438     },
   439     {
   440       setup:    'tshidden --visible xxx',
   441       check: {
   442         input:  'tshidden --visible xxx',
   443         markup: 'VVVVVVVVVVVVVVVVVVVVVV',
   444         status: 'VALID',
   445         hints:  '',
   446         args: {
   447           visible: { value: 'xxx', status: 'VALID' },
   448           invisiblestring: { value: undefined, status: 'VALID' },
   449           invisibleboolean: { value: false, status: 'VALID' }
   450         }
   451       }
   452     }
   453   ]);
   454 };

mercurial