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 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 |
OLD | NEW |