| OLD | NEW | 
|    1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2013 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 "google_apis/gcm/engine/connection_factory_impl.h" |    5 #include "google_apis/gcm/engine/connection_factory_impl.h" | 
|    6  |    6  | 
|    7 #include <cmath> |    7 #include <cmath> | 
|    8  |    8  | 
|    9 #include "base/message_loop/message_loop.h" |    9 #include "base/message_loop/message_loop.h" | 
|   10 #include "base/run_loop.h" |   10 #include "base/run_loop.h" | 
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  265   void ConnectionsComplete(); |  265   void ConnectionsComplete(); | 
|  266  |  266  | 
|  267   TestConnectionFactoryImpl factory_; |  267   TestConnectionFactoryImpl factory_; | 
|  268   base::MessageLoop message_loop_; |  268   base::MessageLoop message_loop_; | 
|  269   scoped_ptr<base::RunLoop> run_loop_; |  269   scoped_ptr<base::RunLoop> run_loop_; | 
|  270  |  270  | 
|  271   GURL connected_server_; |  271   GURL connected_server_; | 
|  272 }; |  272 }; | 
|  273  |  273  | 
|  274 ConnectionFactoryImplTest::ConnectionFactoryImplTest() |  274 ConnectionFactoryImplTest::ConnectionFactoryImplTest() | 
|  275    : factory_(base::Bind(&ConnectionFactoryImplTest::ConnectionsComplete, |  275     : factory_(base::Bind(&ConnectionFactoryImplTest::ConnectionsComplete, | 
|  276                          base::Unretained(this))), |  276                          base::Unretained(this))), | 
|  277      run_loop_(new base::RunLoop()) { |  277       run_loop_(new base::RunLoop()) { | 
|  278   factory()->SetConnectionListener(this); |  278   factory()->SetConnectionListener(this); | 
|  279   factory()->Initialize( |  279   factory()->Initialize( | 
|  280       ConnectionFactory::BuildLoginRequestCallback(), |  280       ConnectionFactory::BuildLoginRequestCallback(), | 
|  281       ConnectionHandler::ProtoReceivedCallback(), |  281       ConnectionHandler::ProtoReceivedCallback(), | 
|  282       ConnectionHandler::ProtoSentCallback()); |  282       ConnectionHandler::ProtoSentCallback()); | 
|  283 } |  283 } | 
|  284 ConnectionFactoryImplTest::~ConnectionFactoryImplTest() {} |  284 ConnectionFactoryImplTest::~ConnectionFactoryImplTest() {} | 
|  285  |  285  | 
|  286 void ConnectionFactoryImplTest::WaitForConnections() { |  286 void ConnectionFactoryImplTest::WaitForConnections() { | 
|  287   run_loop_->Run(); |  287   run_loop_->Run(); | 
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  426   base::TimeTicks initial_backoff = factory()->NextRetryAttempt(); |  426   base::TimeTicks initial_backoff = factory()->NextRetryAttempt(); | 
|  427   EXPECT_FALSE(initial_backoff.is_null()); |  427   EXPECT_FALSE(initial_backoff.is_null()); | 
|  428  |  428  | 
|  429   factory()->SetDelayLogin(true); |  429   factory()->SetDelayLogin(true); | 
|  430   factory()->SetConnectResult(net::OK); |  430   factory()->SetConnectResult(net::OK); | 
|  431   factory()->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_WIFI); |  431   factory()->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_WIFI); | 
|  432   WaitForConnections(); |  432   WaitForConnections(); | 
|  433   EXPECT_FALSE(factory()->IsEndpointReachable()); |  433   EXPECT_FALSE(factory()->IsEndpointReachable()); | 
|  434  |  434  | 
|  435   // Pump the loop, to ensure the pending backoff retry has no effect. |  435   // Pump the loop, to ensure the pending backoff retry has no effect. | 
|  436   base::MessageLoop::current()->PostDelayedTask( |  436   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 
|  437       FROM_HERE, |  437       FROM_HERE, | 
|  438       base::MessageLoop::QuitClosure(), |  438       base::MessageLoop::QuitClosure(), | 
|  439       base::TimeDelta::FromMilliseconds(1)); |  439       base::TimeDelta::FromMilliseconds(1)); | 
|  440   WaitForConnections(); |  440   WaitForConnections(); | 
|  441 } |  441 } | 
|  442  |  442  | 
|  443 // Fail after successful connection via signal reset. |  443 // Fail after successful connection via signal reset. | 
|  444 TEST_F(ConnectionFactoryImplTest, FailViaSignalReset) { |  444 TEST_F(ConnectionFactoryImplTest, FailViaSignalReset) { | 
|  445   factory()->SetConnectResult(net::OK); |  445   factory()->SetConnectResult(net::OK); | 
|  446   factory()->Connect(); |  446   factory()->Connect(); | 
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  564   // Now trigger force a re-connection. |  564   // Now trigger force a re-connection. | 
|  565   factory()->SetConnectResult(net::OK); |  565   factory()->SetConnectResult(net::OK); | 
|  566   factory()->Connect(); |  566   factory()->Connect(); | 
|  567   WaitForConnections(); |  567   WaitForConnections(); | 
|  568  |  568  | 
|  569   // Re-connection should succeed. |  569   // Re-connection should succeed. | 
|  570   EXPECT_TRUE(factory()->IsEndpointReachable()); |  570   EXPECT_TRUE(factory()->IsEndpointReachable()); | 
|  571 } |  571 } | 
|  572  |  572  | 
|  573 }  // namespace gcm |  573 }  // namespace gcm | 
| OLD | NEW |