| Index: device/bluetooth/bluetooth_adapter_unittest.cc
|
| diff --git a/device/bluetooth/bluetooth_adapter_unittest.cc b/device/bluetooth/bluetooth_adapter_unittest.cc
|
| index 6bc24c3ac1c19446a69fcc8a0162a379f2cd5660..b9a9bf3b363e8c3207e3c20f80b49c7b850ddda6 100644
|
| --- a/device/bluetooth/bluetooth_adapter_unittest.cc
|
| +++ b/device/bluetooth/bluetooth_adapter_unittest.cc
|
| @@ -477,6 +477,43 @@ TEST_F(BluetoothTest, DiscoverySession) {
|
| }
|
| #endif // defined(OS_ANDROID)
|
|
|
| +// Android only: this test is specific for Android and should not be
|
| +// enabled for other platforms.
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(BluetoothTest, AdapterIllegalStateBeforeStartScan) {
|
| + if (!PlatformSupportsLowEnergy()) {
|
| + LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
|
| + return;
|
| + }
|
| + InitWithFakeAdapter();
|
| + ForceIllegalStateException();
|
| + StartLowEnergyDiscoverySessionExpectedToFail();
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1, error_callback_count_);
|
| + EXPECT_FALSE(adapter_->IsDiscovering());
|
| +}
|
| +#endif // defined(OS_ANDROID)
|
| +
|
| +// Android only: this test is specific for Android and should not be
|
| +// enabled for other platforms.
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(BluetoothTest, AdapterIllegalStateBeforeStopScan) {
|
| + if (!PlatformSupportsLowEnergy()) {
|
| + LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
|
| + return;
|
| + }
|
| + InitWithFakeAdapter();
|
| + StartLowEnergyDiscoverySession();
|
| + EXPECT_EQ(1, callback_count_);
|
| + EXPECT_EQ(0, error_callback_count_);
|
| + EXPECT_TRUE(adapter_->IsDiscovering());
|
| + ForceIllegalStateException();
|
| + discovery_sessions_[0]->Stop(GetCallback(Call::EXPECTED),
|
| + GetErrorCallback(Call::NOT_EXPECTED));
|
| + EXPECT_FALSE(adapter_->IsDiscovering());
|
| +}
|
| +#endif // defined(OS_ANDROID)
|
| +
|
| #if defined(OS_ANDROID) || defined(OS_MACOSX)
|
| // Checks that discovery fails (instead of hanging) when permissions are denied.
|
| TEST_F(BluetoothTest, NoPermissions) {
|
| @@ -614,4 +651,52 @@ TEST_F(BluetoothTest, DiscoverMultipleLowEnergyDevices) {
|
| }
|
| #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
|
|
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(BluetoothTest, TogglePowerFakeAdapter) {
|
| + InitWithFakeAdapter();
|
| + ASSERT_TRUE(adapter_->IsPresent());
|
| + ASSERT_TRUE(adapter_->IsPowered());
|
| +
|
| + // Check if power can be turned off.
|
| + adapter_->SetPowered(false, GetCallback(Call::EXPECTED),
|
| + GetErrorCallback(Call::NOT_EXPECTED));
|
| + EXPECT_FALSE(adapter_->IsPowered());
|
| +
|
| + // Check if power can be turned on again.
|
| + adapter_->SetPowered(true, GetCallback(Call::EXPECTED),
|
| + GetErrorCallback(Call::NOT_EXPECTED));
|
| + EXPECT_TRUE(adapter_->IsPowered());
|
| +}
|
| +#endif // defined(OS_ANDROID)
|
| +
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(BluetoothTest, TogglePowerBeforeScan) {
|
| + InitWithFakeAdapter();
|
| + ASSERT_TRUE(adapter_->IsPresent());
|
| + ASSERT_TRUE(adapter_->IsPowered());
|
| +
|
| + // Turn off adapter.
|
| + adapter_->SetPowered(false, GetCallback(Call::EXPECTED),
|
| + GetErrorCallback(Call::NOT_EXPECTED));
|
| + ASSERT_FALSE(adapter_->IsPowered());
|
| +
|
| + // Try to perform a scan.
|
| + StartLowEnergyDiscoverySessionExpectedToFail();
|
| +
|
| + // Turn on adapter.
|
| + adapter_->SetPowered(true, GetCallback(Call::EXPECTED),
|
| + GetErrorCallback(Call::NOT_EXPECTED));
|
| + ASSERT_TRUE(adapter_->IsPowered());
|
| +
|
| + // Try to perform a scan again.
|
| + ResetEventCounts();
|
| + StartLowEnergyDiscoverySession();
|
| + EXPECT_EQ(1, callback_count_);
|
| + EXPECT_EQ(0, error_callback_count_);
|
| + EXPECT_TRUE(adapter_->IsDiscovering());
|
| + ASSERT_EQ((size_t)1, discovery_sessions_.size());
|
| + EXPECT_TRUE(discovery_sessions_[0]->IsActive());
|
| +}
|
| +#endif // defined(OS_ANDROID)
|
| +
|
| } // namespace device
|
|
|