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

Side by Side Diff: remoting/webapp/crd/js/identity_unittest.js

Issue 1017613002: Migrate Remoting Webapp Unittests to use QUnit 2.0 syntax. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Migrate to assert Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 (function() { 5 (function() {
6 6
7 'use strict'; 7 'use strict';
8 8
9 /** @type {MockConsent} */ 9 /** @type {MockConsent} */
10 var consentDialog = null; 10 var consentDialog = null;
11 /** @type {sinon.Spy | Function} */ 11 /** @type {sinon.Spy | Function} */
12 var promptForConsent = null; 12 var promptForConsent = null;
13 /** @type {sinon.Spy | Function} */ 13 /** @type {sinon.Spy | Function} */
14 var getAuthToken = null; 14 var getAuthToken = null;
15 /** @type {remoting.Identity} */ 15 /** @type {remoting.Identity} */
16 var identity = null; 16 var identity = null;
17 17
18 /** 18 /**
19 * @param {QUnit.Assert} assert
19 * @constructor 20 * @constructor
20 * @implements {remoting.Identity.ConsentDialog} 21 * @implements {remoting.Identity.ConsentDialog}
21 */ 22 */
22 var MockConsent = function() { 23 var MockConsent = function(assert) {
23 /** @type {boolean} */ 24 /** @type {boolean} */
24 this.grantConsent = true; 25 this.grantConsent = true;
25 /** @type {Array<string> | undefined} */ 26 /** @type {Array<string> | undefined} */
26 this.scopes = undefined; 27 this.scopes = undefined;
28 /** @private {QUnit.Assert} */
29 this.assert_ = assert;
27 }; 30 };
28 31
29 MockConsent.prototype.show = function() { 32 MockConsent.prototype.show = function() {
30 // The consent dialog should only be shown if a previous call to getAuthToken 33 // The consent dialog should only be shown if a previous call to getAuthToken
31 // with {interactive: false} failed, and it should occur before any call with 34 // with {interactive: false} failed, and it should occur before any call with
32 // {interactive: true}. 35 // {interactive: true}.
33 ok(getAuthToken.calledOnce); 36 this.assert_.ok(getAuthToken.calledOnce);
34 ok(getAuthToken.calledWith({'interactive': false})); 37 this.assert_.ok(getAuthToken.calledWith({'interactive': false}));
35 getAuthToken.reset(); 38 getAuthToken.reset();
36 39
37 if (this.grantConsent) { 40 if (this.grantConsent) {
38 chromeMocks.identity.mock$setToken('token'); 41 chromeMocks.identity.mock$setToken('token');
39 } 42 }
40 return Promise.resolve(); 43 return Promise.resolve();
41 }; 44 };
42 45
43 module('Identity', { 46 QUnit.module('Identity', {
44 setup: function() { 47 beforeEach: function(/** QUnit.Assert*/ assert) {
45 chromeMocks.identity.mock$clearToken(); 48 chromeMocks.identity.mock$clearToken();
46 chromeMocks.activate(['identity', 'runtime']); 49 chromeMocks.activate(['identity', 'runtime']);
47 consentDialog = new MockConsent(); 50 consentDialog = new MockConsent(assert);
48 promptForConsent = sinon.spy(consentDialog, 'show'); 51 promptForConsent = sinon.spy(consentDialog, 'show');
49 identity = new remoting.Identity(consentDialog); 52 identity = new remoting.Identity(consentDialog);
50 getAuthToken = sinon.spy(chromeMocks.identity, 'getAuthToken'); 53 getAuthToken = sinon.spy(chromeMocks.identity, 'getAuthToken');
51 }, 54 },
52 teardown: function() { 55 afterEach: function() {
53 chromeMocks.restore(); 56 chromeMocks.restore();
54 getAuthToken.restore(); 57 getAuthToken.restore();
55 } 58 }
56 }); 59 });
57 60
58 test('consent is requested only on first invocation', function() { 61 QUnit.test('consent is requested only on first invocation', function(assert) {
59 ok(!promptForConsent.called); 62 assert.ok(!promptForConsent.called);
60 return identity.getToken().then( 63 return identity.getToken().then(
61 function(/** string */ token) { 64 function(/** string */ token) {
62 ok(promptForConsent.called); 65 assert.ok(promptForConsent.called);
63 ok(getAuthToken.calledOnce); 66 assert.ok(getAuthToken.calledOnce);
64 ok(getAuthToken.calledWith({'interactive': true})); 67 assert.ok(getAuthToken.calledWith({'interactive': true}));
65 68
66 // Request another token. 69 // Request another token.
67 promptForConsent.reset(); 70 promptForConsent.reset();
68 getAuthToken.reset(); 71 getAuthToken.reset();
69 return identity.getToken(); 72 return identity.getToken();
70 73
71 }).then(function(/** string */ token) { 74 }).then(function(/** string */ token) {
72 ok(!promptForConsent.called); 75 assert.ok(!promptForConsent.called);
73 ok(getAuthToken.calledOnce); 76 assert.ok(getAuthToken.calledOnce);
74 ok(getAuthToken.calledWith({'interactive': true})); 77 assert.ok(getAuthToken.calledWith({'interactive': true}));
75 equal(token, 'token'); 78 assert.equal(token, 'token');
76 }); 79 });
77 }); 80 });
78 81
79 test('cancellations are reported correctly', function() { 82 QUnit.test('cancellations are reported correctly', function(assert) {
80 consentDialog.grantConsent = false; 83 consentDialog.grantConsent = false;
81 chromeMocks.runtime.lastError.message = 'The user did not approve access.'; 84 chromeMocks.runtime.lastError.message = 'The user did not approve access.';
82 return identity.getToken().then( 85 return identity.getToken().then(
83 function(/** string */ token) { 86 function(/** string */ token) {
84 ok(false, 'expected getToken() to fail'); 87 assert.ok(false, 'expected getToken() to fail');
85 }).catch(function(/** remoting.Error */ error) { 88 }).catch(function(/** remoting.Error */ error) {
86 equal(error.getTag(), remoting.Error.Tag.CANCELLED); 89 assert.equal(error.getTag(), remoting.Error.Tag.CANCELLED);
87 }); 90 });
88 }); 91 });
89 92
90 93
91 test('other errors are reported correctly', function() { 94 QUnit.test('other errors are reported correctly', function(assert) {
92 consentDialog.grantConsent = false; 95 consentDialog.grantConsent = false;
93 chromeMocks.runtime.lastError.message = '<some other error message>'; 96 chromeMocks.runtime.lastError.message = '<some other error message>';
94 return identity.getToken().then( 97 return identity.getToken().then(
95 function(/** string */ token) { 98 function(/** string */ token) {
96 ok(false, 'expected getToken() to fail'); 99 assert.ok(false, 'expected getToken() to fail');
97 }).catch(function(/** remoting.Error */ error) { 100 }).catch(function(/** remoting.Error */ error) {
98 equal(error.getTag(), remoting.Error.Tag.NOT_AUTHENTICATED); 101 assert.equal(error.getTag(), remoting.Error.Tag.NOT_AUTHENTICATED);
99 }); 102 });
100 }); 103 });
101 104
102 }()); 105 }());
OLDNEW
« no previous file with comments | « remoting/webapp/crd/js/host_table_entry_unittest.js ('k') | remoting/webapp/crd/js/l10n_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698