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

Side by Side Diff: device/bluetooth/bluetooth_adapter_unittest.cc

Issue 1610053005: bluetooth: android: Fix a couple of crashes when adapter is turned on/off. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased on latest master Created 4 years, 10 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "device/bluetooth/bluetooth_adapter.h" 5 #include "device/bluetooth/bluetooth_adapter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 EXPECT_TRUE(discovery_sessions_[0]->IsActive()); 472 EXPECT_TRUE(discovery_sessions_[0]->IsActive());
473 473
474 ResetEventCounts(); 474 ResetEventCounts();
475 discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED), 475 discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED),
476 GetErrorCallback(Call::NOT_EXPECTED)); 476 GetErrorCallback(Call::NOT_EXPECTED));
477 EXPECT_FALSE(adapter_->IsDiscovering()); 477 EXPECT_FALSE(adapter_->IsDiscovering());
478 EXPECT_FALSE(discovery_sessions_[0]->IsActive()); 478 EXPECT_FALSE(discovery_sessions_[0]->IsActive());
479 } 479 }
480 #endif // defined(OS_ANDROID) 480 #endif // defined(OS_ANDROID)
481 481
482 // Android only: this test is specific for Android and should not be
483 // enabled for other platforms.
484 #if defined(OS_ANDROID)
485 TEST_F(BluetoothTest, AdapterIllegalStateBeforeStartScan) {
486 if (!PlatformSupportsLowEnergy()) {
487 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
488 return;
489 }
490 InitWithFakeAdapter();
491 ForceIllegalStateException();
492 StartLowEnergyDiscoverySessionExpectedToFail();
493 EXPECT_EQ(0, callback_count_);
494 EXPECT_EQ(1, error_callback_count_);
495 EXPECT_FALSE(adapter_->IsDiscovering());
496 }
497 #endif // defined(OS_ANDROID)
498
499 // Android only: this test is specific for Android and should not be
500 // enabled for other platforms.
501 #if defined(OS_ANDROID)
502 TEST_F(BluetoothTest, AdapterIllegalStateBeforeStopScan) {
503 if (!PlatformSupportsLowEnergy()) {
504 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
505 return;
506 }
507 InitWithFakeAdapter();
508 StartLowEnergyDiscoverySession();
509 EXPECT_EQ(1, callback_count_);
510 EXPECT_EQ(0, error_callback_count_);
511 EXPECT_TRUE(adapter_->IsDiscovering());
512 ForceIllegalStateException();
513 discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED),
514 GetErrorCallback(Call::NOT_EXPECTED));
515 EXPECT_FALSE(adapter_->IsDiscovering());
516 }
517 #endif // defined(OS_ANDROID)
518
482 #if defined(OS_ANDROID) || defined(OS_MACOSX) 519 #if defined(OS_ANDROID) || defined(OS_MACOSX)
483 // Checks that discovery fails (instead of hanging) when permissions are denied. 520 // Checks that discovery fails (instead of hanging) when permissions are denied.
484 TEST_F(BluetoothTest, NoPermissions) { 521 TEST_F(BluetoothTest, NoPermissions) {
485 if (!PlatformSupportsLowEnergy()) { 522 if (!PlatformSupportsLowEnergy()) {
486 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 523 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
487 return; 524 return;
488 } 525 }
489 InitWithFakeAdapter(); 526 InitWithFakeAdapter();
490 TestBluetoothAdapterObserver observer(adapter_); 527 TestBluetoothAdapterObserver observer(adapter_);
491 528
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 646
610 // Start discovery and find a device. 647 // Start discovery and find a device.
611 StartLowEnergyDiscoverySession(); 648 StartLowEnergyDiscoverySession();
612 DiscoverLowEnergyDevice(1); 649 DiscoverLowEnergyDevice(1);
613 DiscoverLowEnergyDevice(4); 650 DiscoverLowEnergyDevice(4);
614 EXPECT_EQ(2, observer.device_added_count()); 651 EXPECT_EQ(2, observer.device_added_count());
615 EXPECT_EQ(2u, adapter_->GetDevices().size()); 652 EXPECT_EQ(2u, adapter_->GetDevices().size());
616 } 653 }
617 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) 654 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
618 655
656 #if defined(OS_ANDROID)
657 TEST_F(BluetoothTest, TogglePowerFakeAdapter) {
658 InitWithFakeAdapter();
659 ASSERT_TRUE(adapter_->IsPresent());
660 ASSERT_TRUE(adapter_->IsPowered());
661
662 // Check if power can be turned off.
663 adapter_->SetPowered(false, GetCallback(Call::EXPECTED),
664 GetErrorCallback(Call::NOT_EXPECTED));
665 EXPECT_FALSE(adapter_->IsPowered());
666
667 // Check if power can be turned on again.
668 adapter_->SetPowered(true, GetCallback(Call::EXPECTED),
669 GetErrorCallback(Call::NOT_EXPECTED));
670 EXPECT_TRUE(adapter_->IsPowered());
671 }
672 #endif // defined(OS_ANDROID)
673
674 #if defined(OS_ANDROID)
675 TEST_F(BluetoothTest, TogglePowerBeforeScan) {
676 InitWithFakeAdapter();
677 ASSERT_TRUE(adapter_->IsPresent());
678 ASSERT_TRUE(adapter_->IsPowered());
679
680 // Turn off adapter.
681 adapter_->SetPowered(false, GetCallback(Call::EXPECTED),
682 GetErrorCallback(Call::NOT_EXPECTED));
683 ASSERT_FALSE(adapter_->IsPowered());
684
685 // Try to perform a scan.
686 StartLowEnergyDiscoverySessionExpectedToFail();
687
688 // Turn on adapter.
689 adapter_->SetPowered(true, GetCallback(Call::EXPECTED),
690 GetErrorCallback(Call::NOT_EXPECTED));
691 ASSERT_TRUE(adapter_->IsPowered());
692
693 // Try to perform a scan again.
694 ResetEventCounts();
695 StartLowEnergyDiscoverySession();
696 EXPECT_EQ(1, callback_count_);
697 EXPECT_EQ(0, error_callback_count_);
698 EXPECT_TRUE(adapter_->IsDiscovering());
699 ASSERT_EQ((size_t)1, discovery_sessions_.size());
700 EXPECT_TRUE(discovery_sessions_[0]->IsActive());
701 }
702 #endif // defined(OS_ANDROID)
703
619 } // namespace device 704 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698