diff options
Diffstat (limited to 'toolkit/devtools/commandline/test/browser_gcli_remotexhr.js')
-rw-r--r-- | toolkit/devtools/commandline/test/browser_gcli_remotexhr.js | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/toolkit/devtools/commandline/test/browser_gcli_remotexhr.js b/toolkit/devtools/commandline/test/browser_gcli_remotexhr.js new file mode 100644 index 000000000..b89b9d52b --- /dev/null +++ b/toolkit/devtools/commandline/test/browser_gcli_remotexhr.js @@ -0,0 +1,500 @@ +/* + * 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'; +// <INJECTED SOURCE:START> + +// THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT +// DO NOT EDIT IT DIRECTLY + +var exports = {}; + +var TEST_URI = "data:text/html;charset=utf-8,<p id='gcli-input'>gcli-testRemoteXhr.js</p>"; + +function test() { + return Task.spawn(function() { + let options = yield helpers.openTab(TEST_URI); + yield helpers.openToolbar(options); + gcli.addItems(mockCommands.items); + + yield helpers.runTests(options, exports); + + gcli.removeItems(mockCommands.items); + yield helpers.closeToolbar(options); + yield helpers.closeTab(options); + }).then(finish, helpers.handleError); +} + +// <INJECTED SOURCE:END> + +// var assert = require('../testharness/assert'); +// var helpers = require('./helpers'); + +// testRemoteWs and testRemoteXhr are virtually identical. +// Changes made here should be made there too. +// They are kept separate to save adding complexity to the test system and so +// to help us select the test that are available in different environments + +exports.testRemoteXhr = function(options) { + return helpers.audit(options, [ + { + skipRemainingIf: options.isRemote || options.isNode || options.isFirefox, + setup: 'remote ', + check: { + input: 'remote ', + hints: '', + markup: 'EEEEEEV', + cursor: 7, + current: '__command', + status: 'ERROR', + options: [ ], + message: 'Can\'t use \'remote\'.', + predictions: [ ], + unassigned: [ ], + } + }, + { + setup: 'connect remote', + check: { + args: { + prefix: { value: 'remote' }, + url: { value: undefined } + } + }, + exec: { + error: false + } + }, + { + setup: 'disconnect remote', + check: { + args: { + prefix: { + value: function(connection) { + assert.is(connection.prefix, 'remote', 'disconnecting remote'); + } + } + } + }, + exec: { + output: /^Removed [0-9]* commands.$/, + type: 'string', + error: false + } + }, + { + setup: 'connect remote --method xhr', + check: { + args: { + prefix: { value: 'remote' }, + url: { value: undefined } + } + }, + exec: { + error: false + } + }, + { + setup: 'disconnect remote', + check: { + args: { + prefix: { + value: function(connection) { + assert.is(connection.prefix, 'remote', 'disconnecting remote'); + } + } + } + }, + exec: { + output: /^Removed [0-9]* commands.$/, + type: 'string', + error: false + } + }, + { + setup: 'connect remote --method xhr', + check: { + args: { + prefix: { value: 'remote' }, + url: { value: undefined } + } + }, + exec: { + output: /^Added [0-9]* commands.$/, + type: 'string', + error: false + } + }, + { + setup: 'remote ', + check: { + input: 'remote ', + // PhantomJS fails on this. Unsure why + // hints: ' {', + markup: 'IIIIIIV', + status: 'ERROR', + optionsIncludes: [ + 'remote', 'remote cd', 'remote context', 'remote echo', + 'remote exec', 'remote exit', 'remote firefox', 'remote help', + 'remote intro', 'remote make' + ], + message: '', + predictionsIncludes: [ 'remote' ], + unassigned: [ ], + } + }, + { + setup: 'remote echo hello world', + check: { + input: 'remote echo hello world', + hints: '', + markup: 'VVVVVVVVVVVVVVVVVVVVVVV', + cursor: 23, + current: 'message', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'remote echo' }, + message: { + value: 'hello world', + arg: ' hello world', + status: 'VALID', + message: '' + } + } + }, + exec: { + output: 'hello world', + type: 'string', + error: false + } + }, + { + setup: 'remote exec ls', + check: { + input: 'remote exec ls', + hints: '', + markup: 'VVVVVVVVVVVVVV', + cursor: 14, + current: 'command', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { + value: 'ls', + arg: ' ls', + status: 'VALID', + message: '' + } + } + }, + exec: { + // output: '', We can't rely on the contents of the FS + type: 'output', + error: false + } + }, + { + setup: 'remote sleep mistake', + check: { + input: 'remote sleep mistake', + hints: '', + markup: 'VVVVVVVVVVVVVEEEEEEE', + cursor: 20, + current: 'length', + status: 'ERROR', + options: [ ], + message: 'Can\'t convert "mistake" to a number.', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'remote sleep' }, + length: { + value: undefined, + arg: ' mistake', + status: 'ERROR', + message: 'Can\'t convert "mistake" to a number.' + } + } + } + }, + { + setup: 'remote sleep 1', + check: { + input: 'remote sleep 1', + hints: '', + markup: 'VVVVVVVVVVVVVV', + cursor: 14, + current: 'length', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'remote sleep' }, + length: { value: 1, arg: ' 1', status: 'VALID', message: '' } + } + }, + exec: { + output: 'Done', + type: 'string', + error: false + } + }, + { + setup: 'remote help ', + skipIf: true, // The help command is not remotable + check: { + input: 'remote help ', + hints: '[search]', + markup: 'VVVVVVVVVVVV', + cursor: 12, + current: 'search', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'remote help' }, + search: { + value: undefined, + arg: '', + status: 'VALID', + message: '' + } + } + }, + exec: { + output: '', + type: 'string', + error: false + } + }, + { + setup: 'remote intro', + check: { + input: 'remote intro', + hints: '', + markup: 'VVVVVVVVVVVV', + cursor: 12, + current: '__command', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'remote intro' } + } + }, + exec: { + output: [ + /GCLI is an experiment/, + /F1\/Escape/ + ], + type: 'intro', + error: false + } + }, + { + setup: 'context remote', + check: { + input: 'context remote', + // hints: ' {', + markup: 'VVVVVVVVVVVVVV', + cursor: 14, + current: 'prefix', + status: 'VALID', + optionsContains: [ + 'remote', 'remote cd', 'remote echo', 'remote exec', 'remote exit', + 'remote firefox', 'remote help', 'remote intro', 'remote make' + ], + message: '', + // predictionsContains: [ + // 'remote', 'remote cd', 'remote echo', 'remote exec', 'remote exit', + // 'remote firefox', 'remote help', 'remote intro', 'remote make', + // 'remote pref' + // ], + unassigned: [ ], + args: { + command: { name: 'context' }, + prefix: { + arg: ' remote', + status: 'VALID', + message: '' + } + } + }, + exec: { + output: 'Using remote as a command prefix', + type: 'string', + error: false + } + }, + { + setup: 'exec ls', + check: { + input: 'exec ls', + hints: '', + markup: 'VVVVVVV', + cursor: 7, + current: 'command', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { value: 'ls', arg: ' ls', status: 'VALID', message: '' }, + } + }, + exec: { + // output: '', We can't rely on the contents of the filesystem + type: 'output', + error: false + } + }, + { + setup: 'echo hello world', + check: { + input: 'echo hello world', + hints: '', + markup: 'VVVVVVVVVVVVVVVV', + cursor: 16, + current: 'message', + status: 'VALID', + options: [ ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'remote echo' }, + message: { + value: 'hello world', + arg: ' hello world', + status: 'VALID', + message: '' + } + } + }, + exec: { + output: /^hello world$/, + type: 'string', + error: false + } + }, + { + setup: 'context', + check: { + input: 'context', + hints: ' [prefix]', + markup: 'VVVVVVV', + cursor: 7, + current: '__command', + status: 'VALID', + optionsContains: [ + 'remote', 'remote cd', 'remote echo', 'remote exec', 'remote exit', + 'remote firefox', 'remote help', 'remote intro', 'remote make' + ], + message: '', + predictions: [ ], + unassigned: [ ], + args: { + command: { name: 'context' }, + prefix: { value: undefined, arg: '', status: 'VALID', message: '' } + } + }, + exec: { + output: 'Command prefix is unset', + type: 'string', + error: false + } + }, + { + setup: 'disconnect ', + check: { + input: 'disconnect ', + hints: 'remote', + markup: 'VVVVVVVVVVV', + cursor: 11, + current: 'prefix', + status: 'ERROR', + options: [ 'remote' ], + message: '', + predictions: [ 'remote' ], + unassigned: [ ], + args: { + command: { name: 'disconnect' }, + prefix: { + value: undefined, + arg: '', + status: 'INCOMPLETE', + message: 'Value required for \'prefix\'.' + } + } + } + }, + { + setup: 'disconnect remote', + check: { + input: 'disconnect remote', + hints: '', + markup: 'VVVVVVVVVVVVVVVVV', + status: 'VALID', + message: '', + unassigned: [ ], + args: { + prefix: { + value: function(connection) { + assert.is(connection.prefix, 'remote', 'disconnecting remote'); + }, + arg: ' remote', + status: 'VALID', + message: '' + } + } + }, + exec: { + output: /^Removed [0-9]* commands.$/, + type: 'string', + error: false + } + }, + { + setup: 'remote ', + check: { + input: 'remote ', + hints: '', + markup: 'EEEEEEV', + cursor: 7, + current: '__command', + status: 'ERROR', + options: [ ], + message: 'Can\'t use \'remote\'.', + predictions: [ ], + unassigned: [ ], + } + } + ]); +}; |