diff options
Diffstat (limited to 'device/bluetooth/bluetooth_adapter_unittest.cc')
-rw-r--r-- | device/bluetooth/bluetooth_adapter_unittest.cc | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/device/bluetooth/bluetooth_adapter_unittest.cc b/device/bluetooth/bluetooth_adapter_unittest.cc index 12351c9..45a5271 100644 --- a/device/bluetooth/bluetooth_adapter_unittest.cc +++ b/device/bluetooth/bluetooth_adapter_unittest.cc @@ -479,6 +479,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) { @@ -616,4 +653,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 |