diff options
Diffstat (limited to 'browser/devtools/commandline/test/browser_gcli_async.js')
-rw-r--r-- | browser/devtools/commandline/test/browser_gcli_async.js | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/browser/devtools/commandline/test/browser_gcli_async.js b/browser/devtools/commandline/test/browser_gcli_async.js new file mode 100644 index 000000000..172f0bf00 --- /dev/null +++ b/browser/devtools/commandline/test/browser_gcli_async.js @@ -0,0 +1,169 @@ +/* + * 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-testAsync.js</p>"; + +function test() { + helpers.addTabWithToolbar(TEST_URI, function(options) { + return helpers.runTests(options, exports); + }).then(finish); +} + +// <INJECTED SOURCE:END> + +'use strict'; + +// var helpers = require('gclitest/helpers'); +var canon = require('gcli/canon'); +var Promise = require('util/promise'); + +exports.testBasic = function(options) { + var getData = function() { + var deferred = Promise.defer(); + + var resolve = function() { + deferred.resolve([ + 'Shalom', 'Namasté', 'Hallo', 'Dydd-da', + 'Chào', 'Hej', 'Saluton', 'Sawubona' + ]); + }; + + setTimeout(resolve, 10); + return deferred.promise; + }; + + var tsslow = { + name: 'tsslow', + params: [ + { + name: 'hello', + type: { + name: 'selection', + data: getData + } + } + ], + exec: function(args, context) { + return 'Test completed'; + } + }; + + canon.addCommand(tsslow); + + return helpers.audit(options, [ + { + setup: 'tsslo', + check: { + input: 'tsslo', + hints: 'w', + markup: 'IIIII', + cursor: 5, + current: '__command', + status: 'ERROR', + predictions: ['tsslow'], + unassigned: [ ] + } + }, + { + setup: 'tsslo<TAB>', + check: { + input: 'tsslow ', + hints: 'Shalom', + markup: 'VVVVVVV', + cursor: 7, + current: 'hello', + status: 'ERROR', + predictions: [ + 'Shalom', 'Namasté', 'Hallo', 'Dydd-da', 'Chào', 'Hej', + 'Saluton', 'Sawubona' + ], + unassigned: [ ], + tooltipState: 'true:importantFieldFlag', + args: { + command: { name: 'tsslow' }, + hello: { + value: undefined, + arg: '', + status: 'INCOMPLETE', + message: '' + }, + } + } + }, + { + setup: 'tsslow S', + check: { + input: 'tsslow S', + hints: 'halom', + markup: 'VVVVVVVI', + cursor: 8, + current: 'hello', + status: 'ERROR', + predictions: [ 'Shalom', 'Saluton', 'Sawubona', 'Namasté' ], + unassigned: [ ], + tooltipState: 'true:importantFieldFlag', + args: { + command: { name: 'tsslow' }, + hello: { + value: undefined, + arg: ' S', + status: 'INCOMPLETE', + message: '' + }, + } + } + }, + { + skipIf: options.isJsdom, + setup: 'tsslow S<TAB>', + check: { + input: 'tsslow Shalom ', + hints: '', + markup: 'VVVVVVVVVVVVVV', + cursor: 14, + current: 'hello', + status: 'VALID', + predictions: [ 'Shalom' ], + unassigned: [ ], + tooltipState: 'true:importantFieldFlag', + args: { + command: { name: 'tsslow' }, + hello: { + value: 'Shalom', + arg: ' Shalom ', + status: 'VALID', + message: '' + }, + } + }, + post: function() { + canon.removeCommand(tsslow); + } + }, + { + skipIf: options.isJsdom, + setup: 'tsslow ', + check: { + input: 'tsslow ', + markup: 'EEEEEEV', + cursor: 7, + status: 'ERROR' + } + } + ]); +}; + + +// }); |