| Index: chromeos/network/network_state_handler_unittest.cc
|
| diff --git a/chromeos/network/network_state_handler_unittest.cc b/chromeos/network/network_state_handler_unittest.cc
|
| index 0d1df22d4e56cdab0bff96965fca7d8c689bbe2b..0502606bf9601cf055a1c2e9a7f0e94c65b79c8c 100644
|
| --- a/chromeos/network/network_state_handler_unittest.cc
|
| +++ b/chromeos/network/network_state_handler_unittest.cc
|
| @@ -28,6 +28,7 @@
|
| #include "chromeos/network/network_state.h"
|
| #include "chromeos/network/network_state_handler.h"
|
| #include "chromeos/network/network_state_handler_observer.h"
|
| +#include "chromeos/network/tether_constants.h"
|
| #include "dbus/object_path.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/cros_system_api/dbus/service_constants.h"
|
| @@ -73,8 +74,8 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
|
| device_count_(0),
|
| network_list_changed_count_(0),
|
| network_count_(0),
|
| - default_network_change_count_(0) {
|
| - }
|
| + default_network_change_count_(0),
|
| + scan_completed_count_(0) {}
|
|
|
| ~TestObserver() override {}
|
|
|
| @@ -125,6 +126,11 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
|
| device_property_updates_[device->path()]++;
|
| }
|
|
|
| + void ScanCompleted(const DeviceState* device) override {
|
| + DCHECK(device);
|
| + scan_completed_count_++;
|
| + }
|
| +
|
| size_t device_list_changed_count() { return device_list_changed_count_; }
|
| size_t device_count() { return device_count_; }
|
| size_t network_list_changed_count() { return network_list_changed_count_; }
|
| @@ -132,11 +138,13 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
|
| size_t default_network_change_count() {
|
| return default_network_change_count_;
|
| }
|
| + size_t scan_completed_count() { return scan_completed_count_; }
|
| void reset_change_counts() {
|
| DVLOG(1) << "=== RESET CHANGE COUNTS ===";
|
| default_network_change_count_ = 0;
|
| device_list_changed_count_ = 0;
|
| network_list_changed_count_ = 0;
|
| + scan_completed_count_ = 0;
|
| connection_state_changes_.clear();
|
| }
|
| void reset_updates() {
|
| @@ -172,6 +180,7 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
|
| size_t network_list_changed_count_;
|
| size_t network_count_;
|
| size_t default_network_change_count_;
|
| + size_t scan_completed_count_;
|
| std::string default_network_;
|
| std::string default_network_connection_state_;
|
| std::map<std::string, int> property_updates_;
|
| @@ -330,6 +339,9 @@ TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, GetNetworkList) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| // Ensure that the network list is the expected size.
|
| const size_t kNumShillManagerClientStubImplServices = 4;
|
| EXPECT_EQ(kNumShillManagerClientStubImplServices,
|
| @@ -415,6 +427,9 @@ TEST_F(NetworkStateHandlerTest, GetNetworkList) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, GetTetherNetworkList) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| NetworkStateHandler::NetworkStateList tether_networks;
|
|
|
| GetTetherNetworkList(0 /* no limit */, &tether_networks);
|
| @@ -568,13 +583,80 @@ TEST_F(NetworkStateHandlerTest, TetherTechnologyState) {
|
| EXPECT_EQ(
|
| NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
|
| network_state_handler_->GetTechnologyState(NetworkTypePattern::Tether()));
|
| + EXPECT_FALSE(network_state_handler_->GetDeviceState(kTetherDevicePath));
|
| + EXPECT_FALSE(network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether()));
|
|
|
| - base::CommandLine::ForCurrentProcess()->AppendSwitch(
|
| - chromeos::switches::kEnableTether);
|
| + // Test SetTetherTechnologyState():
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_AVAILABLE);
|
| + EXPECT_EQ(1u, test_observer_->device_list_changed_count());
|
| + EXPECT_EQ(
|
| + NetworkStateHandler::TECHNOLOGY_AVAILABLE,
|
| + network_state_handler_->GetTechnologyState(NetworkTypePattern::Tether()));
|
| + const DeviceState* tether_device_state =
|
| + network_state_handler_->GetDeviceState(kTetherDevicePath);
|
| + EXPECT_TRUE(tether_device_state);
|
| + EXPECT_EQ(tether_device_state, network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether()));
|
|
|
| + // Test SetTechnologyEnabled() with a tether network:
|
| + network_state_handler_->SetTechnologyEnabled(
|
| + NetworkTypePattern::Tether(), true, network_handler::ErrorCallback());
|
| + EXPECT_EQ(2u, test_observer_->device_list_changed_count());
|
| EXPECT_EQ(
|
| NetworkStateHandler::TECHNOLOGY_ENABLED,
|
| network_state_handler_->GetTechnologyState(NetworkTypePattern::Tether()));
|
| + EXPECT_EQ(tether_device_state,
|
| + network_state_handler_->GetDeviceState(kTetherDevicePath));
|
| + EXPECT_EQ(tether_device_state, network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether()));
|
| +
|
| + // Test SetProhibitedTechnologies() with a tether network:
|
| + network_state_handler_->SetProhibitedTechnologies(
|
| + std::vector<std::string>{kTypeTether}, network_handler::ErrorCallback());
|
| + EXPECT_EQ(3u, test_observer_->device_list_changed_count());
|
| + EXPECT_EQ(
|
| + NetworkStateHandler::TECHNOLOGY_PROHIBITED,
|
| + network_state_handler_->GetTechnologyState(NetworkTypePattern::Tether()));
|
| + EXPECT_EQ(tether_device_state,
|
| + network_state_handler_->GetDeviceState(kTetherDevicePath));
|
| + EXPECT_EQ(tether_device_state, network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether()));
|
| +
|
| + // Set back to TECHNOLOGY_UNAVAILABLE; this should result in nullptr being
|
| + // returned by getters.
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_UNAVAILABLE);
|
| + EXPECT_FALSE(network_state_handler_->GetDeviceState(kTetherDevicePath));
|
| + EXPECT_FALSE(network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether()));
|
| +}
|
| +
|
| +TEST_F(NetworkStateHandlerTest, TetherScanningState) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| + const DeviceState* tether_device_state =
|
| + network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether());
|
| + EXPECT_TRUE(tether_device_state);
|
| + EXPECT_FALSE(tether_device_state->scanning());
|
| + EXPECT_EQ(0u, test_observer_->scan_completed_count());
|
| +
|
| + network_state_handler_->SetTetherScanState(true /* is_scanning */);
|
| + tether_device_state = network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether());
|
| + EXPECT_TRUE(tether_device_state);
|
| + EXPECT_TRUE(tether_device_state->scanning());
|
| + EXPECT_EQ(0u, test_observer_->scan_completed_count());
|
| +
|
| + network_state_handler_->SetTetherScanState(false /* is_scanning */);
|
| + tether_device_state = network_state_handler_->GetDeviceStateByType(
|
| + NetworkTypePattern::Tether());
|
| + EXPECT_TRUE(tether_device_state);
|
| + EXPECT_FALSE(tether_device_state->scanning());
|
| + EXPECT_EQ(1u, test_observer_->scan_completed_count());
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) {
|
| @@ -625,6 +707,9 @@ TEST_F(NetworkStateHandlerTest, GetState) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, TetherNetworkState) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| EXPECT_EQ(0u, test_observer_->network_list_changed_count());
|
|
|
| network_state_handler_->AddTetherNetworkState(
|
| @@ -671,6 +756,9 @@ TEST_F(NetworkStateHandlerTest, TetherNetworkState) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociation) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| EXPECT_EQ(0u, test_observer_->network_list_changed_count());
|
|
|
| const std::string profile = "/profile/profile1";
|
| @@ -712,6 +800,9 @@ TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociation) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociationWifiRemoved) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| const std::string profile = "/profile/profile1";
|
| const std::string wifi_path = "/service/wifi_with_guid";
|
| AddService(wifi_path, kWifiGuid1, kWifiName1, shill::kTypeWifi,
|
| @@ -744,6 +835,9 @@ TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociationWifiRemoved) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociation_NoWifiNetwork) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| network_state_handler_->AddTetherNetworkState(
|
| kTetherGuid1, kTetherName1, kTetherCarrier1, kTetherBatteryPercentage1,
|
| kTetherSignalStrength1);
|
| @@ -754,6 +848,9 @@ TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociation_NoWifiNetwork) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociation_NoTetherNetwork) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| const std::string profile = "/profile/profile1";
|
| const std::string wifi_path = "/service/wifi_with_guid";
|
| AddService(wifi_path, kWifiGuid1, kWifiName1, shill::kTypeWifi,
|
| @@ -768,6 +865,9 @@ TEST_F(NetworkStateHandlerTest, TetherNetworkStateAssociation_NoTetherNetwork) {
|
| }
|
|
|
| TEST_F(NetworkStateHandlerTest, SetTetherNetworkStateConnectionState) {
|
| + network_state_handler_->SetTetherTechnologyState(
|
| + NetworkStateHandler::TECHNOLOGY_ENABLED);
|
| +
|
| network_state_handler_->AddTetherNetworkState(
|
| kTetherGuid1, kTetherName1, kTetherCarrier1, kTetherBatteryPercentage1,
|
| kTetherSignalStrength1);
|
|
|