browser/devtools/commandline/test/mockCommands.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:d3e897d92275
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 */
16
17 'use strict';
18 // <INJECTED SOURCE:START>
19
20 // THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT
21 // DO NOT EDIT IT DIRECTLY
22
23 // <INJECTED SOURCE:END>
24
25
26 var mockCommands = {};
27
28 // We use an alias for exports here because this module is used in Firefox
29 // mochitests where we don't have define/require
30
31 /**
32 * Registration and de-registration.
33 */
34 mockCommands.setup = function(requisition) {
35 mockCommands.items.forEach(function(item) {
36 if (item.item === 'command') {
37 requisition.canon.addCommand(item);
38 }
39 else if (item.item === 'type') {
40 requisition.types.addType(item);
41 }
42 else {
43 console.error('Ignoring item ', item);
44 }
45 });
46 };
47
48 mockCommands.shutdown = function(requisition) {
49 mockCommands.items.forEach(function(item) {
50 if (item.item === 'command') {
51 requisition.canon.removeCommand(item);
52 }
53 else if (item.item === 'type') {
54 requisition.types.removeType(item);
55 }
56 else {
57 console.error('Ignoring item ', item);
58 }
59 });
60 };
61
62 function createExec(name) {
63 return function(args, executionContext) {
64 var argsOut = Object.keys(args).map(function(key) {
65 return key + '=' + args[key];
66 }).join(', ');
67 return 'Exec: ' + name + ' ' + argsOut;
68 };
69 }
70
71 mockCommands.items = [
72 {
73 item: 'type',
74 name: 'optionType',
75 parent: 'selection',
76 lookup: [
77 {
78 name: 'option1',
79 value: 'string'
80 },
81 {
82 name: 'option2',
83 value: 'number'
84 },
85 {
86 name: 'option3',
87 value: {
88 name: 'selection',
89 lookup: [
90 { name: 'one', value: 1 },
91 { name: 'two', value: 2 },
92 { name: 'three', value: 3 }
93 ]
94 }
95 }
96 ]
97 },
98 {
99 item: 'type',
100 name: 'optionValue',
101 parent: 'delegate',
102 delegateType: function(executionContext) {
103 if (executionContext != null) {
104 var option = executionContext.getArgsObject().optionType;
105 if (option != null) {
106 return option;
107 }
108 }
109 return 'blank';
110 }
111 },
112 {
113 item: 'command',
114 name: 'tsv',
115 params: [
116 { name: 'optionType', type: 'optionType' },
117 { name: 'optionValue', type: 'optionValue' }
118 ],
119 exec: createExec('tsv')
120 },
121 {
122 item: 'command',
123 name: 'tsr',
124 params: [ { name: 'text', type: 'string' } ],
125 exec: createExec('tsr')
126 },
127 {
128 item: 'command',
129 name: 'tsrsrsr',
130 params: [
131 { name: 'p1', type: 'string' },
132 { name: 'p2', type: 'string' },
133 { name: 'p3', type: { name: 'string', allowBlank: true} },
134 ],
135 exec: createExec('tsrsrsr')
136 },
137 {
138 item: 'command',
139 name: 'tso',
140 params: [ { name: 'text', type: 'string', defaultValue: null } ],
141 exec: createExec('tso')
142 },
143 {
144 item: 'command',
145 name: 'tse',
146 params: [
147 { name: 'node', type: 'node' },
148 {
149 group: 'options',
150 params: [
151 { name: 'nodes', type: { name: 'nodelist' } },
152 { name: 'nodes2', type: { name: 'nodelist', allowEmpty: true } }
153 ]
154 }
155 ],
156 exec: createExec('tse')
157 },
158 {
159 item: 'command',
160 name: 'tsj',
161 params: [ { name: 'javascript', type: 'javascript' } ],
162 exec: createExec('tsj')
163 },
164 {
165 item: 'command',
166 name: 'tsb',
167 params: [ { name: 'toggle', type: 'boolean' } ],
168 exec: createExec('tsb')
169 },
170 {
171 item: 'command',
172 name: 'tss',
173 exec: createExec('tss')
174 },
175 {
176 item: 'command',
177 name: 'tsu',
178 params: [
179 {
180 name: 'num',
181 type: {
182 name: 'number',
183 max: 10,
184 min: -5,
185 step: 3
186 }
187 }
188 ],
189 exec: createExec('tsu')
190 },
191 {
192 item: 'command',
193 name: 'tsf',
194 params: [
195 {
196 name: 'num',
197 type: {
198 name: 'number',
199 allowFloat: true,
200 max: 11.5,
201 min: -6.5,
202 step: 1.5
203 }
204 }
205 ],
206 exec: createExec('tsf')
207 },
208 {
209 item: 'command',
210 name: 'tsn'
211 },
212 {
213 item: 'command',
214 name: 'tsn dif',
215 params: [ { name: 'text', type: 'string', description: 'tsn dif text' } ],
216 exec: createExec('tsnDif')
217 },
218 {
219 item: 'command',
220 name: 'tsn hidden',
221 hidden: true,
222 exec: createExec('tsnHidden')
223 },
224 {
225 item: 'command',
226 name: 'tsn ext',
227 params: [ { name: 'text', type: 'string' } ],
228 exec: createExec('tsnExt')
229 },
230 {
231 item: 'command',
232 name: 'tsn exte',
233 params: [ { name: 'text', type: 'string' } ],
234 exec: createExec('tsnExte')
235 },
236 {
237 item: 'command',
238 name: 'tsn exten',
239 params: [ { name: 'text', type: 'string' } ],
240 exec: createExec('tsnExten')
241 },
242 {
243 item: 'command',
244 name: 'tsn extend',
245 params: [ { name: 'text', type: 'string' } ],
246 exec: createExec('tsnExtend')
247 },
248 {
249 item: 'command',
250 name: 'tsn deep'
251 },
252 {
253 item: 'command',
254 name: 'tsn deep down'
255 },
256 {
257 item: 'command',
258 name: 'tsn deep down nested'
259 },
260 {
261 item: 'command',
262 name: 'tsn deep down nested cmd',
263 exec: createExec('tsnDeepDownNestedCmd')
264 },
265 {
266 item: 'command',
267 name: 'tshidden',
268 hidden: true,
269 params: [
270 {
271 group: 'Options',
272 params: [
273 {
274 name: 'visible',
275 type: 'string',
276 short: 'v',
277 defaultValue: null,
278 description: 'visible'
279 },
280 {
281 name: 'invisiblestring',
282 type: 'string',
283 short: 'i',
284 description: 'invisiblestring',
285 defaultValue: null,
286 hidden: true
287 },
288 {
289 name: 'invisibleboolean',
290 short: 'b',
291 type: 'boolean',
292 description: 'invisibleboolean',
293 hidden: true
294 }
295 ]
296 }
297 ],
298 exec: createExec('tshidden')
299 },
300 {
301 item: 'command',
302 name: 'tselarr',
303 params: [
304 { name: 'num', type: { name: 'selection', data: [ '1', '2', '3' ] } },
305 { name: 'arr', type: { name: 'array', subtype: 'string' } }
306 ],
307 exec: createExec('tselarr')
308 },
309 {
310 item: 'command',
311 name: 'tsm',
312 description: 'a 3-param test selection|string|number',
313 params: [
314 { name: 'abc', type: { name: 'selection', data: [ 'a', 'b', 'c' ] } },
315 { name: 'txt', type: 'string' },
316 { name: 'num', type: { name: 'number', max: 42, min: 0 } }
317 ],
318 exec: createExec('tsm')
319 },
320 {
321 item: 'command',
322 name: 'tsg',
323 description: 'a param group test',
324 params: [
325 {
326 name: 'solo',
327 type: { name: 'selection', data: [ 'aaa', 'bbb', 'ccc' ] },
328 description: 'solo param'
329 },
330 {
331 group: 'First',
332 params: [
333 {
334 name: 'txt1',
335 type: 'string',
336 defaultValue: null,
337 description: 'txt1 param'
338 },
339 {
340 name: 'bool',
341 type: 'boolean',
342 description: 'bool param'
343 }
344 ]
345 },
346 {
347 name: 'txt2',
348 type: 'string',
349 defaultValue: 'd',
350 description: 'txt2 param',
351 option: 'Second'
352 },
353 {
354 name: 'num',
355 type: { name: 'number', min: 40 },
356 defaultValue: 42,
357 description: 'num param',
358 option: 'Second'
359 }
360 ],
361 exec: createExec('tsg')
362 },
363 {
364 item: 'command',
365 name: 'tscook',
366 description: 'param group test to catch problems with cookie command',
367 params: [
368 {
369 name: 'key',
370 type: 'string',
371 description: 'tscookKeyDesc'
372 },
373 {
374 name: 'value',
375 type: 'string',
376 description: 'tscookValueDesc'
377 },
378 {
379 group: 'tscookOptionsDesc',
380 params: [
381 {
382 name: 'path',
383 type: 'string',
384 defaultValue: '/',
385 description: 'tscookPathDesc'
386 },
387 {
388 name: 'domain',
389 type: 'string',
390 defaultValue: null,
391 description: 'tscookDomainDesc'
392 },
393 {
394 name: 'secure',
395 type: 'boolean',
396 description: 'tscookSecureDesc'
397 }
398 ]
399 }
400 ],
401 exec: createExec('tscook')
402 },
403 {
404 item: 'command',
405 name: 'tslong',
406 description: 'long param tests to catch problems with the jsb command',
407 params: [
408 {
409 name: 'msg',
410 type: 'string',
411 description: 'msg Desc'
412 },
413 {
414 group: 'Options Desc',
415 params: [
416 {
417 name: 'num',
418 short: 'n',
419 type: 'number',
420 description: 'num Desc',
421 defaultValue: 2
422 },
423 {
424 name: 'sel',
425 short: 's',
426 type: {
427 name: 'selection',
428 lookup: [
429 { name: 'space', value: ' ' },
430 { name: 'tab', value: '\t' }
431 ]
432 },
433 description: 'sel Desc',
434 defaultValue: ' '
435 },
436 {
437 name: 'bool',
438 short: 'b',
439 type: 'boolean',
440 description: 'bool Desc'
441 },
442 {
443 name: 'num2',
444 short: 'm',
445 type: 'number',
446 description: 'num2 Desc',
447 defaultValue: -1
448 },
449 {
450 name: 'bool2',
451 short: 'c',
452 type: 'boolean',
453 description: 'bool2 Desc'
454 },
455 {
456 name: 'sel2',
457 short: 't',
458 type: {
459 name: 'selection',
460 data: [ 'collapse', 'basic', 'with space', 'with two spaces' ]
461 },
462 description: 'sel2 Desc',
463 defaultValue: 'collapse'
464 }
465 ]
466 }
467 ],
468 exec: createExec('tslong')
469 },
470 {
471 item: 'command',
472 name: 'tsdate',
473 description: 'long param tests to catch problems with the jsb command',
474 params: [
475 {
476 name: 'd1',
477 type: 'date',
478 },
479 {
480 name: 'd2',
481 type: {
482 name: 'date',
483 min: '1 jan 2000',
484 max: '28 feb 2000',
485 step: 2
486 }
487 },
488 ],
489 exec: createExec('tsdate')
490 },
491 {
492 item: 'command',
493 name: 'tsfail',
494 description: 'test errors',
495 params: [
496 {
497 name: 'method',
498 type: {
499 name: 'selection',
500 data: [
501 'reject', 'rejecttyped',
502 'throwerror', 'throwstring', 'throwinpromise',
503 'noerror'
504 ]
505 }
506 }
507 ],
508 exec: function(args, context) {
509 var deferred;
510 if (args.method === 'reject') {
511 deferred = context.defer();
512 setTimeout(function() {
513 deferred.reject('rejected promise');
514 }, 10);
515 return deferred.promise;
516 }
517
518 if (args.method === 'rejecttyped') {
519 deferred = context.defer();
520 setTimeout(function() {
521 deferred.reject(context.typedData('number', 54));
522 }, 10);
523 return deferred.promise;
524 }
525
526 if (args.method === 'throwinpromise') {
527 deferred = context.defer();
528 setTimeout(function() {
529 deferred.resolve('should be lost');
530 }, 10);
531 return deferred.promise.then(function() {
532 var t = null;
533 return t.foo;
534 });
535 }
536
537 if (args.method === 'throwerror') {
538 throw new Error('thrown error');
539 }
540
541 if (args.method === 'throwstring') {
542 throw 'thrown string';
543 }
544
545 return 'no error';
546 }
547 },
548 {
549 item: 'command',
550 name: 'tsfile',
551 description: 'test file params',
552 },
553 {
554 item: 'command',
555 name: 'tsfile open',
556 description: 'a file param in open mode',
557 params: [
558 {
559 name: 'p1',
560 type: {
561 name: 'file',
562 filetype: 'file',
563 existing: 'yes'
564 }
565 }
566 ],
567 exec: createExec('tsfile open')
568 },
569 {
570 item: 'command',
571 name: 'tsfile saveas',
572 description: 'a file param in saveas mode',
573 params: [
574 {
575 name: 'p1',
576 type: {
577 name: 'file',
578 filetype: 'file',
579 existing: 'no'
580 }
581 }
582 ],
583 exec: createExec('tsfile saveas')
584 },
585 {
586 item: 'command',
587 name: 'tsfile save',
588 description: 'a file param in save mode',
589 params: [
590 {
591 name: 'p1',
592 type: {
593 name: 'file',
594 filetype: 'file',
595 existing: 'maybe'
596 }
597 }
598 ],
599 exec: createExec('tsfile save')
600 },
601 {
602 item: 'command',
603 name: 'tsfile cd',
604 description: 'a file param in cd mode',
605 params: [
606 {
607 name: 'p1',
608 type: {
609 name: 'file',
610 filetype: 'directory',
611 existing: 'yes'
612 }
613 }
614 ],
615 exec: createExec('tsfile cd')
616 },
617 {
618 item: 'command',
619 name: 'tsfile mkdir',
620 description: 'a file param in mkdir mode',
621 params: [
622 {
623 name: 'p1',
624 type: {
625 name: 'file',
626 filetype: 'directory',
627 existing: 'no'
628 }
629 }
630 ],
631 exec: createExec('tsfile mkdir')
632 },
633 {
634 item: 'command',
635 name: 'tsfile rm',
636 description: 'a file param in rm mode',
637 params: [
638 {
639 name: 'p1',
640 type: {
641 name: 'file',
642 filetype: 'any',
643 existing: 'yes'
644 }
645 }
646 ],
647 exec: createExec('tsfile rm')
648 },
649 {
650 item: 'command',
651 name: 'tsslow',
652 params: [
653 {
654 name: 'hello',
655 type: {
656 name: 'selection',
657 data: function(context) {
658 var deferred = context.defer();
659
660 var resolve = function() {
661 deferred.resolve([
662 'Shalom', 'Namasté', 'Hallo', 'Dydd-da',
663 'Chào', 'Hej', 'Saluton', 'Sawubona'
664 ]);
665 };
666
667 setTimeout(resolve, 10);
668 return deferred.promise;
669 }
670 }
671 }
672 ],
673 exec: function(args, context) {
674 return 'Test completed';
675 }
676 }
677 ];

mercurial