1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/commandline/test/browser_gcli_history.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,87 @@ 1.4 +/* 1.5 + * Copyright 2012, Mozilla Foundation and contributors 1.6 + * 1.7 + * Licensed under the Apache License, Version 2.0 (the "License"); 1.8 + * you may not use this file except in compliance with the License. 1.9 + * You may obtain a copy of the License at 1.10 + * 1.11 + * http://www.apache.org/licenses/LICENSE-2.0 1.12 + * 1.13 + * Unless required by applicable law or agreed to in writing, software 1.14 + * distributed under the License is distributed on an "AS IS" BASIS, 1.15 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1.16 + * See the License for the specific language governing permissions and 1.17 + * limitations under the License. 1.18 + */ 1.19 + 1.20 +'use strict'; 1.21 +// <INJECTED SOURCE:START> 1.22 + 1.23 +// THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT 1.24 +// DO NOT EDIT IT DIRECTLY 1.25 + 1.26 +var exports = {}; 1.27 + 1.28 +var TEST_URI = "data:text/html;charset=utf-8,<p id='gcli-input'>gcli-testHistory.js</p>"; 1.29 + 1.30 +function test() { 1.31 + return Task.spawn(function() { 1.32 + let options = yield helpers.openTab(TEST_URI); 1.33 + yield helpers.openToolbar(options); 1.34 + gcli.addItems(mockCommands.items); 1.35 + 1.36 + yield helpers.runTests(options, exports); 1.37 + 1.38 + gcli.removeItems(mockCommands.items); 1.39 + yield helpers.closeToolbar(options); 1.40 + yield helpers.closeTab(options); 1.41 + }).then(finish, helpers.handleError); 1.42 +} 1.43 + 1.44 +// <INJECTED SOURCE:END> 1.45 + 1.46 +// var assert = require('../testharness/assert'); 1.47 +var History = require('gcli/ui/history').History; 1.48 + 1.49 +exports.testSimpleHistory = function (options) { 1.50 + var history = new History({}); 1.51 + history.add('foo'); 1.52 + history.add('bar'); 1.53 + assert.is(history.backward(), 'bar'); 1.54 + assert.is(history.backward(), 'foo'); 1.55 + 1.56 + // Adding to the history again moves us back to the start of the history. 1.57 + history.add('quux'); 1.58 + assert.is(history.backward(), 'quux'); 1.59 + assert.is(history.backward(), 'bar'); 1.60 + assert.is(history.backward(), 'foo'); 1.61 +}; 1.62 + 1.63 +exports.testBackwardsPastIndex = function (options) { 1.64 + var history = new History({}); 1.65 + history.add('foo'); 1.66 + history.add('bar'); 1.67 + assert.is(history.backward(), 'bar'); 1.68 + assert.is(history.backward(), 'foo'); 1.69 + 1.70 + // Moving backwards past recorded history just keeps giving you the last 1.71 + // item. 1.72 + assert.is(history.backward(), 'foo'); 1.73 +}; 1.74 + 1.75 +exports.testForwardsPastIndex = function (options) { 1.76 + var history = new History({}); 1.77 + history.add('foo'); 1.78 + history.add('bar'); 1.79 + assert.is(history.backward(), 'bar'); 1.80 + assert.is(history.backward(), 'foo'); 1.81 + 1.82 + // Going forward through the history again. 1.83 + assert.is(history.forward(), 'bar'); 1.84 + 1.85 + // 'Present' time. 1.86 + assert.is(history.forward(), ''); 1.87 + 1.88 + // Going to the 'future' just keeps giving us the empty string. 1.89 + assert.is(history.forward(), ''); 1.90 +};