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

Side by Side Diff: remoting/protocol/jingle_session_unittest.cc

Issue 8774031: Multi-step authentication support in JingleSession. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years 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 | Annotate | Revision Log
« no previous file with comments | « remoting/protocol/jingle_session.cc ('k') | remoting/protocol/v1_authenticator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/message_loop_proxy.h" 6 #include "base/message_loop_proxy.h"
7 #include "base/time.h" 7 #include "base/time.h"
8 #include "net/socket/socket.h" 8 #include "net/socket/socket.h"
9 #include "net/socket/stream_socket.h" 9 #include "net/socket/stream_socket.h"
10 #include "remoting/base/constants.h" 10 #include "remoting/base/constants.h"
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 bool expect_fail) { 164 bool expect_fail) {
165 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _)) 165 EXPECT_CALL(host_server_listener_, OnIncomingSession(_, _))
166 .WillOnce(DoAll( 166 .WillOnce(DoAll(
167 WithArg<0>(Invoke( 167 WithArg<0>(Invoke(
168 this, &JingleSessionTest::SetHostSession)), 168 this, &JingleSessionTest::SetHostSession)),
169 SetArgumentPointee<1>(protocol::SessionManager::ACCEPT))); 169 SetArgumentPointee<1>(protocol::SessionManager::ACCEPT)));
170 170
171 { 171 {
172 InSequence dummy; 172 InSequence dummy;
173 173
174 EXPECT_CALL(host_connection_callback_,
175 OnStateChange(Session::CONNECTED))
176 .Times(AtMost(1));
174 if (expect_fail) { 177 if (expect_fail) {
175 EXPECT_CALL(host_connection_callback_, 178 EXPECT_CALL(host_connection_callback_,
176 OnStateChange(Session::FAILED)) 179 OnStateChange(Session::FAILED))
177 .Times(1); 180 .Times(1);
178 } else { 181 } else {
179 EXPECT_CALL(host_connection_callback_, 182 EXPECT_CALL(host_connection_callback_,
180 OnStateChange(Session::CONNECTED))
181 .Times(1);
182 EXPECT_CALL(host_connection_callback_,
183 OnStateChange(Session::AUTHENTICATED)) 183 OnStateChange(Session::AUTHENTICATED))
184 .Times(1); 184 .Times(1);
185 } 185 }
186 } 186 }
187 187
188 { 188 {
189 InSequence dummy; 189 InSequence dummy;
190 190
191 EXPECT_CALL(client_connection_callback_, 191 EXPECT_CALL(client_connection_callback_,
192 OnStateChange(Session::CONNECTING)) 192 OnStateChange(Session::CONNECTING))
193 .Times(1); 193 .Times(1);
194 EXPECT_CALL(client_connection_callback_,
195 OnStateChange(Session::CONNECTED))
196 .Times(AtMost(1));
194 if (expect_fail) { 197 if (expect_fail) {
195 EXPECT_CALL(client_connection_callback_, 198 EXPECT_CALL(client_connection_callback_,
196 OnStateChange(Session::FAILED)) 199 OnStateChange(Session::FAILED))
197 .Times(1); 200 .Times(1);
198 } else { 201 } else {
199 EXPECT_CALL(client_connection_callback_, 202 EXPECT_CALL(client_connection_callback_,
200 OnStateChange(Session::CONNECTED))
201 .Times(1);
202 EXPECT_CALL(client_connection_callback_,
203 OnStateChange(Session::AUTHENTICATED)) 203 OnStateChange(Session::AUTHENTICATED))
204 .Times(1); 204 .Times(1);
205 } 205 }
206 } 206 }
207 207
208 Authenticator* authenticator = new FakeAuthenticator( 208 Authenticator* authenticator = new FakeAuthenticator(
209 FakeAuthenticator::CLIENT, auth_round_trips, auth_action, true); 209 FakeAuthenticator::CLIENT, auth_round_trips, auth_action, true);
210 210
211 client_session_.reset(client_server_->Connect( 211 client_session_.reset(client_server_->Connect(
212 kHostJid, authenticator, 212 kHostJid, authenticator,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 319
320 message_loop_.RunAllPending(); 320 message_loop_.RunAllPending();
321 } 321 }
322 322
323 // Verify that we can connect two endpoints. 323 // Verify that we can connect two endpoints.
324 TEST_F(JingleSessionTest, Connect) { 324 TEST_F(JingleSessionTest, Connect) {
325 CreateServerPair(1, FakeAuthenticator::ACCEPT); 325 CreateServerPair(1, FakeAuthenticator::ACCEPT);
326 InitiateConnection(1, FakeAuthenticator::ACCEPT, false); 326 InitiateConnection(1, FakeAuthenticator::ACCEPT, false);
327 } 327 }
328 328
329 // Verify that we can't connect two endpoints with mismatched secrets. 329 // Verify that we can connect two endpoints with multi-step authentication.
330 TEST_F(JingleSessionTest, ConnectMultistep) {
331 CreateServerPair(3, FakeAuthenticator::ACCEPT);
332 InitiateConnection(3, FakeAuthenticator::ACCEPT, false);
333 }
334
335 // Verify that connection is terminated when auth fails.
330 TEST_F(JingleSessionTest, ConnectBadAuth) { 336 TEST_F(JingleSessionTest, ConnectBadAuth) {
331 CreateServerPair(1, FakeAuthenticator::REJECT); 337 CreateServerPair(1, FakeAuthenticator::REJECT);
332 InitiateConnection(1, FakeAuthenticator::ACCEPT, true); 338 InitiateConnection(1, FakeAuthenticator::ACCEPT, true);
333 } 339 }
334 340
341 // Verify that connection is terminted when multi-step auth fails.
342 TEST_F(JingleSessionTest, ConnectBadMultistepAuth) {
343 CreateServerPair(3, FakeAuthenticator::REJECT);
344 InitiateConnection(3, FakeAuthenticator::ACCEPT, true);
345 }
346
335 TEST_F(JingleSessionTest, ConnectBadChannelAuth) { 347 TEST_F(JingleSessionTest, ConnectBadChannelAuth) {
336 CreateServerPair(1, FakeAuthenticator::REJECT_CHANNEL); 348 CreateServerPair(1, FakeAuthenticator::REJECT_CHANNEL);
337 ASSERT_NO_FATAL_FAILURE( 349 ASSERT_NO_FATAL_FAILURE(
338 InitiateConnection(1, FakeAuthenticator::ACCEPT, false)); 350 InitiateConnection(1, FakeAuthenticator::ACCEPT, false));
339 351
340 MockStreamChannelCallback client_callback; 352 MockStreamChannelCallback client_callback;
341 MockStreamChannelCallback host_callback; 353 MockStreamChannelCallback host_callback;
342 354
343 client_session_->CreateStreamChannel(kChannelName, base::Bind( 355 client_session_->CreateStreamChannel(kChannelName, base::Bind(
344 &MockStreamChannelCallback::OnDone, 356 &MockStreamChannelCallback::OnDone,
(...skipping 22 matching lines...) Expand all
367 379
368 ASSERT_NO_FATAL_FAILURE(CreateChannel()); 380 ASSERT_NO_FATAL_FAILURE(CreateChannel());
369 381
370 StreamConnectionTester tester(host_socket_.get(), client_socket_.get(), 382 StreamConnectionTester tester(host_socket_.get(), client_socket_.get(),
371 kMessageSize, kMessages); 383 kMessageSize, kMessages);
372 tester.Start(); 384 tester.Start();
373 message_loop_.Run(); 385 message_loop_.Run();
374 tester.CheckResults(); 386 tester.CheckResults();
375 } 387 }
376 388
389 // Verify that we can connect channels with multistep auth.
390 TEST_F(JingleSessionTest, TestMultistepAuthTcpChannel) {
391 CreateServerPair(3, FakeAuthenticator::ACCEPT);
392 ASSERT_NO_FATAL_FAILURE(
393 InitiateConnection(3, FakeAuthenticator::ACCEPT, false));
394
395 ASSERT_NO_FATAL_FAILURE(CreateChannel());
396
397 StreamConnectionTester tester(host_socket_.get(), client_socket_.get(),
398 kMessageSize, kMessages);
399 tester.Start();
400 message_loop_.Run();
401 tester.CheckResults();
402 }
403
377 // Verify that data can be transmitted over the video RTP channel. 404 // Verify that data can be transmitted over the video RTP channel.
378 TEST_F(JingleSessionTest, TestUdpChannel) { 405 TEST_F(JingleSessionTest, TestUdpChannel) {
379 CreateServerPair(1, FakeAuthenticator::ACCEPT); 406 CreateServerPair(1, FakeAuthenticator::ACCEPT);
380 ASSERT_NO_FATAL_FAILURE( 407 ASSERT_NO_FATAL_FAILURE(
381 InitiateConnection(1, FakeAuthenticator::ACCEPT, false)); 408 InitiateConnection(1, FakeAuthenticator::ACCEPT, false));
382 409
383 MockDatagramChannelCallback client_callback; 410 MockDatagramChannelCallback client_callback;
384 MockDatagramChannelCallback host_callback; 411 MockDatagramChannelCallback host_callback;
385 412
386 int counter = 2; 413 int counter = 2;
(...skipping 23 matching lines...) Expand all
410 437
411 DatagramConnectionTester tester( 438 DatagramConnectionTester tester(
412 client_socket, host_socket, kMessageSize, kMessages, kUdpWriteDelayMs); 439 client_socket, host_socket, kMessageSize, kMessages, kUdpWriteDelayMs);
413 tester.Start(); 440 tester.Start();
414 message_loop_.Run(); 441 message_loop_.Run();
415 tester.CheckResults(); 442 tester.CheckResults();
416 } 443 }
417 444
418 } // namespace protocol 445 } // namespace protocol
419 } // namespace remoting 446 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/jingle_session.cc ('k') | remoting/protocol/v1_authenticator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698