Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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 */
17 'use strict';
18 // <INJECTED SOURCE:START>
20 // THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT
21 // DO NOT EDIT IT DIRECTLY
23 var exports = {};
25 var TEST_URI = "data:text/html;charset=utf-8,<p id='gcli-input'>gcli-testInputter.js</p>";
27 function test() {
28 return Task.spawn(function() {
29 let options = yield helpers.openTab(TEST_URI);
30 yield helpers.openToolbar(options);
31 gcli.addItems(mockCommands.items);
33 yield helpers.runTests(options, exports);
35 gcli.removeItems(mockCommands.items);
36 yield helpers.closeToolbar(options);
37 yield helpers.closeTab(options);
38 }).then(finish, helpers.handleError);
39 }
41 // <INJECTED SOURCE:END>
43 // var assert = require('../testharness/assert');
44 var KeyEvent = require('gcli/util/util').KeyEvent;
46 var latestEvent;
47 var latestData;
49 var outputted = function(ev) {
50 latestEvent = ev;
52 ev.output.promise.then(function() {
53 latestData = ev.output.data;
54 });
55 };
58 exports.setup = function(options) {
59 options.requisition.commandOutputManager.onOutput.add(outputted);
60 };
62 exports.shutdown = function(options) {
63 options.requisition.commandOutputManager.onOutput.remove(outputted);
64 };
66 exports.testOutput = function(options) {
67 latestEvent = undefined;
68 latestData = undefined;
70 var terminal = options.terminal;
71 if (!terminal) {
72 assert.log('Skipping testInputter.testOutput due to lack of terminal.');
73 return;
74 }
76 var focusManager = terminal.focusManager;
78 terminal.setInput('tss');
80 var ev0 = { keyCode: KeyEvent.DOM_VK_RETURN };
81 terminal.onKeyDown(ev0);
83 assert.is(terminal.getInputState().typed,
84 'tss',
85 'terminal should do nothing on RETURN keyDown');
86 assert.is(latestEvent, undefined, 'no events this test');
87 assert.is(latestData, undefined, 'no data this test');
89 var ev1 = { keyCode: KeyEvent.DOM_VK_RETURN };
90 return terminal.handleKeyUp(ev1).then(function() {
91 assert.ok(latestEvent != null, 'events this test');
92 assert.is(latestData, 'Exec: tss ', 'last command is tss');
94 assert.is(terminal.getInputState().typed,
95 '',
96 'terminal should exec on RETURN keyUp');
98 assert.ok(focusManager._recentOutput, 'recent output happened');
100 var ev2 = { keyCode: KeyEvent.DOM_VK_F1 };
101 return terminal.handleKeyUp(ev2).then(function() {
102 assert.ok(!focusManager._recentOutput, 'no recent output happened post F1');
103 assert.ok(focusManager._helpRequested, 'F1 = help');
105 var ev3 = { keyCode: KeyEvent.DOM_VK_ESCAPE };
106 return terminal.handleKeyUp(ev3).then(function() {
107 assert.ok(!focusManager._helpRequested, 'ESCAPE = anti help');
108 });
109 });
111 });
112 };