Index: remoting/protocol/authenticator_test_base.cc |
diff --git a/remoting/protocol/authenticator_test_base.cc b/remoting/protocol/authenticator_test_base.cc |
index 25b0efecb80d4deeee21dc93502b3e023e89ab6b..1b65dbe4d7e24db3ea5ca72af676f5526c6354f8 100644 |
--- a/remoting/protocol/authenticator_test_base.cc |
+++ b/remoting/protocol/authenticator_test_base.cc |
@@ -60,22 +60,43 @@ void AuthenticatorTestBase::SetUp() { |
} |
void AuthenticatorTestBase::RunAuthExchange() { |
- ContinueAuthExchangeWith(client_.get(), host_.get()); |
+ ContinueAuthExchangeWith(client_.get(), |
+ host_.get(), |
+ client_->started(), |
+ host_->started()); |
} |
void AuthenticatorTestBase::RunHostInitiatedAuthExchange() { |
- ContinueAuthExchangeWith(host_.get(), client_.get()); |
+ ContinueAuthExchangeWith(host_.get(), |
+ client_.get(), |
+ host_->started(), |
+ client_->started()); |
} |
// static |
+// This function sends a message from the sender and receiver and recursively |
+// calls itself to the send the next message from the receiver to the sender |
+// untils the authentication completes. |
void AuthenticatorTestBase::ContinueAuthExchangeWith(Authenticator* sender, |
- Authenticator* receiver) { |
+ Authenticator* receiver, |
+ bool sender_started, |
+ bool receiver_started) { |
scoped_ptr<buzz::XmlElement> message; |
ASSERT_NE(Authenticator::WAITING_MESSAGE, sender->state()); |
if (sender->state() == Authenticator::ACCEPTED || |
sender->state() == Authenticator::REJECTED) |
return; |
- // Pass message from client to host. |
+ |
+ // Verify that once the started flag for either party is set to true, |
+ // it should always stay true. |
+ if (receiver_started) { |
+ ASSERT_TRUE(receiver->started()); |
+ } |
+ |
+ if (sender_started) { |
+ ASSERT_TRUE(sender->started()); |
+ } |
+ |
ASSERT_EQ(Authenticator::MESSAGE_READY, sender->state()); |
message = sender->GetNextMessage(); |
ASSERT_TRUE(message.get()); |
@@ -84,7 +105,8 @@ void AuthenticatorTestBase::ContinueAuthExchangeWith(Authenticator* sender, |
ASSERT_EQ(Authenticator::WAITING_MESSAGE, receiver->state()); |
receiver->ProcessMessage(message.get(), base::Bind( |
&AuthenticatorTestBase::ContinueAuthExchangeWith, |
- base::Unretained(receiver), base::Unretained(sender))); |
+ base::Unretained(receiver), base::Unretained(sender), |
+ receiver->started(), sender->started())); |
} |
void AuthenticatorTestBase::RunChannelAuth(bool expected_fail) { |