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

Side by Side Diff: remoting/webapp/unittests/xmpp_connection_unittest.js

Issue 959963002: [Chromoting] Enable jscompile for webapp unittests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 var testUsername = 'testUsername@gmail.com'; 9 var testUsername = 'testUsername@gmail.com';
10 var testToken = 'testToken'; 10 var testToken = 'testToken';
11 var socketId = 3; 11 var socketId = 3;
12 12
13 var onStateChange = null; 13 /** @type {(sinon.$spy|function(remoting.SignalStrategy.State):void)} */
14 var onStateChange = function() {};
15
14 var onStanzaStr = null; 16 var onStanzaStr = null;
17
18 /** @type {remoting.XmppConnection} */
15 var connection = null; 19 var connection = null;
16 20
17 module('XmppConnection', { 21 module('XmppConnection', {
18 setup: function() { 22 setup: function() {
19 onStateChange = sinon.spy(); 23 onStateChange = sinon.spy();
20 onStanzaStr = sinon.spy(); 24 onStanzaStr = sinon.spy();
25 /** @param {Element} stanza */
21 function onStanza(stanza) { 26 function onStanza(stanza) {
22 onStanzaStr(new XMLSerializer().serializeToString(stanza)); 27 onStanzaStr(new XMLSerializer().serializeToString(stanza));
23 } 28 }
24 29
25 sinon.stub(chrome.socket, 'create'); 30 sinon.$setupStub(chrome.socket, 'create');
26 sinon.stub(chrome.socket, 'connect'); 31 sinon.$setupStub(chrome.socket, 'connect');
27 sinon.stub(chrome.socket, 'write'); 32 sinon.$setupStub(chrome.socket, 'write');
28 sinon.stub(chrome.socket, 'read'); 33 sinon.$setupStub(chrome.socket, 'read');
29 sinon.stub(chrome.socket, 'destroy'); 34 sinon.$setupStub(chrome.socket, 'destroy');
30 sinon.stub(chrome.socket, 'secure'); 35 sinon.$setupStub(chrome.socket, 'secure');
31 36
32 connection = new remoting.XmppConnection(); 37 connection = new remoting.XmppConnection();
33 connection.setStateChangedCallback(onStateChange); 38 connection.setStateChangedCallback(
39 /** @type {function(remoting.SignalStrategy.State):void} */
40 (onStateChange));
34 connection.setIncomingStanzaCallback(onStanza); 41 connection.setIncomingStanzaCallback(onStanza);
35 }, 42 },
36 43
37 teardown: function() { 44 teardown: function() {
38 chrome.socket.create.restore(); 45 chrome.socket.create.$testStub.restore();
39 chrome.socket.connect.restore(); 46 chrome.socket.connect.$testStub.restore();
40 chrome.socket.write.restore(); 47 chrome.socket.write.$testStub.restore();
41 chrome.socket.read.restore(); 48 chrome.socket.read.$testStub.restore();
42 chrome.socket.destroy.restore(); 49 chrome.socket.destroy.$testStub.restore();
43 chrome.socket.secure.restore(); 50 chrome.socket.secure.$testStub.restore();
44 } 51 }
45 }); 52 });
46 53
47 test('should go to FAILED state when failed to connect', function() { 54 test('should go to FAILED state when failed to connect', function() {
48 connection.connect( 55 connection.connect(
49 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken'); 56 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken');
50 sinon.assert.calledWith(onStateChange, 57 sinon.assert.calledWith(onStateChange,
51 remoting.SignalStrategy.State.CONNECTING); 58 remoting.SignalStrategy.State.CONNECTING);
52 sinon.assert.calledWith(chrome.socket.create, "tcp", {}); 59 sinon.assert.calledWith(chrome.socket.create, "tcp", {});
53 chrome.socket.create.getCall(0).args[2]({socketId: socketId}); 60 chrome.socket.create.$testStub.getCall(0).args[2]({socketId: socketId});
54 61
55 sinon.assert.calledWith( 62 sinon.assert.calledWith(
56 chrome.socket.connect, socketId, "xmpp.example.com", 123); 63 chrome.socket.connect, socketId, "xmpp.example.com", 123);
57 chrome.socket.connect.getCall(0).args[3](-1); 64 chrome.socket.connect.$testStub.getCall(0).args[3](-1);
58 65
59 QUnit.equal(connection.getError(), remoting.Error.NETWORK_FAILURE); 66 QUnit.equal(connection.getError(), remoting.Error.NETWORK_FAILURE);
60 }); 67 });
61 68
62 test('should use XmppLoginHandler to complete handshake and read data', 69 test('should use XmppLoginHandler to complete handshake and read data',
63 function() { 70 function() {
64 connection.connect( 71 connection.connect(
65 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken'); 72 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken');
66 sinon.assert.calledWith(onStateChange, 73 sinon.assert.calledWith(onStateChange,
67 remoting.SignalStrategy.State.CONNECTING); 74 remoting.SignalStrategy.State.CONNECTING);
68 sinon.assert.calledWith(chrome.socket.create, "tcp", {}); 75 sinon.assert.calledWith(chrome.socket.create, "tcp", {});
69 chrome.socket.create.getCall(0).args[2]({socketId: socketId}); 76 chrome.socket.create.$testStub.getCall(0).args[2]({socketId: socketId});
70 77
71 sinon.assert.calledWith( 78 sinon.assert.calledWith(
72 chrome.socket.connect, socketId, "xmpp.example.com", 123); 79 chrome.socket.connect, socketId, "xmpp.example.com", 123);
73 chrome.socket.connect.getCall(0).args[3](0); 80 chrome.socket.connect.$testStub.getCall(0).args[3](0);
74 81
75 sinon.assert.calledWith(onStateChange, 82 sinon.assert.calledWith(onStateChange,
76 remoting.SignalStrategy.State.HANDSHAKE); 83 remoting.SignalStrategy.State.HANDSHAKE);
77 84
78 var parser = new remoting.XmppStreamParser(); 85 var parser = new remoting.XmppStreamParser();
79 var parserMock = sinon.mock(parser); 86 var parserMock = sinon.mock(parser);
80 var setCallbacksCalled = parserMock.expects('setCallbacks').once(); 87 var setCallbacksCalled = parserMock.expects('setCallbacks').once();
81 connection.loginHandler_.onHandshakeDoneCallback_('test@example.com/123123', 88 var handshakeDoneCallback =
82 parser); 89 connection.loginHandler_.getHandshakeDoneCallbackForTesting();
90 handshakeDoneCallback('test@example.com/123123', parser);
83 sinon.assert.calledWith(onStateChange, 91 sinon.assert.calledWith(onStateChange,
84 remoting.SignalStrategy.State.CONNECTED); 92 remoting.SignalStrategy.State.CONNECTED);
85 setCallbacksCalled.verify(); 93 setCallbacksCalled.verify();
86 94
87 // Simulate read() callback with |data|. It should be passed to the parser. 95 // Simulate read() callback with |data|. It should be passed to the parser.
88 var data = base.encodeUtf8('<iq id="1">hello</iq>'); 96 var data = base.encodeUtf8('<iq id="1">hello</iq>');
89 sinon.assert.calledWith(chrome.socket.read, socketId); 97 sinon.assert.calledWith(chrome.socket.read, socketId);
90 var appendDataCalled = parserMock.expects('appendData').once().withArgs(data); 98 var appendDataCalled = parserMock.expects('appendData').once().withArgs(data);
91 chrome.socket.read.getCall(0).args[1]({resultCode: 0, data: data}); 99 chrome.socket.read.$testStub.getCall(0).args[1]({resultCode: 0, data: data});
92 appendDataCalled.verify(); 100 appendDataCalled.verify();
93 }); 101 });
94 102
95 })(); 103 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698