mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bdc6d5a6aa
--HG-- extra : rebase_source : fa80556ba70d8eab3627998602e52d5edc3e3b98
360 lines
10 KiB
JavaScript
360 lines
10 KiB
JavaScript
/*
|
|
* Copyright 2009-2011 Mozilla Foundation and contributors
|
|
* Licensed under the New BSD license. See LICENSE.txt or:
|
|
* http://opensource.org/licenses/BSD-3-Clause
|
|
*/
|
|
|
|
// define(function(require, exports, module) {
|
|
|
|
// <INJECTED SOURCE:START>
|
|
|
|
// THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT
|
|
// DO NOT EDIT IT DIRECTLY
|
|
|
|
var exports = {};
|
|
|
|
const TEST_URI = "data:text/html;charset=utf-8,<p id='gcli-input'>gcli-testIncomplete.js</p>";
|
|
|
|
function test() {
|
|
var tests = Object.keys(exports);
|
|
// Push setup to the top and shutdown to the bottom
|
|
tests.sort(function(t1, t2) {
|
|
if (t1 == "setup" || t2 == "shutdown") return -1;
|
|
if (t2 == "setup" || t1 == "shutdown") return 1;
|
|
return 0;
|
|
});
|
|
info("Running tests: " + tests.join(", "))
|
|
tests = tests.map(function(test) { return exports[test]; });
|
|
DeveloperToolbarTest.test(TEST_URI, tests, true);
|
|
}
|
|
|
|
// <INJECTED SOURCE:END>
|
|
|
|
|
|
// var assert = require('test/assert');
|
|
// var helpers = require('gclitest/helpers');
|
|
// var mockCommands = require('gclitest/mockCommands');
|
|
|
|
|
|
exports.setup = function(options) {
|
|
mockCommands.setup();
|
|
helpers.setup(options);
|
|
};
|
|
|
|
exports.shutdown = function(options) {
|
|
mockCommands.shutdown();
|
|
helpers.shutdown(options);
|
|
};
|
|
|
|
exports.testBasic = function(options) {
|
|
var requisition = options.display.requisition;
|
|
|
|
helpers.setInput('tsu 2 extra');
|
|
helpers.check({
|
|
args: {
|
|
num: { value: 2, type: 'Argument' }
|
|
}
|
|
});
|
|
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');
|
|
|
|
helpers.setInput('tsu');
|
|
helpers.check({
|
|
args: {
|
|
num: { value: undefined, type: 'BlankArgument' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tsg');
|
|
helpers.check({
|
|
args: {
|
|
solo: { type: 'BlankArgument' },
|
|
txt1: { type: 'BlankArgument' },
|
|
bool: { type: 'BlankArgument' },
|
|
txt2: { type: 'BlankArgument' },
|
|
num: { type: 'BlankArgument' }
|
|
}
|
|
});
|
|
};
|
|
|
|
exports.testCompleted = function(options) {
|
|
helpers.setInput('tsela');
|
|
helpers.pressTab();
|
|
helpers.check({
|
|
args: {
|
|
command: { name: 'tselarr', type: 'Argument' },
|
|
num: { type: 'BlankArgument' },
|
|
arr: { type: 'ArrayArgument' },
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tsn dif ');
|
|
helpers.check({
|
|
input: 'tsn dif ',
|
|
hints: '<text>',
|
|
markup: 'VVVVVVVV',
|
|
cursor: 8,
|
|
status: 'ERROR',
|
|
args: {
|
|
command: { name: 'tsn dif', type: 'MergedArgument' },
|
|
text: { type: 'BlankArgument', status: 'INCOMPLETE' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tsn di');
|
|
helpers.pressTab();
|
|
helpers.check({
|
|
input: 'tsn dif ',
|
|
hints: '<text>',
|
|
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.
|
|
|
|
helpers.setInput('tsg -');
|
|
helpers.check({
|
|
input: 'tsg -',
|
|
hints: '-txt1 <solo> [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' }
|
|
}
|
|
});
|
|
|
|
helpers.pressTab();
|
|
helpers.check({
|
|
input: 'tsg --txt1 ',
|
|
hints: '<string> <solo> [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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tsg --txt1 fred');
|
|
helpers.check({
|
|
input: 'tsg --txt1 fred',
|
|
hints: ' <solo> [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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tscook key value --path path --');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tscook key value --path path --domain domain --');
|
|
helpers.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) {
|
|
helpers.setInput('tsg AA');
|
|
helpers.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) {
|
|
var requisition = options.display.requisition;
|
|
|
|
helpers.setInput('tsm a a -');
|
|
helpers.check({
|
|
args: {
|
|
abc: { value: 'a', type: 'Argument' },
|
|
txt: { value: 'a', type: 'Argument' },
|
|
num: { value: undefined, arg: ' -', type: 'Argument', status: 'INCOMPLETE' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tsg -');
|
|
helpers.check({
|
|
args: {
|
|
solo: { type: 'BlankArgument' },
|
|
txt1: { type: 'BlankArgument' },
|
|
bool: { type: 'BlankArgument' },
|
|
txt2: { type: 'BlankArgument' },
|
|
num: { type: 'BlankArgument' }
|
|
}
|
|
});
|
|
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.testHidden = function(options) {
|
|
helpers.setInput('tshidde');
|
|
helpers.check({
|
|
input: 'tshidde',
|
|
hints: ' -> tse',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('tshidden');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --vis');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --invisiblestrin');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --invisiblestring');
|
|
helpers.check({
|
|
input: 'tshidden --invisiblestring',
|
|
hints: ' <string> [options]',
|
|
markup: 'VVVVVVVVVIIIIIIIIIIIIIIIII',
|
|
status: 'ERROR',
|
|
args: {
|
|
visible: { value: undefined, status: 'VALID' },
|
|
invisiblestring: { value: undefined, status: 'INCOMPLETE' },
|
|
invisibleboolean: { value: false, status: 'VALID' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --invisiblestring x');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --invisibleboolea');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --invisibleboolean');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
|
|
helpers.setInput('tshidden --visible xxx');
|
|
helpers.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' }
|
|
}
|
|
});
|
|
};
|
|
|
|
// });
|