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

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

Issue 1919683002: Adapter changes for implementing local GATT attributes and tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dbus_classes
Patch Set: Created 4 years, 7 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 9
10 #include <memory> 10 #include <memory>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "base/run_loop.h" 15 #include "base/run_loop.h"
16 #include "build/build_config.h" 16 #include "build/build_config.h"
17 #include "device/bluetooth/bluetooth_device.h" 17 #include "device/bluetooth/bluetooth_device.h"
18 #include "device/bluetooth/bluetooth_discovery_session.h" 18 #include "device/bluetooth/bluetooth_discovery_session.h"
19 #include "device/bluetooth/bluetooth_gatt_service.h"
20 #include "device/bluetooth/bluetooth_local_gatt_characteristic.h"
21 #include "device/bluetooth/bluetooth_local_gatt_descriptor.h"
22 #include "device/bluetooth/bluetooth_local_gatt_service.h"
19 #include "device/bluetooth/test/bluetooth_test.h" 23 #include "device/bluetooth/test/bluetooth_test.h"
20 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" 24 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h"
21 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
22 26
23 #if defined(OS_ANDROID) 27 #if defined(OS_ANDROID)
24 #include "device/bluetooth/test/bluetooth_test_android.h" 28 #include "device/bluetooth/test/bluetooth_test_android.h"
25 #elif defined(OS_MACOSX) 29 #elif defined(OS_MACOSX)
26 #include "device/bluetooth/test/bluetooth_test_mac.h" 30 #include "device/bluetooth/test/bluetooth_test_mac.h"
27 #elif defined(OS_WIN) 31 #elif defined(OS_WIN)
28 #include "device/bluetooth/test/bluetooth_test_win.h" 32 #include "device/bluetooth/test/bluetooth_test_win.h"
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 return; 546 return;
543 } 547 }
544 548
545 StartLowEnergyDiscoverySessionExpectedToFail(); 549 StartLowEnergyDiscoverySessionExpectedToFail();
546 550
547 EXPECT_EQ(0, callback_count_); 551 EXPECT_EQ(0, callback_count_);
548 EXPECT_EQ(1, error_callback_count_); 552 EXPECT_EQ(1, error_callback_count_);
549 } 553 }
550 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) 554 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
551 555
556 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
scheib 2016/04/28 05:02:29 Why do these no longer work?
rkc 2016/04/28 19:02:44 These actually never worked. These tests were only
552 // Discovers a device. 557 // Discovers a device.
553 TEST_F(BluetoothTest, DiscoverLowEnergyDevice) { 558 TEST_F(BluetoothTest, DiscoverLowEnergyDevice) {
554 if (!PlatformSupportsLowEnergy()) { 559 if (!PlatformSupportsLowEnergy()) {
555 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 560 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
556 return; 561 return;
557 } 562 }
558 InitWithFakeAdapter(); 563 InitWithFakeAdapter();
559 TestBluetoothAdapterObserver observer(adapter_); 564 TestBluetoothAdapterObserver observer(adapter_);
560 565
561 // Start discovery and find a device. 566 // Start discovery and find a device.
562 StartLowEnergyDiscoverySession(); 567 StartLowEnergyDiscoverySession();
563 DiscoverLowEnergyDevice(1); 568 DiscoverLowEnergyDevice(1);
564 EXPECT_EQ(1, observer.device_added_count()); 569 EXPECT_EQ(1, observer.device_added_count());
565 BluetoothDevice* device = adapter_->GetDevice(observer.last_device_address()); 570 BluetoothDevice* device = adapter_->GetDevice(observer.last_device_address());
566 EXPECT_TRUE(device); 571 EXPECT_TRUE(device);
567 } 572 }
573 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
568 574
575 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
569 // Discovers the same device multiple times. 576 // Discovers the same device multiple times.
570 TEST_F(BluetoothTest, DiscoverLowEnergyDeviceTwice) { 577 TEST_F(BluetoothTest, DiscoverLowEnergyDeviceTwice) {
571 if (!PlatformSupportsLowEnergy()) { 578 if (!PlatformSupportsLowEnergy()) {
572 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 579 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
573 return; 580 return;
574 } 581 }
575 InitWithFakeAdapter(); 582 InitWithFakeAdapter();
576 TestBluetoothAdapterObserver observer(adapter_); 583 TestBluetoothAdapterObserver observer(adapter_);
577 584
578 // Start discovery and find a device. 585 // Start discovery and find a device.
579 StartLowEnergyDiscoverySession(); 586 StartLowEnergyDiscoverySession();
580 DiscoverLowEnergyDevice(1); 587 DiscoverLowEnergyDevice(1);
581 EXPECT_EQ(1, observer.device_added_count()); 588 EXPECT_EQ(1, observer.device_added_count());
582 BluetoothDevice* device = adapter_->GetDevice(observer.last_device_address()); 589 BluetoothDevice* device = adapter_->GetDevice(observer.last_device_address());
583 EXPECT_TRUE(device); 590 EXPECT_TRUE(device);
584 591
585 // Find the same device again. This should not create a new device object. 592 // Find the same device again. This should not create a new device object.
586 observer.Reset(); 593 observer.Reset();
587 DiscoverLowEnergyDevice(1); 594 DiscoverLowEnergyDevice(1);
588 base::RunLoop().RunUntilIdle(); 595 base::RunLoop().RunUntilIdle();
589 EXPECT_EQ(0, observer.device_added_count()); 596 EXPECT_EQ(0, observer.device_added_count());
590 EXPECT_EQ(1u, adapter_->GetDevices().size()); 597 EXPECT_EQ(1u, adapter_->GetDevices().size());
591 } 598 }
599 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
592 600
593 #if defined(OS_ANDROID) || defined(OS_MACOSX) 601 #if defined(OS_ANDROID) || defined(OS_MACOSX)
594 // Discovers a device, and then again with new Service UUIDs. 602 // Discovers a device, and then again with new Service UUIDs.
595 TEST_F(BluetoothTest, DiscoverLowEnergyDeviceWithUpdatedUUIDs) { 603 TEST_F(BluetoothTest, DiscoverLowEnergyDeviceWithUpdatedUUIDs) {
596 if (!PlatformSupportsLowEnergy()) { 604 if (!PlatformSupportsLowEnergy()) {
597 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 605 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
598 return; 606 return;
599 } 607 }
600 InitWithFakeAdapter(); 608 InitWithFakeAdapter();
601 TestBluetoothAdapterObserver observer(adapter_); 609 TestBluetoothAdapterObserver observer(adapter_);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 #else 642 #else
635 EXPECT_EQ(0, observer.device_changed_count()); 643 EXPECT_EQ(0, observer.device_changed_count());
636 #endif 644 #endif
637 EXPECT_EQ(1u, adapter_->GetDevices().size()); 645 EXPECT_EQ(1u, adapter_->GetDevices().size());
638 646
639 // Expect all UUIDs: 647 // Expect all UUIDs:
640 EXPECT_EQ(4u, device->GetUUIDs().size()); 648 EXPECT_EQ(4u, device->GetUUIDs().size());
641 } 649 }
642 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) 650 #endif // defined(OS_ANDROID) || defined(OS_MACOSX)
643 651
652 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
644 // Discovers multiple devices when addresses vary. 653 // Discovers multiple devices when addresses vary.
645 TEST_F(BluetoothTest, DiscoverMultipleLowEnergyDevices) { 654 TEST_F(BluetoothTest, DiscoverMultipleLowEnergyDevices) {
646 if (!PlatformSupportsLowEnergy()) { 655 if (!PlatformSupportsLowEnergy()) {
647 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; 656 LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test.";
648 return; 657 return;
649 } 658 }
650 InitWithFakeAdapter(); 659 InitWithFakeAdapter();
651 TestBluetoothAdapterObserver observer(adapter_); 660 TestBluetoothAdapterObserver observer(adapter_);
652 661
653 // Start discovery and find a device. 662 // Start discovery and find a device.
654 StartLowEnergyDiscoverySession(); 663 StartLowEnergyDiscoverySession();
655 DiscoverLowEnergyDevice(1); 664 DiscoverLowEnergyDevice(1);
656 DiscoverLowEnergyDevice(4); 665 DiscoverLowEnergyDevice(4);
657 EXPECT_EQ(2, observer.device_added_count()); 666 EXPECT_EQ(2, observer.device_added_count());
658 EXPECT_EQ(2u, adapter_->GetDevices().size()); 667 EXPECT_EQ(2u, adapter_->GetDevices().size());
659 } 668 }
669 #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
660 670
661 #if defined(OS_ANDROID) 671 #if defined(OS_ANDROID)
662 TEST_F(BluetoothTest, TogglePowerFakeAdapter) { 672 TEST_F(BluetoothTest, TogglePowerFakeAdapter) {
663 InitWithFakeAdapter(); 673 InitWithFakeAdapter();
664 TestBluetoothAdapterObserver observer(adapter_); 674 TestBluetoothAdapterObserver observer(adapter_);
665 675
666 ASSERT_TRUE(adapter_->IsPresent()); 676 ASSERT_TRUE(adapter_->IsPresent());
667 ASSERT_TRUE(adapter_->IsPowered()); 677 ASSERT_TRUE(adapter_->IsPowered());
668 EXPECT_EQ(0, observer.powered_changed_count()); 678 EXPECT_EQ(0, observer.powered_changed_count());
669 679
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 ResetEventCounts(); 719 ResetEventCounts();
710 StartLowEnergyDiscoverySession(); 720 StartLowEnergyDiscoverySession();
711 EXPECT_EQ(1, callback_count_); 721 EXPECT_EQ(1, callback_count_);
712 EXPECT_EQ(0, error_callback_count_); 722 EXPECT_EQ(0, error_callback_count_);
713 EXPECT_TRUE(adapter_->IsDiscovering()); 723 EXPECT_TRUE(adapter_->IsDiscovering());
714 ASSERT_EQ((size_t)1, discovery_sessions_.size()); 724 ASSERT_EQ((size_t)1, discovery_sessions_.size());
715 EXPECT_TRUE(discovery_sessions_[0]->IsActive()); 725 EXPECT_TRUE(discovery_sessions_[0]->IsActive());
716 } 726 }
717 #endif // defined(OS_ANDROID) 727 #endif // defined(OS_ANDROID)
718 728
729 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
730 TEST_F(BluetoothTest, RegisterLocalGattServices) {
731 InitWithFakeAdapter();
732 base::WeakPtr<BluetoothLocalGattService> service =
733 BluetoothLocalGattService::Create(
734 adapter_.get(), BluetoothUUID(kTestUUIDGenericAttribute), true,
735 nullptr, nullptr);
736 base::WeakPtr<BluetoothLocalGattCharacteristic> characteristic1 =
737 BluetoothLocalGattCharacteristic::Create(
738 BluetoothUUID(kTestUUIDGenericAttribute),
739 device::BluetoothLocalGattCharacteristic::Properties(),
740 device::BluetoothLocalGattCharacteristic::Permissions(),
741 service.get());
742
743 base::WeakPtr<BluetoothLocalGattCharacteristic> characteristic2 =
744 BluetoothLocalGattCharacteristic::Create(
745 BluetoothUUID(kTestUUIDGenericAttribute),
746 device::BluetoothLocalGattCharacteristic::Properties(),
747 device::BluetoothLocalGattCharacteristic::Permissions(),
748 service.get());
749
750 base::WeakPtr<BluetoothLocalGattDescriptor> descriptor =
751 BluetoothLocalGattDescriptor::Create(
752 BluetoothUUID(kTestUUIDGenericAttribute),
753 device::BluetoothLocalGattCharacteristic::Permissions(),
754 characteristic1.get());
755
756 service->Register(GetCallback(Call::EXPECTED),
757 GetGattErrorCallback(Call::NOT_EXPECTED));
758 service->Register(GetCallback(Call::NOT_EXPECTED),
759 GetGattErrorCallback(Call::EXPECTED));
760 service->Unregister(GetCallback(Call::EXPECTED),
761 GetGattErrorCallback(Call::NOT_EXPECTED));
762 service->Unregister(GetCallback(Call::NOT_EXPECTED),
763 GetGattErrorCallback(Call::EXPECTED));
764 }
765 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX)
766
719 } // namespace device 767 } // namespace device
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_adapter.h ('k') | device/bluetooth/bluetooth_local_gatt_characteristic_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698