OLD | NEW |
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'; |
(...skipping 11 matching lines...) Expand all Loading... |
22 onStanzaStr(new XMLSerializer().serializeToString(stanza)); | 22 onStanzaStr(new XMLSerializer().serializeToString(stanza)); |
23 } | 23 } |
24 | 24 |
25 sinon.stub(chrome.socket, 'create'); | 25 sinon.stub(chrome.socket, 'create'); |
26 sinon.stub(chrome.socket, 'connect'); | 26 sinon.stub(chrome.socket, 'connect'); |
27 sinon.stub(chrome.socket, 'write'); | 27 sinon.stub(chrome.socket, 'write'); |
28 sinon.stub(chrome.socket, 'read'); | 28 sinon.stub(chrome.socket, 'read'); |
29 sinon.stub(chrome.socket, 'destroy'); | 29 sinon.stub(chrome.socket, 'destroy'); |
30 sinon.stub(chrome.socket, 'secure'); | 30 sinon.stub(chrome.socket, 'secure'); |
31 | 31 |
32 connection = new remoting.XmppConnection(onStateChange, onStanza); | 32 connection = new remoting.XmppConnection(onStateChange); |
| 33 connection.setIncomingStanzaCallback(onStanza); |
33 }, | 34 }, |
34 | 35 |
35 teardown: function() { | 36 teardown: function() { |
36 chrome.socket.create.restore(); | 37 chrome.socket.create.restore(); |
37 chrome.socket.connect.restore(); | 38 chrome.socket.connect.restore(); |
38 chrome.socket.write.restore(); | 39 chrome.socket.write.restore(); |
39 chrome.socket.read.restore(); | 40 chrome.socket.read.restore(); |
40 chrome.socket.destroy.restore(); | 41 chrome.socket.destroy.restore(); |
41 chrome.socket.secure.restore(); | 42 chrome.socket.secure.restore(); |
42 } | 43 } |
43 }); | 44 }); |
44 | 45 |
45 test('should go to FAILED state when failed to connect', function() { | 46 test('should go to FAILED state when failed to connect', function() { |
46 connection.connect( | 47 connection.connect( |
47 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken'); | 48 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken'); |
48 sinon.assert.calledWith(onStateChange, | 49 sinon.assert.calledWith(onStateChange, |
49 remoting.XmppConnection.State.CONNECTING); | 50 remoting.SignalStrategy.State.CONNECTING); |
50 sinon.assert.calledWith(chrome.socket.create, "tcp", {}); | 51 sinon.assert.calledWith(chrome.socket.create, "tcp", {}); |
51 chrome.socket.create.getCall(0).args[2]({socketId: socketId}); | 52 chrome.socket.create.getCall(0).args[2]({socketId: socketId}); |
52 | 53 |
53 sinon.assert.calledWith( | 54 sinon.assert.calledWith( |
54 chrome.socket.connect, socketId, "xmpp.example.com", 123); | 55 chrome.socket.connect, socketId, "xmpp.example.com", 123); |
55 chrome.socket.connect.getCall(0).args[3](-1); | 56 chrome.socket.connect.getCall(0).args[3](-1); |
56 | 57 |
57 QUnit.equal(connection.getError(), remoting.Error.NETWORK_FAILURE); | 58 QUnit.equal(connection.getError(), remoting.Error.NETWORK_FAILURE); |
58 }); | 59 }); |
59 | 60 |
60 test('should use XmppLoginHandler to complete handshake and read data', | 61 test('should use XmppLoginHandler to complete handshake and read data', |
61 function() { | 62 function() { |
62 connection.connect( | 63 connection.connect( |
63 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken'); | 64 'xmpp.example.com:123', 'testUsername@gmail.com', 'testToken'); |
64 sinon.assert.calledWith(onStateChange, | 65 sinon.assert.calledWith(onStateChange, |
65 remoting.XmppConnection.State.CONNECTING); | 66 remoting.SignalStrategy.State.CONNECTING); |
66 sinon.assert.calledWith(chrome.socket.create, "tcp", {}); | 67 sinon.assert.calledWith(chrome.socket.create, "tcp", {}); |
67 chrome.socket.create.getCall(0).args[2]({socketId: socketId}); | 68 chrome.socket.create.getCall(0).args[2]({socketId: socketId}); |
68 | 69 |
69 sinon.assert.calledWith( | 70 sinon.assert.calledWith( |
70 chrome.socket.connect, socketId, "xmpp.example.com", 123); | 71 chrome.socket.connect, socketId, "xmpp.example.com", 123); |
71 chrome.socket.connect.getCall(0).args[3](0); | 72 chrome.socket.connect.getCall(0).args[3](0); |
72 | 73 |
73 sinon.assert.calledWith(onStateChange, | 74 sinon.assert.calledWith(onStateChange, |
74 remoting.XmppConnection.State.HANDSHAKE); | 75 remoting.SignalStrategy.State.HANDSHAKE); |
75 | 76 |
76 var parser = new remoting.XmppStreamParser(); | 77 var parser = new remoting.XmppStreamParser(); |
77 var parserMock = sinon.mock(parser); | 78 var parserMock = sinon.mock(parser); |
78 var setCallbacksCalled = parserMock.expects('setCallbacks').once(); | 79 var setCallbacksCalled = parserMock.expects('setCallbacks').once(); |
79 connection.loginHandler_.onHandshakeDoneCallback_('test@example.com/123123', | 80 connection.loginHandler_.onHandshakeDoneCallback_('test@example.com/123123', |
80 parser); | 81 parser); |
81 sinon.assert.calledWith(onStateChange, | 82 sinon.assert.calledWith(onStateChange, |
82 remoting.XmppConnection.State.CONNECTED); | 83 remoting.SignalStrategy.State.CONNECTED); |
83 setCallbacksCalled.verify(); | 84 setCallbacksCalled.verify(); |
84 | 85 |
85 // Simulate read() callback with |data|. It should be passed to the parser. | 86 // Simulate read() callback with |data|. It should be passed to the parser. |
86 var data = base.encodeUtf8('<iq id="1">hello</iq>'); | 87 var data = base.encodeUtf8('<iq id="1">hello</iq>'); |
87 sinon.assert.calledWith(chrome.socket.read, socketId); | 88 sinon.assert.calledWith(chrome.socket.read, socketId); |
88 var appendDataCalled = parserMock.expects('appendData').once().withArgs(data); | 89 var appendDataCalled = parserMock.expects('appendData').once().withArgs(data); |
89 chrome.socket.read.getCall(0).args[1]({resultCode: 0, data: data}); | 90 chrome.socket.read.getCall(0).args[1]({resultCode: 0, data: data}); |
90 appendDataCalled.verify(); | 91 appendDataCalled.verify(); |
91 }); | 92 }); |
92 | 93 |
93 })(); | 94 })(); |
OLD | NEW |