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

Side by Side Diff: chrome/browser/chromeos/tether/tether_service_unittest.cc

Issue 2883283004: Merged Tether and cellular network types in System Tray. (Closed)
Patch Set: fixed failing TetherServiceTest Created 3 years, 6 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 unified diff | Download patch
OLDNEW
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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 } 166 }
167 167
168 void SetTetherTechnologyStateEnabled(bool enabled) { 168 void SetTetherTechnologyStateEnabled(bool enabled) {
169 network_state_handler()->SetTetherTechnologyState( 169 network_state_handler()->SetTetherTechnologyState(
170 enabled 170 enabled
171 ? chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED 171 ? chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED
172 : chromeos::NetworkStateHandler::TechnologyState:: 172 : chromeos::NetworkStateHandler::TechnologyState::
173 TECHNOLOGY_AVAILABLE); 173 TECHNOLOGY_AVAILABLE);
174 } 174 }
175 175
176 void SetCellularTechnologyStateEnabled(bool enabled) {
177 network_state_handler()->SetTechnologyEnabled(
178 chromeos::NetworkTypePattern::Cellular(), enabled,
179 chromeos::network_handler::ErrorCallback());
180 base::RunLoop().RunUntilIdle();
181 }
182
176 content::TestBrowserThreadBundle thread_bundle_; 183 content::TestBrowserThreadBundle thread_bundle_;
177 184
178 std::unique_ptr<TestingProfile> profile_; 185 std::unique_ptr<TestingProfile> profile_;
179 std::unique_ptr<chromeos::FakePowerManagerClient> fake_power_manager_client_; 186 std::unique_ptr<chromeos::FakePowerManagerClient> fake_power_manager_client_;
180 std::unique_ptr<ExtendedFakeSessionManagerClient> 187 std::unique_ptr<ExtendedFakeSessionManagerClient>
181 fake_session_manager_client_; 188 fake_session_manager_client_;
182 std::unique_ptr<TestingPrefServiceSimple> test_pref_service_; 189 std::unique_ptr<TestingPrefServiceSimple> test_pref_service_;
183 std::unique_ptr<NiceMock<MockCryptAuthDeviceManager>> 190 std::unique_ptr<NiceMock<MockCryptAuthDeviceManager>>
184 mock_cryptauth_device_manager_; 191 mock_cryptauth_device_manager_;
185 std::unique_ptr<cryptauth::FakeCryptAuthService> fake_cryptauth_service_; 192 std::unique_ptr<cryptauth::FakeCryptAuthService> fake_cryptauth_service_;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 ON_CALL(*mock_adapter_, IsPowered()).WillByDefault(Return(false)); 283 ON_CALL(*mock_adapter_, IsPowered()).WillByDefault(Return(false));
277 284
278 CreateTetherService(); 285 CreateTetherService();
279 286
280 EXPECT_EQ( 287 EXPECT_EQ(
281 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED, 288 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED,
282 network_state_handler()->GetTechnologyState( 289 network_state_handler()->GetTechnologyState(
283 chromeos::NetworkTypePattern::Tether())); 290 chromeos::NetworkTypePattern::Tether()));
284 } 291 }
285 292
293 TEST_F(TetherServiceTest, TestCellularIsUnavailable) {
294 test_manager_client()->RemoveTechnology(shill::kTypeCellular);
295 ASSERT_EQ(
296 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNAVAILABLE,
297 network_state_handler()->GetTechnologyState(
298 chromeos::NetworkTypePattern::Cellular()));
299
300 CreateTetherService();
301
302 SetTetherTechnologyStateEnabled(false);
303 EXPECT_EQ(
304 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE,
305 network_state_handler()->GetTechnologyState(
306 chromeos::NetworkTypePattern::Tether()));
307
308 SetTetherTechnologyStateEnabled(true);
309 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED,
310 network_state_handler()->GetTechnologyState(
311 chromeos::NetworkTypePattern::Tether()));
312 }
313
314 TEST_F(TetherServiceTest, TestCellularIsAvailable) {
315 // TODO (lesliewatkins): Investigate why cellular needs to be removed and
316 // re-added for NetworkStateHandler to return the correct TechnologyState.
317 test_manager_client()->RemoveTechnology(shill::kTypeCellular);
318 test_manager_client()->AddTechnology(shill::kTypeCellular, false);
319
320 CreateTetherService();
321
322 // Cellular disabled
323 SetCellularTechnologyStateEnabled(false);
324 ASSERT_EQ(
325 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE,
326 network_state_handler()->GetTechnologyState(
327 chromeos::NetworkTypePattern::Cellular()));
328
329 SetTetherTechnologyStateEnabled(false);
330 EXPECT_EQ(
331 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED,
332 network_state_handler()->GetTechnologyState(
333 chromeos::NetworkTypePattern::Tether()));
334
335 SetTetherTechnologyStateEnabled(true);
336 EXPECT_EQ(
337 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_UNINITIALIZED,
338 network_state_handler()->GetTechnologyState(
339 chromeos::NetworkTypePattern::Tether()));
340
341 // Cellular enabled
342 SetCellularTechnologyStateEnabled(true);
343 ASSERT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED,
344 network_state_handler()->GetTechnologyState(
345 chromeos::NetworkTypePattern::Cellular()));
346
347 SetTetherTechnologyStateEnabled(false);
348 EXPECT_EQ(
349 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE,
350 network_state_handler()->GetTechnologyState(
351 chromeos::NetworkTypePattern::Tether()));
352
353 SetTetherTechnologyStateEnabled(true);
354 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED,
355 network_state_handler()->GetTechnologyState(
356 chromeos::NetworkTypePattern::Tether()));
357 }
358
286 TEST_F(TetherServiceTest, TestEnabled) { 359 TEST_F(TetherServiceTest, TestEnabled) {
287 CreateTetherService(); 360 CreateTetherService();
288 361
289 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, 362 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED,
290 network_state_handler()->GetTechnologyState( 363 network_state_handler()->GetTechnologyState(
291 chromeos::NetworkTypePattern::Tether())); 364 chromeos::NetworkTypePattern::Tether()));
292 365
293 SetTetherTechnologyStateEnabled(false); 366 SetTetherTechnologyStateEnabled(false);
294 EXPECT_EQ( 367 EXPECT_EQ(
295 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE, 368 chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_AVAILABLE,
296 network_state_handler()->GetTechnologyState( 369 network_state_handler()->GetTechnologyState(
297 chromeos::NetworkTypePattern::Tether())); 370 chromeos::NetworkTypePattern::Tether()));
298 EXPECT_FALSE( 371 EXPECT_FALSE(
299 profile_->GetPrefs()->GetBoolean(prefs::kInstantTetheringEnabled)); 372 profile_->GetPrefs()->GetBoolean(prefs::kInstantTetheringEnabled));
300 373
301 SetTetherTechnologyStateEnabled(true); 374 SetTetherTechnologyStateEnabled(true);
302 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED, 375 EXPECT_EQ(chromeos::NetworkStateHandler::TechnologyState::TECHNOLOGY_ENABLED,
303 network_state_handler()->GetTechnologyState( 376 network_state_handler()->GetTechnologyState(
304 chromeos::NetworkTypePattern::Tether())); 377 chromeos::NetworkTypePattern::Tether()));
305 EXPECT_TRUE( 378 EXPECT_TRUE(
306 profile_->GetPrefs()->GetBoolean(prefs::kInstantTetheringEnabled)); 379 profile_->GetPrefs()->GetBoolean(prefs::kInstantTetheringEnabled));
307 } 380 }
308 381
309 // Test against a past defect that made TetherService and NetworkStateHandler 382 // Test against a past defect that made TetherService and NetworkStateHandler
310 // repeatly update technology state after the other did so. TetherService should 383 // repeatly update technology state after the other did so. TetherService should
311 // only update technology state if NetworkStateHandler has provided a different 384 // only update technology state if NetworkStateHandler has provided a different
312 // state than the user preference. 385 // state than the user preference.
313 TEST_F(TetherServiceTest, TestEnabledMultipleChanges) { 386 TEST_F(TetherServiceTest, TestEnabledMultipleChanges) {
314 CreateTetherService(); 387 CreateTetherService();
315 // CreateTetherService calls RunUntilIdle() so OnBluetoothAdapterFetched() 388 // CreateTetherService calls RunUntilIdle() so UpdateTetherTechnologyState()
316 // will have been called which calls UpdateTetherTechnologyState(). 389 // may be called multiple times in the initialization process.
317 EXPECT_EQ(1, tether_service_->updated_technology_state_count()); 390 int updated_technology_state_count =
391 tether_service_->updated_technology_state_count();
318 392
319 SetTetherTechnologyStateEnabled(false); 393 SetTetherTechnologyStateEnabled(false);
320 SetTetherTechnologyStateEnabled(false); 394 SetTetherTechnologyStateEnabled(false);
321 SetTetherTechnologyStateEnabled(false); 395 SetTetherTechnologyStateEnabled(false);
322 396
323 EXPECT_EQ(2, tether_service_->updated_technology_state_count()); 397 updated_technology_state_count++;
398 EXPECT_EQ(updated_technology_state_count,
399 tether_service_->updated_technology_state_count());
324 400
325 SetTetherTechnologyStateEnabled(true); 401 SetTetherTechnologyStateEnabled(true);
326 SetTetherTechnologyStateEnabled(true); 402 SetTetherTechnologyStateEnabled(true);
327 SetTetherTechnologyStateEnabled(true); 403 SetTetherTechnologyStateEnabled(true);
328 404
329 EXPECT_EQ(3, tether_service_->updated_technology_state_count()); 405 updated_technology_state_count++;
406 EXPECT_EQ(updated_technology_state_count,
407 tether_service_->updated_technology_state_count());
330 } 408 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/tether/tether_service.cc ('k') | chromeos/network/network_state_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698