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

Side by Side Diff: remoting/webapp/base/js/ipc_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 {base.Ipc} */ 9 /** @type {base.Ipc} */
10 var ipc_; 10 var ipc_;
11 11
12 function pass() { 12 QUnit.module('base.Ipc', {
13 ok(true); 13 beforeEach: function() {
14 QUnit.start();
15 }
16
17 function fail() {
18 ok(false);
19 QUnit.start();
20 }
21
22 module('base.Ipc', {
23 setup: function() {
24 chromeMocks.activate(['runtime']); 14 chromeMocks.activate(['runtime']);
25 ipc_ = base.Ipc.getInstance(); 15 ipc_ = base.Ipc.getInstance();
26 }, 16 },
27 teardown: function() { 17 afterEach: function() {
28 base.Ipc.deleteInstance(); 18 base.Ipc.deleteInstance();
29 ipc_ = null; 19 ipc_ = null;
30 chromeMocks.restore(); 20 chromeMocks.restore();
31 } 21 }
32 }); 22 });
33 23
34 QUnit.test( 24 QUnit.test(
35 'register() should return false if the request type was already registered', 25 'register() should return false if the request type was already registered',
36 function() { 26 function(assert) {
37 var handler1 = function() {}; 27 var handler1 = function() {};
38 var handler2 = function() {}; 28 var handler2 = function() {};
39 QUnit.equal(true, ipc_.register('foo', handler1)); 29 assert.equal(true, ipc_.register('foo', handler1));
40 QUnit.equal(false, ipc_.register('foo', handler2)); 30 assert.equal(false, ipc_.register('foo', handler2));
41 }); 31 });
42 32
43 QUnit.asyncTest( 33 QUnit.test(
44 'send() should invoke a registered handler with the correct arguments', 34 'send() should invoke a registered handler with the correct arguments',
45 function() { 35 function(assert) {
46 var handler = sinon.spy(); 36 var handler = sinon.spy();
47 var argArray = [1, 2, 3]; 37 var argArray = [1, 2, 3];
48 var argDict = { 38 var argDict = {
49 key1: 'value1', 39 key1: 'value1',
50 key2: false 40 key2: false
51 }; 41 };
52 42
53 ipc_.register('foo', handler); 43 ipc_.register('foo', handler);
54 base.Ipc.invoke('foo', 1, false, 'string', argArray, argDict).then( 44 return base.Ipc.invoke('foo', 1, false, 'string', argArray, argDict).then(
55 function() { 45 function() {
56 sinon.assert.calledWith(handler, 1, false, 'string', argArray, argDict); 46 sinon.assert.calledWith(handler, 1, false, 'string', argArray, argDict);
57 pass(); 47 });
58 }, fail);
59 }); 48 });
60 49
61 QUnit.asyncTest( 50 QUnit.test(
62 'send() should not invoke a handler that is unregistered', 51 'send() should not invoke a handler that is unregistered',
63 function() { 52 function(assert) {
64 var handler = sinon.spy(); 53 var handler = sinon.spy();
65 ipc_.register('foo', handler); 54 ipc_.register('foo', handler);
66 ipc_.unregister('foo'); 55 ipc_.unregister('foo');
67 base.Ipc.invoke('foo', 'hello', 'world').then(fail, function(error) { 56 return base.Ipc.invoke('foo', 'hello', 'world').then(function() {
57 assert.ok(false, 'Invoking an unregistered handler should fail.');
58 }).catch(function(error) {
68 sinon.assert.notCalled(handler); 59 sinon.assert.notCalled(handler);
69 QUnit.equal(error, base.Ipc.Error.UNSUPPORTED_REQUEST_TYPE); 60 assert.equal(error, base.Ipc.Error.UNSUPPORTED_REQUEST_TYPE);
70 pass();
71 }); 61 });
72 }); 62 });
73 63
74 QUnit.asyncTest( 64 QUnit.test(
75 'send() should raise exceptions on unknown request types', 65 'send() should raise exceptions on unknown request types',
76 function() { 66 function(assert) {
77 var handler = sinon.spy(); 67 var handler = sinon.spy();
78 ipc_.register('foo', handler); 68 ipc_.register('foo', handler);
79 base.Ipc.invoke('bar', 'hello', 'world').then(fail, function(error) { 69 return base.Ipc.invoke('bar', 'hello', 'world').then(function() {
80 QUnit.equal(error, base.Ipc.Error.UNSUPPORTED_REQUEST_TYPE); 70 assert.ok(false, 'Invoking unknown request types should fail.');
81 pass(); 71 }).catch(function(error) {
72 assert.equal(error, base.Ipc.Error.UNSUPPORTED_REQUEST_TYPE);
82 }); 73 });
83 }); 74 });
84 75
85 QUnit.asyncTest( 76 QUnit.test(
86 'send() should raise exceptions on request from another extension', 77 'send() should raise exceptions on request from another extension',
87 function() { 78 function(assert) {
88 var handler = sinon.spy(); 79 var handler = sinon.spy();
89 var oldId = chrome.runtime.id; 80 var oldId = chrome.runtime.id;
90 ipc_.register('foo', handler); 81 ipc_.register('foo', handler);
91 chrome.runtime.id = 'foreign-extension'; 82 chrome.runtime.id = 'foreign-extension';
92 base.Ipc.invoke('foo', 'hello', 'world').then(fail, function(error) { 83 var promise = base.Ipc.invoke('foo', 'hello', 'world').then(function() {
93 QUnit.equal(error, base.Ipc.Error.INVALID_REQUEST_ORIGIN); 84 assert.ok(false, 'Requests from another extension should fail.');
94 pass(); 85 }).catch(function(error) {
86 assert.equal(error, base.Ipc.Error.INVALID_REQUEST_ORIGIN);
95 }); 87 });
96 chrome.runtime.id = oldId; 88 chrome.runtime.id = oldId;
89 return promise;
97 }); 90 });
98 91
99 92
100 QUnit.asyncTest( 93 QUnit.test(
101 'send() should pass exceptions raised by the handler to the caller', 94 'send() should pass exceptions raised by the handler to the caller',
102 function() { 95 function(assert) {
103 var handler = function() { 96 var handler = function() {
104 throw new Error('Whatever can go wrong, will go wrong.'); 97 throw new Error('Whatever can go wrong, will go wrong.');
105 }; 98 };
106 ipc_.register('foo', handler); 99 ipc_.register('foo', handler);
107 base.Ipc.invoke('foo').then(fail, function(error) { 100 return base.Ipc.invoke('foo').then(function() {
108 QUnit.equal(error, 'Whatever can go wrong, will go wrong.'); 101 assert.ok(false, 'Exceptions expected.');
109 pass(); 102 }).catch(function(error) {
103 assert.equal(error, 'Whatever can go wrong, will go wrong.');
110 }); 104 });
111 }); 105 });
112 106
113 QUnit.asyncTest( 107 QUnit.test(
114 'send() should pass the return value of the handler to the caller', 108 'send() should pass the return value of the handler to the caller',
115 function() { 109 function(assert) {
116 var handlers = { 110 var handlers = {
117 'boolean': function() { return false; }, 111 'boolean': function() { return false; },
118 'number': function() { return 12; }, 112 'number': function() { return 12; },
119 'string': function() { return 'string'; }, 113 'string': function() { return 'string'; },
120 'array': function() { return [1, 2]; }, 114 'array': function() { return [1, 2]; },
121 'dict': function() { return {key1: 'value1', key2: 'value2'}; } 115 'dict': function() { return {key1: 'value1', key2: 'value2'}; }
122 }; 116 };
123 117
124 var testCases = []; 118 var testCases = [];
125 for (var ipcName in handlers) { 119 for (var ipcName in handlers) {
126 ipc_.register(ipcName, handlers[ipcName]); 120 ipc_.register(ipcName, handlers[ipcName]);
127 testCases.push(base.Ipc.invoke(ipcName)); 121 testCases.push(base.Ipc.invoke(ipcName));
128 } 122 }
129 123
130 Promise.all(testCases).then(function(results){ 124 return Promise.all(testCases).then(function(results){
131 QUnit.equal(results[0], false); 125 assert.equal(results[0], false);
132 QUnit.equal(results[1], 12); 126 assert.equal(results[1], 12);
133 QUnit.equal(results[2], 'string'); 127 assert.equal(results[2], 'string');
134 QUnit.deepEqual(results[3], [1,2]); 128 assert.deepEqual(results[3], [1,2]);
135 QUnit.deepEqual(results[4], {key1: 'value1', key2: 'value2'}); 129 assert.deepEqual(results[4], {key1: 'value1', key2: 'value2'});
136 pass(); 130 });
137 }, fail);
138 }); 131 });
139 132
140 })(); 133 })();
OLDNEW
« no previous file with comments | « remoting/webapp/base/js/base_unittest.js ('k') | remoting/webapp/crd/js/apps_v2_migration_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698