| Index: remoting/webapp/unittests/host_table_entry_unittest.js
|
| diff --git a/remoting/webapp/unittests/host_table_entry_unittest.js b/remoting/webapp/unittests/host_table_entry_unittest.js
|
| deleted file mode 100644
|
| index 9f36d78daf25048ced4c89d497e60ee599dcd62e..0000000000000000000000000000000000000000
|
| --- a/remoting/webapp/unittests/host_table_entry_unittest.js
|
| +++ /dev/null
|
| @@ -1,198 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -(function() {
|
| -
|
| -'use strict';
|
| -
|
| -/** @type {remoting.HostTableEntry} */
|
| -var hostTableEntry_ = null;
|
| -var onConnect_ = null;
|
| -var onRename_ = null;
|
| -var onDelete_ = null;
|
| -
|
| -module('HostTableEntry', {
|
| - setup: function() {
|
| - onConnect_ = /** @type {function(string)} */ (sinon.spy());
|
| - onRename_ = /** @type {function(remoting.HostTableEntry)} */ (sinon.spy());
|
| - onDelete_ = /** @type {function(remoting.HostTableEntry)} */ (sinon.spy());
|
| - hostTableEntry_ =
|
| - new remoting.HostTableEntry(10,
|
| - onConnect_, onRename_, onDelete_);
|
| -
|
| - // Setup the DOM dependencies on the confirm delete dialog.
|
| - var fixture = document.getElementById('qunit-fixture');
|
| - fixture.innerHTML = '<div id="confirm-host-delete-message"></div>' +
|
| - '<div id="confirm-host-delete"></div>' +
|
| - '<div id="cancel-host-delete"></div>';
|
| - setHost('LocalHost', 'ONLINE');
|
| - fixture.appendChild(hostTableEntry_.element());
|
| - sinon.stub(chrome.i18n, 'getMessage', function(/** string */ tag){
|
| - return tag;
|
| - });
|
| - },
|
| - teardown: function() {
|
| - hostTableEntry_.dispose();
|
| - hostTableEntry_ = null;
|
| - $testStub(chrome.i18n.getMessage).restore();
|
| - }
|
| -});
|
| -
|
| -/**
|
| - * @param {string} hostName
|
| - * @param {string} status
|
| - * @param {string=} opt_offlineReason
|
| - */
|
| -function setHost(hostName, status, opt_offlineReason) {
|
| - var host = new remoting.Host();
|
| - host.hostName = hostName;
|
| - host.status = status;
|
| - if (opt_offlineReason) {
|
| - host.hostOfflineReason = opt_offlineReason;
|
| - }
|
| - hostTableEntry_.setHost(host);
|
| -}
|
| -
|
| -
|
| -/** @suppress {checkTypes|reportUnknownTypes} */
|
| -function sendKeydown(/** HTMLElement */ target, /** number */ keyCode) {
|
| - var event = document.createEvent('KeyboardEvent');
|
| - Object.defineProperty(
|
| - event, 'which', {get: function() { return keyCode; }});
|
| - event.initKeyboardEvent("keydown", true, true, document.defaultView,
|
| - false, false, false, false, keyCode, keyCode);
|
| - target.dispatchEvent(event);
|
| -}
|
| -
|
| -function verifyVisible(
|
| - /** HTMLElement*/ element,
|
| - /** boolean */ isVisible,
|
| - /** string= */ opt_name) {
|
| - var expectedVisibility = (isVisible) ? 'visible' : 'hidden';
|
| - QUnit.equal(element.hidden, !isVisible,
|
| - 'Element ' + opt_name + ' should be ' + expectedVisibility);
|
| -}
|
| -
|
| -test('Clicking on the confirm button in the confirm dialog deletes the host',
|
| - function() {
|
| - // Setup.
|
| - sinon.stub(remoting, 'setMode', function(/** remoting.AppMode */ mode) {
|
| - if (mode === remoting.AppMode.CONFIRM_HOST_DELETE) {
|
| - document.getElementById('confirm-host-delete').click();
|
| - }
|
| - });
|
| -
|
| - // Invoke.
|
| - hostTableEntry_.element().querySelector('.delete-button').click();
|
| -
|
| - // Verify.
|
| - sinon.assert.calledWith(onDelete_, hostTableEntry_);
|
| -
|
| - // Cleanup.
|
| - $testStub(remoting.setMode).restore();
|
| -});
|
| -
|
| -test(
|
| - 'Clicking on the cancel button in the confirm dialog cancels host deletion',
|
| - function() {
|
| - // Setup.
|
| - sinon.stub(remoting, 'setMode', function(/** remoting.AppMode */ mode) {
|
| - if (mode === remoting.AppMode.CONFIRM_HOST_DELETE) {
|
| - document.getElementById('cancel-host-delete').click();
|
| - }
|
| - });
|
| -
|
| - // Invoke.
|
| - hostTableEntry_.element().querySelector('.delete-button').click();
|
| -
|
| - // Verify.
|
| - sinon.assert.notCalled(onDelete_);
|
| -
|
| - // Cleanup.
|
| - $testStub(remoting.setMode).restore();
|
| -});
|
| -
|
| -test('Clicking on the rename button shows the input field.', function() {
|
| - // Invoke.
|
| - hostTableEntry_.element().querySelector('.rename-button').click();
|
| -
|
| - // Verify.
|
| - var inputField =
|
| - hostTableEntry_.element().querySelector('.host-rename-input');
|
| -
|
| - verifyVisible(inputField, true, 'inputField');
|
| - QUnit.equal(document.activeElement, inputField);
|
| -});
|
| -
|
| -test('Host renaming is canceled on ESCAPE key.', function() {
|
| - // Invoke.
|
| - var inputField =
|
| - hostTableEntry_.element().querySelector('.host-rename-input');
|
| - hostTableEntry_.element().querySelector('.rename-button').click();
|
| -
|
| - // Verify.
|
| - verifyVisible(inputField, true, 'inputField');
|
| - QUnit.equal(document.activeElement, inputField);
|
| - sendKeydown(inputField, 27 /* ESCAPE */);
|
| - verifyVisible(inputField, false, 'inputField');
|
| -});
|
| -
|
| -test('Host renaming commits on ENTER.', function() {
|
| - // Invoke.
|
| - var inputField =
|
| - hostTableEntry_.element().querySelector('.host-rename-input');
|
| - hostTableEntry_.element().querySelector('.rename-button').click();
|
| - inputField.value = 'Renamed Host';
|
| - sendKeydown(inputField, 13 /* ENTER */);
|
| -
|
| - // Verify
|
| - verifyVisible(inputField, false, 'inputField');
|
| - sinon.assert.called(onRename_);
|
| - QUnit.equal(hostTableEntry_.host.hostName, 'Renamed Host');
|
| -
|
| - // Renaming shouldn't trigger a connection request.
|
| - sinon.assert.notCalled(onConnect_);
|
| -});
|
| -
|
| -test('HostTableEntry renders the host name correctly.', function() {
|
| - var label = hostTableEntry_.element().querySelector('.host-name-label');
|
| - QUnit.equal(label.innerText, 'LocalHost');
|
| -});
|
| -
|
| -test('HostTableEntry renders an offline host correctly.', function() {
|
| - setHost('LocalHost', 'OFFLINE', 'INITIALIZATION_FAILED');
|
| - var label = hostTableEntry_.element().querySelector('.host-name-label');
|
| - QUnit.equal(label.innerText, 'OFFLINE');
|
| - QUnit.equal(label.title, 'OFFLINE_REASON_INITIALIZATION_FAILED');
|
| -});
|
| -
|
| -test('HostTableEntry renders an out-of-date host correctly', function() {
|
| - sinon.stub(remoting.Host, 'needsUpdate').returns(true);
|
| - setHost('LocalHost', 'ONLINE');
|
| - var warningOverlay =
|
| - hostTableEntry_.element().querySelector('.warning-overlay');
|
| - var label = hostTableEntry_.element().querySelector('.host-name-label');
|
| - verifyVisible(warningOverlay, true, 'warning overlay');
|
| - QUnit.equal(label.innerText, 'UPDATE_REQUIRED');
|
| -});
|
| -
|
| -test('Clicking on an online host connects it', function() {
|
| - hostTableEntry_.element().querySelector('.host-name-label').click();
|
| - sinon.assert.calledWith(onConnect_,
|
| - encodeURIComponent(hostTableEntry_.host.hostId));
|
| -});
|
| -
|
| -test('Clicking on an offline host should be a no-op', function() {
|
| - setHost('LocalHost', 'OFFLINE');
|
| - hostTableEntry_.element().querySelector('.host-name-label').click();
|
| - sinon.assert.notCalled(onConnect_);
|
| -});
|
| -
|
| -test('HostTableEntry handles host that is null', function() {
|
| - hostTableEntry_.setHost(null);
|
| - hostTableEntry_.element().querySelector('.host-name-label').click();
|
| - sinon.assert.notCalled(onConnect_);
|
| -});
|
| -
|
| -})();
|
|
|