Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(518)

Unified Diff: remoting/webapp/crd/js/combined_host_list_api_unittest.js

Issue 1217643002: Added HostListApl implementation to connect to legacy directory and GCD. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gcd-e2e
Patch Set: yet another rewrite of host merging logic Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/webapp/crd/js/combined_host_list_api_unittest.js
diff --git a/remoting/webapp/crd/js/combined_host_list_api_unittest.js b/remoting/webapp/crd/js/combined_host_list_api_unittest.js
new file mode 100644
index 0000000000000000000000000000000000000000..f8c3d36618cfa0be160aa2ed834af7b2e13dfa72
--- /dev/null
+++ b/remoting/webapp/crd/js/combined_host_list_api_unittest.js
@@ -0,0 +1,176 @@
+// 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.
+
+/**
+ * @fileoverview
+ * Unit tests for combined_host_list_api.js.
+ */
+
+(function() {
+
+'use strict';
+
+/** @type {!remoting.MockHostListApi} */
+var mockGcdApi;
+
+/** @type {!remoting.MockHostListApi} */
+var mockLegacyApi;
+
+/** @type {!remoting.CombinedHostListApi} */
+var combinedApi;
+
+/** @type {sinon.TestStub} */
+var registerWithHostIdStub;
+
+/** @type {!remoting.Host} */
+var commonHostGcd;
+
+/** @type {!remoting.Host} */
+var commonHostLegacy;
+
+QUnit.module('CombinedHostListApi', {
+ beforeEach: function(/** QUnit.Assert */ assert) {
+ remoting.settings = new remoting.Settings();
+ remoting.settings['USE_GCD'] = true;
+ remoting.mockIdentity.setAccessToken(
+ remoting.MockIdentity.AccessToken.VALID);
+ mockGcdApi = new remoting.MockHostListApi();
+ mockGcdApi.addMockHost('gcd-host');
+ commonHostGcd = mockGcdApi.addMockHost('common-host');
+ commonHostGcd.hostName = 'common-host-gcd';
+ mockLegacyApi = new remoting.MockHostListApi();
+ mockLegacyApi.addMockHost('legacy-host');
+ commonHostLegacy = mockLegacyApi.addMockHost('common-host');
+ commonHostLegacy.hostName = 'common-host-legacy';
+ combinedApi = new remoting.CombinedHostListApi(mockLegacyApi, mockGcdApi);
+ registerWithHostIdStub =
+ sinon.stub(remoting.LegacyHostListApi, 'registerWithHostId');
+ },
+ afterEach: function(/** QUnit.Assert */ assert) {
+ remoting.settings = null;
+ registerWithHostIdStub.restore();
+ }
+});
+
+QUnit.test('register', function(/** QUnit.Assert */ assert) {
+ registerWithHostIdStub.returns(Promise.resolve());
+
+ mockGcdApi.authCodeFromRegister = '<fake_auth_code>';
+ mockGcdApi.emailFromRegister = '<fake_email>';
+ mockGcdApi.hostIdFromRegister = '<fake_host_id>';
+ mockLegacyApi.authCodeFromRegister = '<wrong_fake_auth_code>';
+ mockLegacyApi.emailFromRegister = '<wrong_fake_email>';
+ mockLegacyApi.hostIdFromRegister = '<wrong_fake_host_id>';
+ return combinedApi.register('', '', '').then(function(regResult) {
+ assert.equal(regResult.authCode, '<fake_auth_code>');
+ assert.equal(regResult.email, '<fake_email>');
+ assert.equal(regResult.hostId, '<fake_host_id>');
+ });
+});
+
+QUnit.test('get', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function(hosts) {
+ assert.equal(hosts.length, 3);
+ var hostIds = new Set();
+ hosts.forEach(function(host) {
+ hostIds.add(host.hostId);
+ if (host.hostId == 'common-host') {
+ assert.equal(host.hostName, 'common-host-gcd');
+ };
+ });
+ assert.ok(hostIds.has('gcd-host'));
+ assert.ok(hostIds.has('legacy-host'));
+ assert.ok(hostIds.has('common-host'));
+ });
+});
+
+QUnit.test('get w/ GCD newer', function(/** QUnit.Assert */ assert) {
+ commonHostGcd.updatedTime = '1970-01-02';
+ commonHostLegacy.updatedTime = '1970-01-01';
+ return combinedApi.get().then(function(hosts) {
+ hosts.forEach(function(host) {
+ if (host.hostId == 'common-host') {
+ assert.equal(host.hostName, 'common-host-gcd');
+ };
+ });
+ });
+});
+
+QUnit.test('get w/ legacy newer', function(/** QUnit.Assert */ assert) {
+ commonHostGcd.updatedTime = '1970-01-01';
+ commonHostLegacy.updatedTime = '1970-01-02';
+ return combinedApi.get().then(function(hosts) {
+ hosts.forEach(function(host) {
+ if (host.hostId == 'common-host') {
+ assert.equal(host.hostName, 'common-host-legacy');
+ };
+ });
+ });
+});
+
+QUnit.test('put to legacy', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function() {
+ return combinedApi.put('legacy-host', 'new host name', '').then(
+ function() {
+ assert.equal(mockLegacyApi.hosts[0].hostName,
+ 'new host name');
+ });
+ });
+});
+
+QUnit.test('put to GCD', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function() {
+ return combinedApi.put('gcd-host', 'new host name', '').then(
+ function() {
+ assert.equal(mockGcdApi.hosts[0].hostName,
+ 'new host name');
+ });
+ });
+});
+
+
+QUnit.test('put to both', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function() {
+ return combinedApi.put('common-host', 'new host name', '').then(
+ function() {
+ assert.equal(mockGcdApi.hosts[1].hostName,
+ 'new host name');
+ assert.equal(mockLegacyApi.hosts[1].hostName,
+ 'new host name');
+ });
+ });
+});
+
+QUnit.test('remove from legacy', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function() {
+ return combinedApi.remove('legacy-host').then(function() {
+ assert.equal(mockGcdApi.hosts.length, 2);
+ assert.equal(mockLegacyApi.hosts.length, 1);
+ assert.notEqual(mockLegacyApi.hosts[0].hostId, 'legacy-host');
+ });
+ });
+});
+
+QUnit.test('remove from gcd', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function() {
+ return combinedApi.remove('gcd-host').then(function() {
+ assert.equal(mockLegacyApi.hosts.length, 2);
+ assert.equal(mockGcdApi.hosts.length, 1);
+ assert.notEqual(mockGcdApi.hosts[0].hostId, 'gcd-host');
+ });
+ });
+});
+
+QUnit.test('remove from both', function(/** QUnit.Assert */ assert) {
+ return combinedApi.get().then(function() {
+ return combinedApi.remove('common-host').then(function() {
+ assert.equal(mockGcdApi.hosts.length, 1);
+ assert.equal(mockLegacyApi.hosts.length, 1);
+ assert.notEqual(mockGcdApi.hosts[0].hostId, 'common-host');
+ assert.notEqual(mockLegacyApi.hosts[0].hostId, 'common-host');
+ });
+ });
+});
+
+})();

Powered by Google App Engine
This is Rietveld 408576698