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

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: Async test migration 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() {
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 QUnit.equal(true, ipc_.register('foo', handler1));
40 QUnit.equal(false, ipc_.register('foo', handler2)); 30 QUnit.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() {
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() {
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 QUnit.ok(false);
Jamie 2015/03/17 17:57:15 ok(false) is not very useful without an associated
kelvinp 2015/03/17 18:13:58 Done.
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 QUnit.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() {
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() {
70 QUnit.ok(false);
71 }).catch(function(error) {
80 QUnit.equal(error, base.Ipc.Error.UNSUPPORTED_REQUEST_TYPE); 72 QUnit.equal(error, base.Ipc.Error.UNSUPPORTED_REQUEST_TYPE);
81 pass();
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() {
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() {
84 QUnit.ok(false);
85 }).catch(function(error) {
93 QUnit.equal(error, base.Ipc.Error.INVALID_REQUEST_ORIGIN); 86 QUnit.equal(error, base.Ipc.Error.INVALID_REQUEST_ORIGIN);
94 pass();
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() {
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() {
101 QUnit.ok(false);
102 }).catch(function(error) {
108 QUnit.equal(error, 'Whatever can go wrong, will go wrong.'); 103 QUnit.equal(error, 'Whatever can go wrong, will go wrong.');
109 pass();
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() {
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 QUnit.equal(results[0], false);
132 QUnit.equal(results[1], 12); 126 QUnit.equal(results[1], 12);
133 QUnit.equal(results[2], 'string'); 127 QUnit.equal(results[2], 'string');
134 QUnit.deepEqual(results[3], [1,2]); 128 QUnit.deepEqual(results[3], [1,2]);
135 QUnit.deepEqual(results[4], {key1: 'value1', key2: 'value2'}); 129 QUnit.deepEqual(results[4], {key1: 'value1', key2: 'value2'});
136 pass(); 130 });
137 }, fail);
138 }); 131 });
139 132
140 })(); 133 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698