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

Unified Diff: chromeos/network/network_connection_handler_impl_unittest.cc

Issue 2858943003: [CrOS Tether] Add disconnect handling to NetworkConnectionHandler::TetherDelegate. (Closed)
Patch Set: Rebased. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/network/network_connection_handler_impl.cc ('k') | chromeos/network/network_profile_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/network/network_connection_handler_impl_unittest.cc
diff --git a/chromeos/network/network_connection_handler_impl_unittest.cc b/chromeos/network/network_connection_handler_impl_unittest.cc
index 6a1e951c857b7e859e705de1266df6e0d6147f4e..909b58b8c611a1e950fa693bc15689e08dc90895 100644
--- a/chromeos/network/network_connection_handler_impl_unittest.cc
+++ b/chromeos/network/network_connection_handler_impl_unittest.cc
@@ -87,13 +87,31 @@ class TestNetworkConnectionObserver : public NetworkConnectionObserver {
class FakeTetherDelegate : public NetworkConnectionHandler::TetherDelegate {
public:
- FakeTetherDelegate() {}
+ FakeTetherDelegate()
+ : last_delegate_function_type_(DelegateFunctionType::NONE) {}
~FakeTetherDelegate() override {}
+ enum class DelegateFunctionType { NONE, CONNECT, DISCONNECT };
+
+ DelegateFunctionType last_delegate_function_type() {
+ return last_delegate_function_type_;
+ }
+
void ConnectToNetwork(
const std::string& service_path,
const base::Closure& success_callback,
const network_handler::StringResultCallback& error_callback) override {
+ last_delegate_function_type_ = DelegateFunctionType::CONNECT;
+ last_service_path_ = service_path;
+ last_success_callback_ = success_callback;
+ last_error_callback_ = error_callback;
+ }
+
+ void DisconnectFromNetwork(
+ const std::string& service_path,
+ const base::Closure& success_callback,
+ const network_handler::StringResultCallback& error_callback) override {
+ last_delegate_function_type_ = DelegateFunctionType::DISCONNECT;
last_service_path_ = service_path;
last_success_callback_ = success_callback;
last_error_callback_ = error_callback;
@@ -111,15 +129,16 @@ class FakeTetherDelegate : public NetworkConnectionHandler::TetherDelegate {
std::string last_service_path_;
base::Closure last_success_callback_;
network_handler::StringResultCallback last_error_callback_;
+ DelegateFunctionType last_delegate_function_type_;
};
} // namespace
-class NetworkConnectionHandlerTest : public NetworkStateTest {
+class NetworkConnectionHandlerImplTest : public NetworkStateTest {
public:
- NetworkConnectionHandlerTest() : scoped_task_scheduler_(&message_loop_) {}
+ NetworkConnectionHandlerImplTest() : scoped_task_scheduler_(&message_loop_) {}
- ~NetworkConnectionHandlerTest() override {}
+ ~NetworkConnectionHandlerImplTest() override {}
void SetUp() override {
ASSERT_TRUE(test_nssdb_.is_open());
@@ -191,9 +210,9 @@ class NetworkConnectionHandlerTest : public NetworkStateTest {
const bool check_error_state = true;
network_connection_handler_->ConnectToNetwork(
service_path,
- base::Bind(&NetworkConnectionHandlerTest::SuccessCallback,
+ base::Bind(&NetworkConnectionHandlerImplTest::SuccessCallback,
base::Unretained(this)),
- base::Bind(&NetworkConnectionHandlerTest::ErrorCallback,
+ base::Bind(&NetworkConnectionHandlerImplTest::ErrorCallback,
base::Unretained(this)),
check_error_state);
base::RunLoop().RunUntilIdle();
@@ -202,9 +221,9 @@ class NetworkConnectionHandlerTest : public NetworkStateTest {
void Disconnect(const std::string& service_path) {
network_connection_handler_->DisconnectNetwork(
service_path,
- base::Bind(&NetworkConnectionHandlerTest::SuccessCallback,
+ base::Bind(&NetworkConnectionHandlerImplTest::SuccessCallback,
base::Unretained(this)),
- base::Bind(&NetworkConnectionHandlerTest::ErrorCallback,
+ base::Bind(&NetworkConnectionHandlerImplTest::ErrorCallback,
base::Unretained(this)));
base::RunLoop().RunUntilIdle();
}
@@ -297,7 +316,7 @@ class NetworkConnectionHandlerTest : public NetworkStateTest {
private:
base::test::ScopedTaskScheduler scoped_task_scheduler_;
- DISALLOW_COPY_AND_ASSIGN(NetworkConnectionHandlerTest);
+ DISALLOW_COPY_AND_ASSIGN(NetworkConnectionHandlerImplTest);
};
namespace {
@@ -326,7 +345,8 @@ const char* kPolicyWifi0 =
} // namespace
-TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectSuccess) {
+TEST_F(NetworkConnectionHandlerImplTest,
+ NetworkConnectionHandlerConnectSuccess) {
EXPECT_FALSE(ConfigureService(kConfigConnectable).empty());
Connect(kWifi0);
EXPECT_EQ(kSuccessResult, GetResultAndReset());
@@ -337,7 +357,7 @@ TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectSuccess) {
EXPECT_EQ(kSuccessResult, network_connection_observer_->GetResult(kWifi0));
}
-TEST_F(NetworkConnectionHandlerTest,
+TEST_F(NetworkConnectionHandlerImplTest,
NetworkConnectionHandlerConnectProhibited) {
EXPECT_FALSE(ConfigureService(kConfigConnectable).empty());
base::DictionaryValue global_config;
@@ -355,7 +375,8 @@ TEST_F(NetworkConnectionHandlerTest,
}
// Handles basic failure cases.
-TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectFailure) {
+TEST_F(NetworkConnectionHandlerImplTest,
+ NetworkConnectionHandlerConnectFailure) {
Connect(kNoNetwork);
EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed,
GetResultAndReset());
@@ -410,7 +431,7 @@ const char* kPolicyWithCertPatternTemplate =
} // namespace
// Handle certificates.
-TEST_F(NetworkConnectionHandlerTest, ConnectCertificateMissing) {
+TEST_F(NetworkConnectionHandlerImplTest, ConnectCertificateMissing) {
StartCertLoader();
SetupPolicy(base::StringPrintf(kPolicyWithCertPatternTemplate, "unknown"),
base::DictionaryValue(), // no global config
@@ -421,7 +442,7 @@ TEST_F(NetworkConnectionHandlerTest, ConnectCertificateMissing) {
GetResultAndReset());
}
-TEST_F(NetworkConnectionHandlerTest, ConnectWithCertificateSuccess) {
+TEST_F(NetworkConnectionHandlerImplTest, ConnectWithCertificateSuccess) {
StartCertLoader();
scoped_refptr<net::X509Certificate> cert = ImportTestClientCert();
ASSERT_TRUE(cert.get());
@@ -436,7 +457,7 @@ TEST_F(NetworkConnectionHandlerTest, ConnectWithCertificateSuccess) {
}
// Disabled, see http://crbug.com/396729.
-TEST_F(NetworkConnectionHandlerTest,
+TEST_F(NetworkConnectionHandlerImplTest,
DISABLED_ConnectWithCertificateRequestedBeforeCertsAreLoaded) {
scoped_refptr<net::X509Certificate> cert = ImportTestClientCert();
ASSERT_TRUE(cert.get());
@@ -461,7 +482,7 @@ TEST_F(NetworkConnectionHandlerTest,
EXPECT_EQ(kSuccessResult, GetResultAndReset());
}
-TEST_F(NetworkConnectionHandlerTest,
+TEST_F(NetworkConnectionHandlerImplTest,
NetworkConnectionHandlerDisconnectSuccess) {
EXPECT_FALSE(ConfigureService(kConfigConnected).empty());
Disconnect(kWifi1);
@@ -469,7 +490,7 @@ TEST_F(NetworkConnectionHandlerTest,
EXPECT_EQ(kSuccessResult, GetResultAndReset());
}
-TEST_F(NetworkConnectionHandlerTest,
+TEST_F(NetworkConnectionHandlerImplTest,
NetworkConnectionHandlerDisconnectFailure) {
Connect(kNoNetwork);
EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed,
@@ -480,7 +501,7 @@ TEST_F(NetworkConnectionHandlerTest,
EXPECT_EQ(NetworkConnectionHandler::kErrorNotConnected, GetResultAndReset());
}
-TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_Success) {
+TEST_F(NetworkConnectionHandlerImplTest, ConnectToTetherNetwork_Success) {
network_state_handler()->SetTetherTechnologyState(
NetworkStateHandler::TECHNOLOGY_ENABLED);
network_state_handler()->AddTetherNetworkState(
@@ -490,6 +511,8 @@ TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_Success) {
Connect(kTetherGuid /* service_path */);
+ EXPECT_EQ(FakeTetherDelegate::DelegateFunctionType::CONNECT,
+ fake_tether_delegate_->last_delegate_function_type());
EXPECT_EQ(kTetherGuid, fake_tether_delegate_->last_service_path());
fake_tether_delegate_->last_success_callback().Run();
EXPECT_EQ(kSuccessResult, GetResultAndReset());
@@ -498,7 +521,7 @@ TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_Success) {
network_connection_observer_->GetResult(kTetherGuid));
}
-TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_Failure) {
+TEST_F(NetworkConnectionHandlerImplTest, ConnectToTetherNetwork_Failure) {
network_state_handler()->SetTetherTechnologyState(
NetworkStateHandler::TECHNOLOGY_ENABLED);
network_state_handler()->AddTetherNetworkState(
@@ -508,6 +531,8 @@ TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_Failure) {
Connect(kTetherGuid /* service_path */);
+ EXPECT_EQ(FakeTetherDelegate::DelegateFunctionType::CONNECT,
+ fake_tether_delegate_->last_delegate_function_type());
EXPECT_EQ(kTetherGuid, fake_tether_delegate_->last_service_path());
fake_tether_delegate_->last_error_callback().Run(
NetworkConnectionHandler::kErrorConnectFailed);
@@ -517,7 +542,8 @@ TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_Failure) {
network_connection_observer_->GetResult(kTetherGuid));
}
-TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_NoTetherDelegate) {
+TEST_F(NetworkConnectionHandlerImplTest,
+ ConnectToTetherNetwork_NoTetherDelegate) {
network_state_handler()->SetTetherTechnologyState(
NetworkStateHandler::TECHNOLOGY_ENABLED);
network_state_handler()->AddTetherNetworkState(
@@ -528,13 +554,78 @@ TEST_F(NetworkConnectionHandlerTest, ConnectToTetherNetwork_NoTetherDelegate) {
Connect(kTetherGuid /* service_path */);
- EXPECT_EQ(
- NetworkConnectionHandler::kErrorTetherConnectionAttemptWithNoDelegate,
- GetResultAndReset());
+ EXPECT_EQ(FakeTetherDelegate::DelegateFunctionType::NONE,
+ fake_tether_delegate_->last_delegate_function_type());
+ EXPECT_EQ(NetworkConnectionHandler::kErrorTetherAttemptWithNoDelegate,
+ GetResultAndReset());
+ EXPECT_TRUE(network_connection_observer_->GetRequested(kTetherGuid));
+ EXPECT_EQ(NetworkConnectionHandler::kErrorTetherAttemptWithNoDelegate,
+ network_connection_observer_->GetResult(kTetherGuid));
+}
+
+TEST_F(NetworkConnectionHandlerImplTest, DisconnectFromTetherNetwork_Success) {
+ network_state_handler()->SetTetherTechnologyState(
+ NetworkStateHandler::TECHNOLOGY_ENABLED);
+ network_state_handler()->AddTetherNetworkState(
+ kTetherGuid, "TetherNetwork", "Carrier", 100 /* battery_percentage */,
+ 100 /* signal_strength */, true /* has_connected_to_host */);
+ network_state_handler()->SetTetherNetworkStateConnecting(kTetherGuid);
+ network_connection_handler_->SetTetherDelegate(fake_tether_delegate_.get());
+
+ Disconnect(kTetherGuid /* service_path */);
+
+ EXPECT_EQ(FakeTetherDelegate::DelegateFunctionType::DISCONNECT,
+ fake_tether_delegate_->last_delegate_function_type());
+ EXPECT_EQ(kTetherGuid, fake_tether_delegate_->last_service_path());
+ fake_tether_delegate_->last_success_callback().Run();
+ EXPECT_EQ(kSuccessResult, GetResultAndReset());
+ EXPECT_TRUE(network_connection_observer_->GetRequested(kTetherGuid));
+ EXPECT_EQ(kSuccessResult,
+ network_connection_observer_->GetResult(kTetherGuid));
+}
+
+TEST_F(NetworkConnectionHandlerImplTest, DisconnectFromTetherNetwork_Failure) {
+ network_state_handler()->SetTetherTechnologyState(
+ NetworkStateHandler::TECHNOLOGY_ENABLED);
+ network_state_handler()->AddTetherNetworkState(
+ kTetherGuid, "TetherNetwork", "Carrier", 100 /* battery_percentage */,
+ 100 /* signal_strength */, true /* has_connected_to_host */);
+ network_state_handler()->SetTetherNetworkStateConnecting(kTetherGuid);
+ network_connection_handler_->SetTetherDelegate(fake_tether_delegate_.get());
+
+ Disconnect(kTetherGuid /* service_path */);
+
+ EXPECT_EQ(FakeTetherDelegate::DelegateFunctionType::DISCONNECT,
+ fake_tether_delegate_->last_delegate_function_type());
+ EXPECT_EQ(kTetherGuid, fake_tether_delegate_->last_service_path());
+ fake_tether_delegate_->last_error_callback().Run(
+ NetworkConnectionHandler::kErrorConnectFailed);
+ EXPECT_EQ(NetworkConnectionHandler::kErrorConnectFailed, GetResultAndReset());
+ EXPECT_TRUE(network_connection_observer_->GetRequested(kTetherGuid));
+ EXPECT_EQ(NetworkConnectionHandler::kErrorConnectFailed,
+ network_connection_observer_->GetResult(kTetherGuid));
+}
+
+TEST_F(NetworkConnectionHandlerImplTest,
+ DisconnectFromTetherNetwork_NoTetherDelegate) {
+ network_state_handler()->SetTetherTechnologyState(
+ NetworkStateHandler::TECHNOLOGY_ENABLED);
+ network_state_handler()->AddTetherNetworkState(
+ kTetherGuid, "TetherNetwork", "Carrier", 100 /* battery_percentage */,
+ 100 /* signal_strength */, true /* has_connected_to_host */);
+ network_state_handler()->SetTetherNetworkStateConnecting(kTetherGuid);
+
+ // Do not set a tether delegate.
+
+ Disconnect(kTetherGuid /* service_path */);
+
+ EXPECT_EQ(FakeTetherDelegate::DelegateFunctionType::NONE,
+ fake_tether_delegate_->last_delegate_function_type());
+ EXPECT_EQ(NetworkConnectionHandler::kErrorTetherAttemptWithNoDelegate,
+ GetResultAndReset());
EXPECT_TRUE(network_connection_observer_->GetRequested(kTetherGuid));
- EXPECT_EQ(
- NetworkConnectionHandler::kErrorTetherConnectionAttemptWithNoDelegate,
- network_connection_observer_->GetResult(kTetherGuid));
+ EXPECT_EQ(NetworkConnectionHandler::kErrorTetherAttemptWithNoDelegate,
+ network_connection_observer_->GetResult(kTetherGuid));
}
} // namespace chromeos
« no previous file with comments | « chromeos/network/network_connection_handler_impl.cc ('k') | chromeos/network/network_profile_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698