| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chromeos/network/network_connection_handler.h" | 5 #include "chromeos/network/network_connection_handler.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/callback.h" | |
| 13 #include "base/files/file_util.h" | 12 #include "base/files/file_util.h" |
| 14 #include "base/json/json_reader.h" | 13 #include "base/json/json_reader.h" |
| 15 #include "base/macros.h" | 14 #include "base/macros.h" |
| 16 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
| 17 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
| 18 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
| 19 #include "chromeos/cert_loader.h" | 18 #include "chromeos/cert_loader.h" |
| 20 #include "chromeos/dbus/dbus_thread_manager.h" | 19 #include "chromeos/dbus/dbus_thread_manager.h" |
| 21 #include "chromeos/dbus/shill_device_client.h" | |
| 22 #include "chromeos/dbus/shill_manager_client.h" | |
| 23 #include "chromeos/dbus/shill_profile_client.h" | |
| 24 #include "chromeos/dbus/shill_service_client.h" | |
| 25 #include "chromeos/network/managed_network_configuration_handler_impl.h" | 20 #include "chromeos/network/managed_network_configuration_handler_impl.h" |
| 26 #include "chromeos/network/network_configuration_handler.h" | 21 #include "chromeos/network/network_configuration_handler.h" |
| 27 #include "chromeos/network/network_connection_observer.h" | 22 #include "chromeos/network/network_connection_observer.h" |
| 28 #include "chromeos/network/network_profile_handler.h" | 23 #include "chromeos/network/network_profile_handler.h" |
| 29 #include "chromeos/network/network_state_handler.h" | 24 #include "chromeos/network/network_state_handler.h" |
| 25 #include "chromeos/network/network_state_test.h" |
| 30 #include "chromeos/network/onc/onc_utils.h" | 26 #include "chromeos/network/onc/onc_utils.h" |
| 31 #include "components/onc/onc_constants.h" | 27 #include "components/onc/onc_constants.h" |
| 32 #include "crypto/scoped_nss_types.h" | 28 #include "crypto/scoped_nss_types.h" |
| 33 #include "crypto/scoped_test_nss_db.h" | 29 #include "crypto/scoped_test_nss_db.h" |
| 34 #include "net/base/net_errors.h" | 30 #include "net/base/net_errors.h" |
| 35 #include "net/cert/nss_cert_database_chromeos.h" | 31 #include "net/cert/nss_cert_database_chromeos.h" |
| 36 #include "net/cert/x509_certificate.h" | 32 #include "net/cert/x509_certificate.h" |
| 37 #include "net/test/cert_test_util.h" | 33 #include "net/test/cert_test_util.h" |
| 38 #include "net/test/test_data_directory.h" | 34 #include "net/test/test_data_directory.h" |
| 39 #include "testing/gtest/include/gtest/gtest.h" | 35 #include "testing/gtest/include/gtest/gtest.h" |
| 40 #include "third_party/cros_system_api/dbus/service_constants.h" | 36 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 41 | 37 |
| 42 namespace chromeos { | 38 namespace chromeos { |
| 43 | 39 |
| 44 namespace { | 40 namespace { |
| 45 | 41 |
| 46 const char* kSuccessResult = "success"; | 42 const char* kSuccessResult = "success"; |
| 47 const char* kUsernameHash = "userhash"; | |
| 48 | |
| 49 void ConfigureCallback(const dbus::ObjectPath& result) { | |
| 50 } | |
| 51 | |
| 52 void ConfigureErrorCallback(const std::string& error_name, | |
| 53 const std::string& error_message) { | |
| 54 } | |
| 55 | 43 |
| 56 class TestNetworkConnectionObserver : public NetworkConnectionObserver { | 44 class TestNetworkConnectionObserver : public NetworkConnectionObserver { |
| 57 public: | 45 public: |
| 58 TestNetworkConnectionObserver() {} | 46 TestNetworkConnectionObserver() {} |
| 59 ~TestNetworkConnectionObserver() override {} | 47 ~TestNetworkConnectionObserver() override {} |
| 60 | 48 |
| 61 // NetworkConnectionObserver | 49 // NetworkConnectionObserver |
| 62 void ConnectToNetworkRequested(const std::string& service_path) override { | 50 void ConnectToNetworkRequested(const std::string& service_path) override { |
| 63 requests_.insert(service_path); | 51 requests_.insert(service_path); |
| 64 } | 52 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 89 | 77 |
| 90 private: | 78 private: |
| 91 std::set<std::string> requests_; | 79 std::set<std::string> requests_; |
| 92 std::map<std::string, std::string> results_; | 80 std::map<std::string, std::string> results_; |
| 93 | 81 |
| 94 DISALLOW_COPY_AND_ASSIGN(TestNetworkConnectionObserver); | 82 DISALLOW_COPY_AND_ASSIGN(TestNetworkConnectionObserver); |
| 95 }; | 83 }; |
| 96 | 84 |
| 97 } // namespace | 85 } // namespace |
| 98 | 86 |
| 99 class NetworkConnectionHandlerTest : public testing::Test { | 87 class NetworkConnectionHandlerTest : public NetworkStateTest { |
| 100 public: | 88 public: |
| 101 NetworkConnectionHandlerTest() | 89 NetworkConnectionHandlerTest() {} |
| 102 : test_manager_client_(nullptr), test_service_client_(nullptr) {} | |
| 103 | 90 |
| 104 ~NetworkConnectionHandlerTest() override {} | 91 ~NetworkConnectionHandlerTest() override {} |
| 105 | 92 |
| 106 void SetUp() override { | 93 void SetUp() override { |
| 107 ASSERT_TRUE(test_nssdb_.is_open()); | 94 ASSERT_TRUE(test_nssdb_.is_open()); |
| 108 | 95 |
| 109 // Use the same DB for public and private slot. | 96 // Use the same DB for public and private slot. |
| 110 test_nsscertdb_.reset(new net::NSSCertDatabaseChromeOS( | 97 test_nsscertdb_.reset(new net::NSSCertDatabaseChromeOS( |
| 111 crypto::ScopedPK11Slot(PK11_ReferenceSlot(test_nssdb_.slot())), | 98 crypto::ScopedPK11Slot(PK11_ReferenceSlot(test_nssdb_.slot())), |
| 112 crypto::ScopedPK11Slot(PK11_ReferenceSlot(test_nssdb_.slot())))); | 99 crypto::ScopedPK11Slot(PK11_ReferenceSlot(test_nssdb_.slot())))); |
| 113 test_nsscertdb_->SetSlowTaskRunnerForTest(message_loop_.task_runner()); | 100 test_nsscertdb_->SetSlowTaskRunnerForTest(message_loop_.task_runner()); |
| 114 | 101 |
| 115 CertLoader::Initialize(); | 102 CertLoader::Initialize(); |
| 116 CertLoader::ForceHardwareBackedForTesting(); | 103 CertLoader::ForceHardwareBackedForTesting(); |
| 117 | 104 |
| 118 DBusThreadManager::Initialize(); | 105 DBusThreadManager::Initialize(); |
| 119 DBusThreadManager* dbus_manager = DBusThreadManager::Get(); | |
| 120 test_manager_client_ = | |
| 121 dbus_manager->GetShillManagerClient()->GetTestInterface(); | |
| 122 test_service_client_ = | |
| 123 dbus_manager->GetShillServiceClient()->GetTestInterface(); | |
| 124 | 106 |
| 125 test_manager_client_->AddTechnology(shill::kTypeWifi, true /* enabled */); | 107 NetworkStateTest::SetUp(); |
| 126 dbus_manager->GetShillDeviceClient()->GetTestInterface()->AddDevice( | |
| 127 "/device/wifi1", shill::kTypeWifi, "wifi_device1"); | |
| 128 test_manager_client_->AddTechnology(shill::kTypeCellular, | |
| 129 true /* enabled */); | |
| 130 dbus_manager->GetShillProfileClient()->GetTestInterface()->AddProfile( | |
| 131 "shared_profile_path", std::string() /* shared profile */); | |
| 132 dbus_manager->GetShillProfileClient()->GetTestInterface()->AddProfile( | |
| 133 "user_profile_path", kUsernameHash); | |
| 134 | 108 |
| 135 base::RunLoop().RunUntilIdle(); | |
| 136 LoginState::Initialize(); | 109 LoginState::Initialize(); |
| 137 network_state_handler_ = NetworkStateHandler::InitializeForTest(); | 110 |
| 138 network_config_handler_.reset( | 111 network_config_handler_.reset( |
| 139 NetworkConfigurationHandler::InitializeForTest( | 112 NetworkConfigurationHandler::InitializeForTest( |
| 140 network_state_handler_.get(), | 113 network_state_handler(), nullptr /* network_device_handler */)); |
| 141 nullptr /* network_device_handler */)); | |
| 142 | 114 |
| 143 network_profile_handler_.reset(new NetworkProfileHandler()); | 115 network_profile_handler_.reset(new NetworkProfileHandler()); |
| 144 network_profile_handler_->Init(); | 116 network_profile_handler_->Init(); |
| 145 | 117 |
| 146 managed_config_handler_.reset(new ManagedNetworkConfigurationHandlerImpl()); | 118 managed_config_handler_.reset(new ManagedNetworkConfigurationHandlerImpl()); |
| 147 managed_config_handler_->Init( | 119 managed_config_handler_->Init( |
| 148 network_state_handler_.get(), network_profile_handler_.get(), | 120 network_state_handler(), network_profile_handler_.get(), |
| 149 network_config_handler_.get(), nullptr /* network_device_handler */, | 121 network_config_handler_.get(), nullptr /* network_device_handler */, |
| 150 nullptr /* prohibited_tecnologies_handler */); | 122 nullptr /* prohibited_tecnologies_handler */); |
| 151 | 123 |
| 152 network_connection_handler_.reset(new NetworkConnectionHandler); | 124 network_connection_handler_.reset(new NetworkConnectionHandler); |
| 153 network_connection_handler_->Init(network_state_handler_.get(), | 125 network_connection_handler_->Init(network_state_handler(), |
| 154 network_config_handler_.get(), | 126 network_config_handler_.get(), |
| 155 managed_config_handler_.get()); | 127 managed_config_handler_.get()); |
| 156 network_connection_observer_.reset(new TestNetworkConnectionObserver); | 128 network_connection_observer_.reset(new TestNetworkConnectionObserver); |
| 157 network_connection_handler_->AddObserver( | 129 network_connection_handler_->AddObserver( |
| 158 network_connection_observer_.get()); | 130 network_connection_observer_.get()); |
| 159 | 131 |
| 160 base::RunLoop().RunUntilIdle(); | 132 base::RunLoop().RunUntilIdle(); |
| 161 } | 133 } |
| 162 | 134 |
| 163 void TearDown() override { | 135 void TearDown() override { |
| 164 network_state_handler_->Shutdown(); | 136 ShutdownNetworkState(); |
| 137 |
| 165 managed_config_handler_.reset(); | 138 managed_config_handler_.reset(); |
| 166 network_profile_handler_.reset(); | 139 network_profile_handler_.reset(); |
| 167 network_connection_handler_->RemoveObserver( | 140 network_connection_handler_->RemoveObserver( |
| 168 network_connection_observer_.get()); | 141 network_connection_observer_.get()); |
| 169 network_connection_observer_.reset(); | 142 network_connection_observer_.reset(); |
| 170 network_connection_handler_.reset(); | 143 network_connection_handler_.reset(); |
| 171 network_config_handler_.reset(); | 144 network_config_handler_.reset(); |
| 172 network_state_handler_.reset(); | 145 |
| 146 NetworkStateTest::TearDown(); |
| 147 |
| 148 LoginState::Shutdown(); |
| 149 |
| 150 NetworkStateTest::TearDown(); |
| 151 |
| 152 DBusThreadManager::Shutdown(); |
| 173 CertLoader::Shutdown(); | 153 CertLoader::Shutdown(); |
| 174 LoginState::Shutdown(); | |
| 175 DBusThreadManager::Shutdown(); | |
| 176 } | 154 } |
| 177 | 155 |
| 178 protected: | 156 protected: |
| 179 bool Configure(const std::string& json_string) { | |
| 180 std::unique_ptr<base::DictionaryValue> json_dict = | |
| 181 onc::ReadDictionaryFromJson(json_string); | |
| 182 if (!json_dict) { | |
| 183 LOG(ERROR) << "Error parsing json: " << json_string; | |
| 184 return false; | |
| 185 } | |
| 186 DBusThreadManager::Get()->GetShillManagerClient()->ConfigureService( | |
| 187 *json_dict, | |
| 188 base::Bind(&ConfigureCallback), | |
| 189 base::Bind(&ConfigureErrorCallback)); | |
| 190 base::RunLoop().RunUntilIdle(); | |
| 191 return true; | |
| 192 } | |
| 193 | |
| 194 void Connect(const std::string& service_path) { | 157 void Connect(const std::string& service_path) { |
| 195 const bool check_error_state = true; | 158 const bool check_error_state = true; |
| 196 network_connection_handler_->ConnectToNetwork( | 159 network_connection_handler_->ConnectToNetwork( |
| 197 service_path, | 160 service_path, |
| 198 base::Bind(&NetworkConnectionHandlerTest::SuccessCallback, | 161 base::Bind(&NetworkConnectionHandlerTest::SuccessCallback, |
| 199 base::Unretained(this)), | 162 base::Unretained(this)), |
| 200 base::Bind(&NetworkConnectionHandlerTest::ErrorCallback, | 163 base::Bind(&NetworkConnectionHandlerTest::ErrorCallback, |
| 201 base::Unretained(this)), | 164 base::Unretained(this)), |
| 202 check_error_state); | 165 check_error_state); |
| 203 base::RunLoop().RunUntilIdle(); | 166 base::RunLoop().RunUntilIdle(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 221 std::unique_ptr<base::DictionaryValue> error_data) { | 184 std::unique_ptr<base::DictionaryValue> error_data) { |
| 222 result_ = error_name; | 185 result_ = error_name; |
| 223 } | 186 } |
| 224 | 187 |
| 225 std::string GetResultAndReset() { | 188 std::string GetResultAndReset() { |
| 226 std::string result; | 189 std::string result; |
| 227 result.swap(result_); | 190 result.swap(result_); |
| 228 return result; | 191 return result; |
| 229 } | 192 } |
| 230 | 193 |
| 231 std::string GetServiceStringProperty(const std::string& service_path, | |
| 232 const std::string& key) { | |
| 233 std::string result; | |
| 234 const base::DictionaryValue* properties = | |
| 235 test_service_client_->GetServiceProperties(service_path); | |
| 236 if (properties) | |
| 237 properties->GetStringWithoutPathExpansion(key, &result); | |
| 238 return result; | |
| 239 } | |
| 240 | |
| 241 void StartCertLoader() { | 194 void StartCertLoader() { |
| 242 CertLoader::Get()->StartWithNSSDB(test_nsscertdb_.get()); | 195 CertLoader::Get()->StartWithNSSDB(test_nsscertdb_.get()); |
| 243 base::RunLoop().RunUntilIdle(); | 196 base::RunLoop().RunUntilIdle(); |
| 244 } | 197 } |
| 245 | 198 |
| 246 void LoginToRegularUser() { | 199 void LoginToRegularUser() { |
| 247 LoginState::Get()->SetLoggedInState(LoginState::LOGGED_IN_ACTIVE, | 200 LoginState::Get()->SetLoggedInState(LoginState::LOGGED_IN_ACTIVE, |
| 248 LoginState::LOGGED_IN_USER_REGULAR); | 201 LoginState::LOGGED_IN_USER_REGULAR); |
| 249 base::RunLoop().RunUntilIdle(); | 202 base::RunLoop().RunUntilIdle(); |
| 250 } | 203 } |
| (...skipping 30 matching lines...) Expand all Loading... |
| 281 base::JSONReader::ReadAndReturnError(network_configs_json, | 234 base::JSONReader::ReadAndReturnError(network_configs_json, |
| 282 base::JSON_ALLOW_TRAILING_COMMAS, | 235 base::JSON_ALLOW_TRAILING_COMMAS, |
| 283 nullptr, &error); | 236 nullptr, &error); |
| 284 ASSERT_TRUE(network_configs_value) << error; | 237 ASSERT_TRUE(network_configs_value) << error; |
| 285 | 238 |
| 286 base::ListValue* network_configs = nullptr; | 239 base::ListValue* network_configs = nullptr; |
| 287 ASSERT_TRUE(network_configs_value->GetAsList(&network_configs)); | 240 ASSERT_TRUE(network_configs_value->GetAsList(&network_configs)); |
| 288 | 241 |
| 289 if (user_policy) { | 242 if (user_policy) { |
| 290 managed_config_handler_->SetPolicy(::onc::ONC_SOURCE_USER_POLICY, | 243 managed_config_handler_->SetPolicy(::onc::ONC_SOURCE_USER_POLICY, |
| 291 kUsernameHash, *network_configs, | 244 kUserHash, *network_configs, |
| 292 global_config); | 245 global_config); |
| 293 } else { | 246 } else { |
| 294 managed_config_handler_->SetPolicy(::onc::ONC_SOURCE_DEVICE_POLICY, | 247 managed_config_handler_->SetPolicy(::onc::ONC_SOURCE_DEVICE_POLICY, |
| 295 std::string(), // no username hash | 248 std::string(), // no username hash |
| 296 *network_configs, | 249 *network_configs, |
| 297 global_config); | 250 global_config); |
| 298 } | 251 } |
| 299 base::RunLoop().RunUntilIdle(); | 252 base::RunLoop().RunUntilIdle(); |
| 300 } | 253 } |
| 301 | 254 |
| 302 std::unique_ptr<NetworkStateHandler> network_state_handler_; | |
| 303 std::unique_ptr<NetworkConfigurationHandler> network_config_handler_; | 255 std::unique_ptr<NetworkConfigurationHandler> network_config_handler_; |
| 304 std::unique_ptr<NetworkConnectionHandler> network_connection_handler_; | 256 std::unique_ptr<NetworkConnectionHandler> network_connection_handler_; |
| 305 std::unique_ptr<TestNetworkConnectionObserver> network_connection_observer_; | 257 std::unique_ptr<TestNetworkConnectionObserver> network_connection_observer_; |
| 306 std::unique_ptr<ManagedNetworkConfigurationHandlerImpl> | 258 std::unique_ptr<ManagedNetworkConfigurationHandlerImpl> |
| 307 managed_config_handler_; | 259 managed_config_handler_; |
| 308 std::unique_ptr<NetworkProfileHandler> network_profile_handler_; | 260 std::unique_ptr<NetworkProfileHandler> network_profile_handler_; |
| 309 ShillManagerClient::TestInterface* test_manager_client_; | |
| 310 ShillServiceClient::TestInterface* test_service_client_; | |
| 311 crypto::ScopedTestNSSDB test_nssdb_; | 261 crypto::ScopedTestNSSDB test_nssdb_; |
| 312 std::unique_ptr<net::NSSCertDatabaseChromeOS> test_nsscertdb_; | 262 std::unique_ptr<net::NSSCertDatabaseChromeOS> test_nsscertdb_; |
| 313 base::MessageLoopForUI message_loop_; | 263 base::MessageLoopForUI message_loop_; |
| 314 std::string result_; | 264 std::string result_; |
| 315 | 265 |
| 316 private: | 266 private: |
| 317 DISALLOW_COPY_AND_ASSIGN(NetworkConnectionHandlerTest); | 267 DISALLOW_COPY_AND_ASSIGN(NetworkConnectionHandlerTest); |
| 318 }; | 268 }; |
| 319 | 269 |
| 320 namespace { | 270 namespace { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 337 " \"PassphraseRequired\": true }"; | 287 " \"PassphraseRequired\": true }"; |
| 338 | 288 |
| 339 const char* kPolicyWifi0 = | 289 const char* kPolicyWifi0 = |
| 340 "[{ \"GUID\": \"wifi0\", \"IPAddressConfigType\": \"DHCP\", " | 290 "[{ \"GUID\": \"wifi0\", \"IPAddressConfigType\": \"DHCP\", " |
| 341 " \"Type\": \"WiFi\", \"Name\": \"My WiFi Network\"," | 291 " \"Type\": \"WiFi\", \"Name\": \"My WiFi Network\"," |
| 342 " \"WiFi\": { \"SSID\": \"wifi0\"}}]"; | 292 " \"WiFi\": { \"SSID\": \"wifi0\"}}]"; |
| 343 | 293 |
| 344 } // namespace | 294 } // namespace |
| 345 | 295 |
| 346 TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectSuccess) { | 296 TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectSuccess) { |
| 347 EXPECT_TRUE(Configure(kConfigConnectable)); | 297 EXPECT_TRUE(ConfigureService(kConfigConnectable)); |
| 348 Connect(kWifi0); | 298 Connect(kWifi0); |
| 349 EXPECT_EQ(kSuccessResult, GetResultAndReset()); | 299 EXPECT_EQ(kSuccessResult, GetResultAndReset()); |
| 350 EXPECT_EQ(shill::kStateOnline, | 300 EXPECT_EQ(shill::kStateOnline, |
| 351 GetServiceStringProperty(kWifi0, shill::kStateProperty)); | 301 GetServiceStringProperty(kWifi0, shill::kStateProperty)); |
| 352 // Observer expectations | 302 // Observer expectations |
| 353 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi0)); | 303 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi0)); |
| 354 EXPECT_EQ(kSuccessResult, network_connection_observer_->GetResult(kWifi0)); | 304 EXPECT_EQ(kSuccessResult, network_connection_observer_->GetResult(kWifi0)); |
| 355 } | 305 } |
| 356 | 306 |
| 357 TEST_F(NetworkConnectionHandlerTest, | 307 TEST_F(NetworkConnectionHandlerTest, |
| 358 NetworkConnectionHandlerConnectProhibited) { | 308 NetworkConnectionHandlerConnectProhibited) { |
| 359 EXPECT_TRUE(Configure(kConfigConnectable)); | 309 EXPECT_TRUE(ConfigureService(kConfigConnectable)); |
| 360 base::DictionaryValue global_config; | 310 base::DictionaryValue global_config; |
| 361 global_config.SetBooleanWithoutPathExpansion( | 311 global_config.SetBooleanWithoutPathExpansion( |
| 362 ::onc::global_network_config::kAllowOnlyPolicyNetworksToConnect, true); | 312 ::onc::global_network_config::kAllowOnlyPolicyNetworksToConnect, true); |
| 363 SetupPolicy("[]", global_config, false /* load as device policy */); | 313 SetupPolicy("[]", global_config, false /* load as device policy */); |
| 364 LoginToRegularUser(); | 314 LoginToRegularUser(); |
| 365 Connect(kWifi0); | 315 Connect(kWifi0); |
| 366 EXPECT_EQ(NetworkConnectionHandler::kErrorUnmanagedNetwork, | 316 EXPECT_EQ(NetworkConnectionHandler::kErrorUnmanagedNetwork, |
| 367 GetResultAndReset()); | 317 GetResultAndReset()); |
| 368 | 318 |
| 369 SetupPolicy(kPolicyWifi0, global_config, false /* load as device policy */); | 319 SetupPolicy(kPolicyWifi0, global_config, false /* load as device policy */); |
| 370 Connect(kWifi0); | 320 Connect(kWifi0); |
| 371 EXPECT_EQ(kSuccessResult, GetResultAndReset()); | 321 EXPECT_EQ(kSuccessResult, GetResultAndReset()); |
| 372 } | 322 } |
| 373 | 323 |
| 374 // Handles basic failure cases. | 324 // Handles basic failure cases. |
| 375 TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectFailure) { | 325 TEST_F(NetworkConnectionHandlerTest, NetworkConnectionHandlerConnectFailure) { |
| 376 Connect(kNoNetwork); | 326 Connect(kNoNetwork); |
| 377 EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed, | 327 EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed, |
| 378 GetResultAndReset()); | 328 GetResultAndReset()); |
| 379 EXPECT_TRUE(network_connection_observer_->GetRequested(kNoNetwork)); | 329 EXPECT_TRUE(network_connection_observer_->GetRequested(kNoNetwork)); |
| 380 EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed, | 330 EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed, |
| 381 network_connection_observer_->GetResult(kNoNetwork)); | 331 network_connection_observer_->GetResult(kNoNetwork)); |
| 382 | 332 |
| 383 EXPECT_TRUE(Configure(kConfigConnected)); | 333 EXPECT_TRUE(ConfigureService(kConfigConnected)); |
| 384 Connect(kWifi1); | 334 Connect(kWifi1); |
| 385 EXPECT_EQ(NetworkConnectionHandler::kErrorConnected, GetResultAndReset()); | 335 EXPECT_EQ(NetworkConnectionHandler::kErrorConnected, GetResultAndReset()); |
| 386 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi1)); | 336 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi1)); |
| 387 EXPECT_EQ(NetworkConnectionHandler::kErrorConnected, | 337 EXPECT_EQ(NetworkConnectionHandler::kErrorConnected, |
| 388 network_connection_observer_->GetResult(kWifi1)); | 338 network_connection_observer_->GetResult(kWifi1)); |
| 389 | 339 |
| 390 EXPECT_TRUE(Configure(kConfigConnecting)); | 340 EXPECT_TRUE(ConfigureService(kConfigConnecting)); |
| 391 Connect(kWifi2); | 341 Connect(kWifi2); |
| 392 EXPECT_EQ(NetworkConnectionHandler::kErrorConnecting, GetResultAndReset()); | 342 EXPECT_EQ(NetworkConnectionHandler::kErrorConnecting, GetResultAndReset()); |
| 393 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi2)); | 343 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi2)); |
| 394 EXPECT_EQ(NetworkConnectionHandler::kErrorConnecting, | 344 EXPECT_EQ(NetworkConnectionHandler::kErrorConnecting, |
| 395 network_connection_observer_->GetResult(kWifi2)); | 345 network_connection_observer_->GetResult(kWifi2)); |
| 396 | 346 |
| 397 EXPECT_TRUE(Configure(kConfigRequiresPassphrase)); | 347 EXPECT_TRUE(ConfigureService(kConfigRequiresPassphrase)); |
| 398 Connect(kWifi3); | 348 Connect(kWifi3); |
| 399 EXPECT_EQ(NetworkConnectionHandler::kErrorPassphraseRequired, | 349 EXPECT_EQ(NetworkConnectionHandler::kErrorPassphraseRequired, |
| 400 GetResultAndReset()); | 350 GetResultAndReset()); |
| 401 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi3)); | 351 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi3)); |
| 402 EXPECT_EQ(NetworkConnectionHandler::kErrorPassphraseRequired, | 352 EXPECT_EQ(NetworkConnectionHandler::kErrorPassphraseRequired, |
| 403 network_connection_observer_->GetResult(kWifi3)); | 353 network_connection_observer_->GetResult(kWifi3)); |
| 404 } | 354 } |
| 405 | 355 |
| 406 namespace { | 356 namespace { |
| 407 | 357 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 StartCertLoader(); | 423 StartCertLoader(); |
| 474 | 424 |
| 475 // |StartCertLoader| should have triggered certificate loading. | 425 // |StartCertLoader| should have triggered certificate loading. |
| 476 // When the certificates got loaded, the connection request should have | 426 // When the certificates got loaded, the connection request should have |
| 477 // proceeded and eventually succeeded. | 427 // proceeded and eventually succeeded. |
| 478 EXPECT_EQ(kSuccessResult, GetResultAndReset()); | 428 EXPECT_EQ(kSuccessResult, GetResultAndReset()); |
| 479 } | 429 } |
| 480 | 430 |
| 481 TEST_F(NetworkConnectionHandlerTest, | 431 TEST_F(NetworkConnectionHandlerTest, |
| 482 NetworkConnectionHandlerDisconnectSuccess) { | 432 NetworkConnectionHandlerDisconnectSuccess) { |
| 483 EXPECT_TRUE(Configure(kConfigConnected)); | 433 EXPECT_TRUE(ConfigureService(kConfigConnected)); |
| 484 Disconnect(kWifi1); | 434 Disconnect(kWifi1); |
| 485 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi1)); | 435 EXPECT_TRUE(network_connection_observer_->GetRequested(kWifi1)); |
| 486 EXPECT_EQ(kSuccessResult, GetResultAndReset()); | 436 EXPECT_EQ(kSuccessResult, GetResultAndReset()); |
| 487 } | 437 } |
| 488 | 438 |
| 489 TEST_F(NetworkConnectionHandlerTest, | 439 TEST_F(NetworkConnectionHandlerTest, |
| 490 NetworkConnectionHandlerDisconnectFailure) { | 440 NetworkConnectionHandlerDisconnectFailure) { |
| 491 Connect(kNoNetwork); | 441 Connect(kNoNetwork); |
| 492 EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed, | 442 EXPECT_EQ(NetworkConnectionHandler::kErrorConfigureFailed, |
| 493 GetResultAndReset()); | 443 GetResultAndReset()); |
| 494 | 444 |
| 495 EXPECT_TRUE(Configure(kConfigConnectable)); | 445 EXPECT_TRUE(ConfigureService(kConfigConnectable)); |
| 496 Disconnect(kWifi0); | 446 Disconnect(kWifi0); |
| 497 EXPECT_EQ(NetworkConnectionHandler::kErrorNotConnected, GetResultAndReset()); | 447 EXPECT_EQ(NetworkConnectionHandler::kErrorNotConnected, GetResultAndReset()); |
| 498 } | 448 } |
| 499 | 449 |
| 500 } // namespace chromeos | 450 } // namespace chromeos |
| OLD | NEW |