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