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

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

Issue 1133913002: [Chromoting] Move shared webapp JS files from crd/js -> base/js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « remoting/webapp/crd/js/identity.js ('k') | remoting/webapp/crd/js/l10n.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/crd/js/identity_unittest.js
diff --git a/remoting/webapp/crd/js/identity_unittest.js b/remoting/webapp/crd/js/identity_unittest.js
deleted file mode 100644
index a1871298e9742919cc6d220137c63b72279ed865..0000000000000000000000000000000000000000
--- a/remoting/webapp/crd/js/identity_unittest.js
+++ /dev/null
@@ -1,149 +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 {MockConsent} */
-var consentDialog = null;
-/** @type {sinon.Spy | Function} */
-var promptForConsent = null;
-/** @type {sinon.Spy | Function} */
-var getAuthToken = null;
-/** @type {remoting.Identity} */
-var identity = null;
-
-/**
- * @param {QUnit.Assert} assert
- * @constructor
- * @implements {remoting.Identity.ConsentDialog}
- */
-var MockConsent = function(assert) {
- /** @type {boolean} */
- this.grantConsent = true;
- /** @private {QUnit.Assert} */
- this.assert_ = assert;
-};
-
-MockConsent.prototype.show = function() {
- // The consent dialog should only be shown if a previous call to getAuthToken
- // with {interactive: false} failed, and it should occur before any call with
- // {interactive: true}.
- this.assert_.ok(getAuthToken.calledOnce);
- this.assert_.ok(getAuthToken.calledWith(
- {'interactive': false, scopes: undefined}));
- getAuthToken.reset();
-
- if (this.grantConsent) {
- chromeMocks.identity.mock$setToken('token');
- }
- return Promise.resolve();
-};
-
-QUnit.module('Identity', {
- beforeEach: function(/** QUnit.Assert*/ assert) {
- chromeMocks.identity.mock$clearToken();
- chromeMocks.activate(['identity', 'runtime']);
- consentDialog = new MockConsent(assert);
- promptForConsent = sinon.spy(consentDialog, 'show');
- identity = new remoting.Identity(consentDialog);
- getAuthToken = sinon.spy(chromeMocks.identity, 'getAuthToken');
- },
- afterEach: function() {
- chromeMocks.restore();
- getAuthToken.restore();
- }
-});
-
-QUnit.test('consent is requested only on first invocation', function(assert) {
- assert.ok(!promptForConsent.called);
- return identity.getToken().then(
- function(/** string */ token) {
- assert.ok(promptForConsent.called);
- assert.ok(getAuthToken.calledOnce);
- assert.ok(getAuthToken.calledWith(
- {'interactive': true, 'scopes': undefined}));
-
- // Request another token.
- promptForConsent.reset();
- getAuthToken.reset();
- return identity.getToken();
-
- }).then(function(/** string */ token) {
- assert.ok(!promptForConsent.called);
- assert.ok(getAuthToken.calledOnce);
- assert.ok(getAuthToken.calledWith({
- 'interactive': true, 'scopes': undefined}));
- assert.equal(token, 'token');
- });
-});
-
-QUnit.test('requesting an explicit scope works', function(assert) {
- assert.ok(!promptForConsent.called);
- return identity.getToken().then(
- function() {
- // Request a token with an explicit scope.
- promptForConsent.reset();
- getAuthToken.reset();
- return identity.getToken(['scope']);
-
- }).then(function(/** string */ token) {
- assert.ok(!promptForConsent.called);
- assert.ok(getAuthToken.calledOnce);
- assert.ok(getAuthToken.calledWith({
- 'interactive': true, 'scopes': ['scope']}));
- assert.equal(token, 'token["scope"]');
- });
-});
-
-QUnit.test('multiple concurrent outstanding requests are handled correctly',
- function(assert) {
- assert.ok(!promptForConsent.called);
- return identity.getToken().then(
- function() {
- // Request a token with an explicit scope and another without.
- promptForConsent.reset();
- getAuthToken.reset();
- var withScope = identity.getToken(['scope']);
- var withoutScope = identity.getToken();
- return Promise.all([withScope, withoutScope]);
-
- }).then(function(/** Array<string> */ tokens) {
- assert.ok(!promptForConsent.called);
- assert.ok(getAuthToken.calledTwice);
- assert.ok(getAuthToken.calledWith({
- 'interactive': true, 'scopes': ['scope']}));
- assert.ok(getAuthToken.calledWith({
- 'interactive': true, 'scopes': undefined}));
- assert.equal(tokens.length, 2);
- assert.equal(tokens[0], 'token["scope"]');
- assert.equal(tokens[1], 'token');
- });
-});
-
-QUnit.test('cancellations are reported correctly', function(assert) {
- consentDialog.grantConsent = false;
- chromeMocks.runtime.lastError.message = 'The user did not approve access.';
- return identity.getToken().then(
- function(/** string */ token) {
- assert.ok(false, 'expected getToken() to fail');
- }).catch(function(/** remoting.Error */ error) {
- assert.equal(error.getTag(), remoting.Error.Tag.CANCELLED);
- });
-});
-
-
-QUnit.test('other errors are reported correctly', function(assert) {
- consentDialog.grantConsent = false;
- chromeMocks.runtime.lastError.message = '<some other error message>';
- return identity.getToken().then(
- function(/** string */ token) {
- assert.ok(false, 'expected getToken() to fail');
- }).catch(function(/** remoting.Error */ error) {
- assert.equal(error.getTag(), remoting.Error.Tag.NOT_AUTHENTICATED);
- });
-});
-
-}());
« no previous file with comments | « remoting/webapp/crd/js/identity.js ('k') | remoting/webapp/crd/js/l10n.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698