OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "chrome/browser/chromeos/tether/tether_service.h" | 5 #include "chrome/browser/chromeos/tether/tether_service.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 } | 162 } |
163 | 163 |
164 void SetTetherTechnologyStateEnabled(bool enabled) { | 164 void SetTetherTechnologyStateEnabled(bool enabled) { |
165 network_state_handler()->SetTetherTechnologyState( | 165 network_state_handler()->SetTetherTechnologyState( |
166 enabled | 166 enabled |
167 ? chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED | 167 ? chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED |
168 : chromeos::NetworkStateHandler::TechnologyState:: | 168 : chromeos::NetworkStateHandler::TechnologyState:: |
169 TECHNOLOGY_AVAILABLE); | 169 TECHNOLOGY_AVAILABLE); |
170 } | 170 } |
171 | 171 |
| 172 void SetCellularTechnologyStateEnabled(bool enabled) { |
| 173 network_state_handler()->SetTechnologyEnabled( |
| 174 chromeos::NetworkTypePattern::Cellular(), enabled, |
| 175 chromeos::network_handler::ErrorCallback()); |
| 176 base::RunLoop().RunUntilIdle(); |
| 177 } |
| 178 |
172 content::TestBrowserThreadBundle thread_bundle_; | 179 content::TestBrowserThreadBundle thread_bundle_; |
173 | 180 |
174 std::unique_ptr<TestingProfile> profile_; | 181 std::unique_ptr<TestingProfile> profile_; |
175 std::unique_ptr<chromeos::FakePowerManagerClient> fake_power_manager_client_; | 182 std::unique_ptr<chromeos::FakePowerManagerClient> fake_power_manager_client_; |
176 std::unique_ptr<ExtendedFakeSessionManagerClient> | 183 std::unique_ptr<ExtendedFakeSessionManagerClient> |
177 fake_session_manager_client_; | 184 fake_session_manager_client_; |
178 std::unique_ptr<TestingPrefServiceSimple> test_pref_service_; | 185 std::unique_ptr<TestingPrefServiceSimple> test_pref_service_; |
179 std::unique_ptr<NiceMock<MockCryptAuthDeviceManager>> | 186 std::unique_ptr<NiceMock<MockCryptAuthDeviceManager>> |
180 mock_cryptauth_device_manager_; | 187 mock_cryptauth_device_manager_; |
181 std::unique_ptr<cryptauth::FakeCryptAuthService> fake_cryptauth_service_; | 188 std::unique_ptr<cryptauth::FakeCryptAuthService> fake_cryptauth_service_; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 ON_CALL(*mock_adapter_, IsPowered()).WillByDefault(Return(false)); | 278 ON_CALL(*mock_adapter_, IsPowered()).WillByDefault(Return(false)); |
272 | 279 |
273 CreateTetherService(); | 280 CreateTetherService(); |
274 | 281 |
275 EXPECT_EQ( | 282 EXPECT_EQ( |
276 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, | 283 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, |
277 network_state_handler()->GetTechnologyState( | 284 network_state_handler()->GetTechnologyState( |
278 chromeos::NetworkTypePattern::Tether())); | 285 chromeos::NetworkTypePattern::Tether())); |
279 } | 286 } |
280 | 287 |
| 288 TEST_F(TetherServiceTest, TestCellularIsUnavailable) { |
| 289 test_manager_client()->RemoveTechnology(shill::kTypeCellular); |
| 290 ASSERT_EQ( |
| 291 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNAVAILABLE, |
| 292 network_state_handler()->GetTechnologyState( |
| 293 chromeos::NetworkTypePattern::Cellular())); |
| 294 |
| 295 CreateTetherService(); |
| 296 |
| 297 SetTetherTechnologyStateEnabled(false); |
| 298 EXPECT_EQ( |
| 299 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
| 300 network_state_handler()->GetTechnologyState( |
| 301 chromeos::NetworkTypePattern::Tether())); |
| 302 |
| 303 SetTetherTechnologyStateEnabled(true); |
| 304 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
| 305 network_state_handler()->GetTechnologyState( |
| 306 chromeos::NetworkTypePattern::Tether())); |
| 307 } |
| 308 |
| 309 TEST_F(TetherServiceTest, TestCellularIsAvailable) { |
| 310 // TODO (lesliewatkins): Investigate why cellular needs to be removed and |
| 311 // re-added for NetworkStateHandler to return the correct TechnologyState. |
| 312 test_manager_client()->RemoveTechnology(shill::kTypeCellular); |
| 313 test_manager_client()->AddTechnology(shill::kTypeCellular, false); |
| 314 |
| 315 CreateTetherService(); |
| 316 |
| 317 // Cellular disabled |
| 318 SetCellularTechnologyStateEnabled(false); |
| 319 ASSERT_EQ( |
| 320 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
| 321 network_state_handler()->GetTechnologyState( |
| 322 chromeos::NetworkTypePattern::Cellular())); |
| 323 |
| 324 SetTetherTechnologyStateEnabled(false); |
| 325 EXPECT_EQ( |
| 326 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, |
| 327 network_state_handler()->GetTechnologyState( |
| 328 chromeos::NetworkTypePattern::Tether())); |
| 329 |
| 330 SetTetherTechnologyStateEnabled(true); |
| 331 EXPECT_EQ( |
| 332 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, |
| 333 network_state_handler()->GetTechnologyState( |
| 334 chromeos::NetworkTypePattern::Tether())); |
| 335 |
| 336 // Cellular enabled |
| 337 SetCellularTechnologyStateEnabled(true); |
| 338 ASSERT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
| 339 network_state_handler()->GetTechnologyState( |
| 340 chromeos::NetworkTypePattern::Cellular())); |
| 341 |
| 342 SetTetherTechnologyStateEnabled(false); |
| 343 EXPECT_EQ( |
| 344 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
| 345 network_state_handler()->GetTechnologyState( |
| 346 chromeos::NetworkTypePattern::Tether())); |
| 347 |
| 348 SetTetherTechnologyStateEnabled(true); |
| 349 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
| 350 network_state_handler()->GetTechnologyState( |
| 351 chromeos::NetworkTypePattern::Tether())); |
| 352 } |
| 353 |
281 TEST_F(TetherServiceTest, TestEnabled) { | 354 TEST_F(TetherServiceTest, TestEnabled) { |
282 CreateTetherService(); | 355 CreateTetherService(); |
283 | 356 |
284 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, | 357 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, |
285 network_state_handler()->GetTechnologyState( | 358 network_state_handler()->GetTechnologyState( |
286 chromeos::NetworkTypePattern::Tether())); | 359 chromeos::NetworkTypePattern::Tether())); |
287 | 360 |
288 SetTetherTechnologyStateEnabled(false); | 361 SetTetherTechnologyStateEnabled(false); |
289 EXPECT_EQ( | 362 EXPECT_EQ( |
290 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, | 363 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, |
(...skipping 24 matching lines...) Expand all Loading... |
315 SetTetherTechnologyStateEnabled(false); | 388 SetTetherTechnologyStateEnabled(false); |
316 | 389 |
317 EXPECT_EQ(1, tether_service_->updated_technology_state_count()); | 390 EXPECT_EQ(1, tether_service_->updated_technology_state_count()); |
318 | 391 |
319 SetTetherTechnologyStateEnabled(true); | 392 SetTetherTechnologyStateEnabled(true); |
320 SetTetherTechnologyStateEnabled(true); | 393 SetTetherTechnologyStateEnabled(true); |
321 SetTetherTechnologyStateEnabled(true); | 394 SetTetherTechnologyStateEnabled(true); |
322 | 395 |
323 EXPECT_EQ(2, tether_service_->updated_technology_state_count()); | 396 EXPECT_EQ(2, tether_service_->updated_technology_state_count()); |
324 } | 397 } |
OLD | NEW |