Index: chrome/browser/chromeos/tether/tether_service_unittest.cc |
diff --git a/chrome/browser/chromeos/tether/tether_service_unittest.cc b/chrome/browser/chromeos/tether/tether_service_unittest.cc |
index 2c5c8e69430d14b100cfde80efe53e65f95a09a0..b95831735bbf7bd9b90981660d30772869d3d778 100644 |
--- a/chrome/browser/chromeos/tether/tether_service_unittest.cc |
+++ b/chrome/browser/chromeos/tether/tether_service_unittest.cc |
@@ -169,6 +169,13 @@ class TetherServiceTest : public chromeos::NetworkStateTest { |
TECHNOLOGY_AVAILABLE); |
} |
+ void SetCellularTechnologyStateEnabled(bool enabled) { |
+ network_state_handler()->SetTechnologyEnabled( |
+ chromeos::NetworkTypePattern::Cellular(), enabled, |
+ chromeos::network_handler::ErrorCallback()); |
+ base::RunLoop().RunUntilIdle(); |
+ } |
+ |
content::TestBrowserThreadBundle thread_bundle_; |
std::unique_ptr<TestingProfile> profile_; |
@@ -278,6 +285,72 @@ TEST_F(TetherServiceTest, TestBluetoothIsNotPowered) { |
chromeos::NetworkTypePattern::Tether())); |
} |
+TEST_F(TetherServiceTest, TestCellularIsUnavailable) { |
+ test_manager_client()->RemoveTechnology(shill::kTypeCellular); |
+ ASSERT_EQ( |
+ chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNAVAILABLE, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Cellular())); |
+ |
+ CreateTetherService(); |
+ |
+ SetTetherTechnologyStateEnabled(false); |
+ EXPECT_EQ( |
+ chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Tether())); |
+ |
+ SetTetherTechnologyStateEnabled(true); |
+ EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Tether())); |
+} |
+ |
+TEST_F(TetherServiceTest, TestCellularIsAvailable) { |
+ // TODO (lesliewatkins): Investigate why cellular needs to be removed and |
+ // re-added for NetworkStateHandler to return the correct TechnologyState. |
+ test_manager_client()->RemoveTechnology(shill::kTypeCellular); |
+ test_manager_client()->AddTechnology(shill::kTypeCellular, false); |
+ |
+ CreateTetherService(); |
+ |
+ // Cellular disabled |
+ SetCellularTechnologyStateEnabled(false); |
+ ASSERT_EQ( |
+ chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Cellular())); |
+ |
+ SetTetherTechnologyStateEnabled(false); |
+ EXPECT_EQ( |
+ chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Tether())); |
+ |
+ SetTetherTechnologyStateEnabled(true); |
+ EXPECT_EQ( |
+ chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Tether())); |
+ |
+ // Cellular enabled |
+ SetCellularTechnologyStateEnabled(true); |
+ ASSERT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Cellular())); |
+ |
+ SetTetherTechnologyStateEnabled(false); |
+ EXPECT_EQ( |
+ chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Tether())); |
+ |
+ SetTetherTechnologyStateEnabled(true); |
+ EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
+ network_state_handler()->GetTechnologyState( |
+ chromeos::NetworkTypePattern::Tether())); |
+} |
+ |
TEST_F(TetherServiceTest, TestEnabled) { |
CreateTetherService(); |