Files
palemoon27/toolkit/devtools/commandline/test/mockCommands.js
T
roytam1 7624030fbf import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1055181 - CSS Filter Tooltip; r=pbrosset (327b035a7)
- Bug 1137238 - Fix toolboxes when switching between apps in WebIDE. r=jryans (1a333bdfa)
- Bug 1138939 - Notify when WebIDE has finished initializing so that Valence can register runtime scanners. r=ochameau (7fe61c384)
- Don't let WebIDE break when trying to debug Chrome settings (bug 1134619). r=ochameau (4a18f048e)
- fix imports since devtools are in a different path compared to FF (15c2a1e70)
- port bits of Bug 916804 - Telemetry for WebIDE. (cf5b49ca7)
- Bug 1042859 - Ignore host port when fetching cookies with the gcli cookie command. r=pbrosset (1e6217f76)
- fix include path (6efaacd7a)
- Bug 1128988 - runAt support for commands/converters; r=bgrins (bed6cb594)
- Bug 1143027 - The performance tool tab highlights during a recording. r=vp (e1f310e2d)
- missing pieces of Bug 1141817 - Followup to fix additional intermittents and Bug 1142748 - Fix the 'Protocol error (unknownError) (b27da36af)
- Bug 1159480 - Pull out actor-specific logic from Performance Front. r=vp (9c253604b)
- Bug 1156499 - Disable all non-profiler/fps components in the performance tools when in aurora, for 40.0 release. r=vp (041a0fa34)
- Bug 1159052 - Performance recording should stop rendering and recording as soon as the recording stops. r=vp (2a9f093b4)
- Bug 114187 - Add getBufferInfo to devtools profiler actor. r=fitzgen (00496e8e4)
- Bug 1145187 - Implement polling for buffer status on performance actor facades. r=vp (ae2cbac27)
- Bug 1082695 - Simplify the record start/stop time buttons, and more cleanly render the console.profile notifications during a console recording. r=vp (dfe9a9b26)
- Bug 1160900 - Display buffer status while recording a profile. r=vp (c3d302a62)
- Bug 1154115 - Add adapter that deduplicates old, undeduplicated profiles in the frontend. (r=jsantell,vporof) (aa1bd6769)
- Bug 1160696 - Display MIRTypes in the JIT optimizations side pane as "Site : MIRType". (r=jsantell) (beccaed3d)
- Bug 1154115 - Make the memory stuff in the performance devtool synthesize the new profiler JSON format. (r=jsantell) (685e3a576)
- Bug 1154115 - Fix nsIProfiler xpcshell tests to use the new profiler JSON format. (r=me) (da2a18c89)
- Bug 1151526 - Do not display optimization data for meta-platform frames in the profiler. r=vporof (d4cc514ca)
- Bug 1154115 - Fix devtools tests to use the new profiler JSON format. (r=jsantell) (61a9064ce)
- Bug 1126432: Set preference toggle to switch to new WebIDE project listing layout r=jryans (825831eeb)
- Bug 1130084 - Avoid spurious connection errors even on success. r=past (1911930b6)
- missing bits of Bug 1069552 - Add WebIDE scanner / runtime API. (773111b87)
- Bug 1130084 - Allow runtimes to take infinite time to connect. r=past (a1482c500)
- Bug 1025311 - Add telemetry for canvas debugger. r=vp,miker (d2f8d51f2)
- Bug 1134778 - Consolidate usages of view sourcing in tools with a source-utils module. r=vp,jryans (1432dfac1)
- Bug 1167230 - Use nsCString instead of std::string in FrameKey in the profiler. (r=mstange) (9a3d84b86)
- Bug 1166492 - Handle huge strings in the profile JSON writer. (r=mstange) (3d6f90062)
- Bug 1166492 - Remove dead code in the ProfileBuffer and ThreadProfile. (r=mstange) (cc8e81dd3)
- Bug 1166492 - Return UniquePtr<char[]> from profiler_get_profile to avoid double copying. (r=mstange) (f9d58d5cf)
- Bug 1167230 - Don't pack ProfileEntry on ARM. r=shu (b6f920dd3)
- Bug 1168784 - Part 1: Fix the script merging profiles to handle new profiler JSON format. r=benwa (dd1008084)
- Bug 1090949 - Add `nextTick()` to `lazyIframeIsLoaded()` in WebIDE tests. r=ochameau (94bf972da)
- Bug 1143028 - Make AppMan reinitable; update tab list when sidebars disabled. r=past (1020f8306)
- Bug 1146542 - Clean up and describe app-manager events. r=ochameau (cc4bcadf5)
- Bug 1146542 - Restore tab list changes for non-sidebar case. r=ochameau (531b70e41)
- Bug 1149820 - Restore WebIDE project auto select. r=ochameau (d0526612a)
- Bug 1135018 - Move getjson from webide/ to shared/. r=jryans (9e405c1bf)
- Bug 1135018 - Make devices.js use a CDN. r=ochameau (16adb49c4)
- Bug 1090949 - Make WebIDE's Firefox OS Simulators configurable. r=ochameau (354331a6e)
- Bug 1157201 - Prevent exception while hovering the rule-view. r=pbrosset (4ec81d85b)
2020-09-04 21:16:47 +08:00

797 lines
17 KiB
JavaScript

/*
* 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
var Promise = require('gcli/util/promise').Promise;
var mockCommands;
if (typeof exports !== 'undefined') {
// If we're being loaded via require();
mockCommands = exports;
}
else {
// If we're being loaded via loadScript in mochitest
mockCommands = {};
}
// We use an alias for exports here because this module is used in Firefox
// mochitests where we don't have define/require
/**
* Registration and de-registration.
*/
mockCommands.setup = function(requisition) {
requisition.system.addItems(mockCommands.items);
};
mockCommands.shutdown = function(requisition) {
requisition.system.removeItems(mockCommands.items);
};
function createExec(name) {
return function(args, context) {
var promises = [];
Object.keys(args).map(function(argName) {
var value = args[argName];
var type = this.getParameterByName(argName).type;
var promise = Promise.resolve(type.stringify(value, context));
promises.push(promise.then(function(str) {
return { name: argName, value: str };
}.bind(this)));
}.bind(this));
return Promise.all(promises).then(function(data) {
var argValues = {};
data.forEach(function(entry) { argValues[entry.name] = entry.value; });
return context.typedData('testCommandOutput', {
name: name,
args: argValues
});
}.bind(this));
};
}
mockCommands.items = [
{
item: 'converter',
from: 'testCommandOutput',
to: 'dom',
exec: function(testCommandOutput, context) {
var view = context.createView({
data: testCommandOutput,
html: '' +
'<table>' +
'<thead>' +
'<tr>' +
'<th colspan="3">Exec: ${name}</th>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr foreach="key in ${args}">' +
'<td> ${key}</td>' +
'<td>=</td>' +
'<td>${args[key]}</td>' +
'</tr>' +
'</tbody>' +
'</table>',
options: {
allowEval: true
}
});
return view.toDom(context.document);
}
},
{
item: 'converter',
from: 'testCommandOutput',
to: 'string',
exec: function(testCommandOutput, context) {
var argsOut = Object.keys(testCommandOutput.args).map(function(key) {
return key + '=' + testCommandOutput.args[key];
}).join(' ');
return 'Exec: ' + testCommandOutput.name + ' ' + argsOut;
}
},
{
item: 'type',
name: 'optionType',
parent: 'selection',
lookup: [
{
name: 'option1',
value: 'string'
},
{
name: 'option2',
value: 'number'
},
{
name: 'option3',
value: {
name: 'selection',
lookup: [
{ name: 'one', value: 1 },
{ name: 'two', value: 2 },
{ name: 'three', value: 3 }
]
}
}
]
},
{
item: 'type',
name: 'optionValue',
parent: 'delegate',
delegateType: function(executionContext) {
if (executionContext != null) {
var option = executionContext.getArgsObject().optionType;
if (option != null) {
return option;
}
}
return 'blank';
}
},
{
item: 'command',
name: 'tsv',
params: [
{ name: 'optionType', type: 'optionType' },
{ name: 'optionValue', type: 'optionValue' }
],
exec: createExec('tsv')
},
{
item: 'command',
name: 'tsr',
params: [ { name: 'text', type: 'string' } ],
exec: createExec('tsr')
},
{
item: 'command',
name: 'tsrsrsr',
params: [
{ name: 'p1', type: 'string' },
{ name: 'p2', type: 'string' },
{ name: 'p3', type: { name: 'string', allowBlank: true} },
],
exec: createExec('tsrsrsr')
},
{
item: 'command',
name: 'tso',
params: [ { name: 'text', type: 'string', defaultValue: null } ],
exec: createExec('tso')
},
{
item: 'command',
name: 'tse',
params: [
{ name: 'node', type: 'node' },
{
group: 'options',
params: [
{ name: 'nodes', type: { name: 'nodelist' } },
{ name: 'nodes2', type: { name: 'nodelist', allowEmpty: true } }
]
}
],
exec: createExec('tse')
},
{
item: 'command',
name: 'tsj',
params: [ { name: 'javascript', type: 'javascript' } ],
exec: createExec('tsj')
},
{
item: 'command',
name: 'tsb',
params: [ { name: 'toggle', type: 'boolean' } ],
exec: createExec('tsb')
},
{
item: 'command',
name: 'tss',
exec: createExec('tss')
},
{
item: 'command',
name: 'tsu',
params: [
{
name: 'num',
type: {
name: 'number',
max: 10,
min: -5,
step: 3
}
}
],
exec: createExec('tsu')
},
{
item: 'command',
name: 'tsf',
params: [
{
name: 'num',
type: {
name: 'number',
allowFloat: true,
max: 11.5,
min: -6.5,
step: 1.5
}
}
],
exec: createExec('tsf')
},
{
item: 'command',
name: 'tsn'
},
{
item: 'command',
name: 'tsn dif',
params: [ { name: 'text', type: 'string', description: 'tsn dif text' } ],
exec: createExec('tsnDif')
},
{
item: 'command',
name: 'tsn hidden',
hidden: true,
exec: createExec('tsnHidden')
},
{
item: 'command',
name: 'tsn ext',
params: [ { name: 'text', type: 'string' } ],
exec: createExec('tsnExt')
},
{
item: 'command',
name: 'tsn exte',
params: [ { name: 'text', type: 'string' } ],
exec: createExec('tsnExte')
},
{
item: 'command',
name: 'tsn exten',
params: [ { name: 'text', type: 'string' } ],
exec: createExec('tsnExten')
},
{
item: 'command',
name: 'tsn extend',
params: [ { name: 'text', type: 'string' } ],
exec: createExec('tsnExtend')
},
{
item: 'command',
name: 'tsn deep'
},
{
item: 'command',
name: 'tsn deep down'
},
{
item: 'command',
name: 'tsn deep down nested'
},
{
item: 'command',
name: 'tsn deep down nested cmd',
exec: createExec('tsnDeepDownNestedCmd')
},
{
item: 'command',
name: 'tshidden',
hidden: true,
params: [
{
group: 'Options',
params: [
{
name: 'visible',
type: 'string',
short: 'v',
defaultValue: null,
description: 'visible'
},
{
name: 'invisiblestring',
type: 'string',
short: 'i',
description: 'invisiblestring',
defaultValue: null,
hidden: true
},
{
name: 'invisibleboolean',
short: 'b',
type: 'boolean',
description: 'invisibleboolean',
hidden: true
}
]
}
],
exec: createExec('tshidden')
},
{
item: 'command',
name: 'tselarr',
params: [
{ name: 'num', type: { name: 'selection', data: [ '1', '2', '3' ] } },
{ name: 'arr', type: { name: 'array', subtype: 'string' } }
],
exec: createExec('tselarr')
},
{
item: 'command',
name: 'tsm',
description: 'a 3-param test selection|string|number',
params: [
{ name: 'abc', type: { name: 'selection', data: [ 'a', 'b', 'c' ] } },
{ name: 'txt', type: 'string' },
{ name: 'num', type: { name: 'number', max: 42, min: 0 } }
],
exec: createExec('tsm')
},
{
item: 'command',
name: 'tsg',
description: 'a param group test',
params: [
{
name: 'solo',
type: { name: 'selection', data: [ 'aaa', 'bbb', 'ccc' ] },
description: 'solo param'
},
{
group: 'First',
params: [
{
name: 'txt1',
type: 'string',
defaultValue: null,
description: 'txt1 param'
},
{
name: 'bool',
type: 'boolean',
description: 'bool param'
}
]
},
{
name: 'txt2',
type: 'string',
defaultValue: 'd',
description: 'txt2 param',
option: 'Second'
},
{
name: 'num',
type: { name: 'number', min: 40 },
defaultValue: 42,
description: 'num param',
option: 'Second'
}
],
exec: createExec('tsg')
},
{
item: 'command',
name: 'tscook',
description: 'param group test to catch problems with cookie command',
params: [
{
name: 'key',
type: 'string',
description: 'tscookKeyDesc'
},
{
name: 'value',
type: 'string',
description: 'tscookValueDesc'
},
{
group: 'tscookOptionsDesc',
params: [
{
name: 'path',
type: 'string',
defaultValue: '/',
description: 'tscookPathDesc'
},
{
name: 'domain',
type: 'string',
defaultValue: null,
description: 'tscookDomainDesc'
},
{
name: 'secure',
type: 'boolean',
description: 'tscookSecureDesc'
}
]
}
],
exec: createExec('tscook')
},
{
item: 'command',
name: 'tslong',
description: 'long param tests to catch problems with the jsb command',
params: [
{
name: 'msg',
type: 'string',
description: 'msg Desc'
},
{
group: 'Options Desc',
params: [
{
name: 'num',
short: 'n',
type: 'number',
description: 'num Desc',
defaultValue: 2
},
{
name: 'sel',
short: 's',
type: {
name: 'selection',
lookup: [
{ name: 'space', value: ' ' },
{ name: 'tab', value: '\t' }
]
},
description: 'sel Desc',
defaultValue: ' '
},
{
name: 'bool',
short: 'b',
type: 'boolean',
description: 'bool Desc'
},
{
name: 'num2',
short: 'm',
type: 'number',
description: 'num2 Desc',
defaultValue: -1
},
{
name: 'bool2',
short: 'c',
type: 'boolean',
description: 'bool2 Desc'
},
{
name: 'sel2',
short: 't',
type: {
name: 'selection',
data: [ 'collapse', 'basic', 'with space', 'with two spaces' ]
},
description: 'sel2 Desc',
defaultValue: 'collapse'
}
]
}
],
exec: createExec('tslong')
},
{
item: 'command',
name: 'tsdate',
description: 'long param tests to catch problems with the jsb command',
params: [
{
name: 'd1',
type: 'date',
},
{
name: 'd2',
type: {
name: 'date',
min: '1 jan 2000',
max: '28 feb 2000',
step: 2
}
},
],
exec: createExec('tsdate')
},
{
item: 'command',
name: 'tsfail',
description: 'test errors',
params: [
{
name: 'method',
type: {
name: 'selection',
data: [
'reject', 'rejecttyped',
'throwerror', 'throwstring', 'throwinpromise',
'noerror'
]
}
}
],
exec: function(args, context) {
if (args.method === 'reject') {
return new Promise(function(resolve, reject) {
context.environment.window.setTimeout(function() {
reject('rejected promise');
}, 10);
});
}
if (args.method === 'rejecttyped') {
return new Promise(function(resolve, reject) {
context.environment.window.setTimeout(function() {
reject(context.typedData('number', 54));
}, 10);
});
}
if (args.method === 'throwinpromise') {
return new Promise(function(resolve, reject) {
context.environment.window.setTimeout(function() {
resolve('should be lost');
}, 10);
}).then(function() {
var t = null;
return t.foo;
});
}
if (args.method === 'throwerror') {
throw new Error('thrown error');
}
if (args.method === 'throwstring') {
throw 'thrown string';
}
return 'no error';
}
},
{
item: 'command',
name: 'tsfile',
description: 'test file params',
},
{
item: 'command',
name: 'tsfile open',
description: 'a file param in open mode',
params: [
{
name: 'p1',
type: {
name: 'file',
filetype: 'file',
existing: 'yes'
}
}
],
exec: createExec('tsfile open')
},
{
item: 'command',
name: 'tsfile saveas',
description: 'a file param in saveas mode',
params: [
{
name: 'p1',
type: {
name: 'file',
filetype: 'file',
existing: 'no'
}
}
],
exec: createExec('tsfile saveas')
},
{
item: 'command',
name: 'tsfile save',
description: 'a file param in save mode',
params: [
{
name: 'p1',
type: {
name: 'file',
filetype: 'file',
existing: 'maybe'
}
}
],
exec: createExec('tsfile save')
},
{
item: 'command',
name: 'tsfile cd',
description: 'a file param in cd mode',
params: [
{
name: 'p1',
type: {
name: 'file',
filetype: 'directory',
existing: 'yes'
}
}
],
exec: createExec('tsfile cd')
},
{
item: 'command',
name: 'tsfile mkdir',
description: 'a file param in mkdir mode',
params: [
{
name: 'p1',
type: {
name: 'file',
filetype: 'directory',
existing: 'no'
}
}
],
exec: createExec('tsfile mkdir')
},
{
item: 'command',
name: 'tsfile rm',
description: 'a file param in rm mode',
params: [
{
name: 'p1',
type: {
name: 'file',
filetype: 'any',
existing: 'yes'
}
}
],
exec: createExec('tsfile rm')
},
{
item: 'command',
name: 'tsslow',
params: [
{
name: 'hello',
type: {
name: 'selection',
data: function(context) {
return new Promise(function(resolve, reject) {
context.environment.window.setTimeout(function() {
resolve([
'Shalom', 'Namasté', 'Hallo', 'Dydd-da',
'Chào', 'Hej', 'Saluton', 'Sawubona'
]);
}, 10);
});
}
}
}
],
exec: function(args, context) {
return 'Test completed';
}
},
{
item: 'command',
name: 'urlc',
params: [
{
name: 'url',
type: 'url'
}
],
returnType: 'json',
exec: function(args, context) {
return args;
}
},
{
item: 'command',
name: 'unionc1',
params: [
{
name: 'first',
type: {
name: 'union',
alternatives: [
{
name: 'selection',
lookup: [
{ name: 'one', value: 1 },
{ name: 'two', value: 2 },
]
},
'number',
{ name: 'string' }
]
}
}
],
returnType: 'json',
exec: function(args, context) {
return args;
}
},
{
item: 'command',
name: 'unionc2',
params: [
{
name: 'first',
type: {
name: 'union',
alternatives: [
{
name: 'selection',
lookup: [
{ name: 'one', value: 1 },
{ name: 'two', value: 2 },
]
},
{
name: 'url'
}
]
}
}
],
returnType: 'json',
exec: function(args, context) {
return args;
}
},
{
item: 'command',
name: 'tsres',
params: [
{
name: 'resource',
type: 'resource'
}
],
exec: createExec('tsres'),
}
];