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

Side by Side Diff: content/shell/browser/layout_test/layout_test_bluetooth_adapter_provider.cc

Issue 1697873002: bluetooth: Test Web Bluetooth getCharacteristic calls against blacklist. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bt-blacklist-integration-
Patch Set: move glucose UUID in code as well Created 4 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/shell/browser/layout_test/layout_test_bluetooth_adapter_provid er.h" 5 #include "content/shell/browser/layout_test/layout_test_bluetooth_adapter_provid er.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 typedef testing::NiceMock<MockBluetoothGattCharacteristic> 52 typedef testing::NiceMock<MockBluetoothGattCharacteristic>
53 NiceMockBluetoothGattCharacteristic; 53 NiceMockBluetoothGattCharacteristic;
54 typedef testing::NiceMock<MockBluetoothGattConnection> 54 typedef testing::NiceMock<MockBluetoothGattConnection>
55 NiceMockBluetoothGattConnection; 55 NiceMockBluetoothGattConnection;
56 typedef testing::NiceMock<MockBluetoothGattService> 56 typedef testing::NiceMock<MockBluetoothGattService>
57 NiceMockBluetoothGattService; 57 NiceMockBluetoothGattService;
58 typedef testing::NiceMock<MockBluetoothGattNotifySession> 58 typedef testing::NiceMock<MockBluetoothGattNotifySession>
59 NiceMockBluetoothGattNotifySession; 59 NiceMockBluetoothGattNotifySession;
60 60
61 namespace { 61 namespace {
62 // Bluetooth UUIDs suitable to pass to BluetoothUUID(). 62 // Bluetooth UUIDs suitable to pass to BluetoothUUID():
63 // Services:
63 const char kBatteryServiceUUID[] = "180f"; 64 const char kBatteryServiceUUID[] = "180f";
65 const char kDeviceInformationServiceUUID[] = "180a";
64 const char kGenericAccessServiceUUID[] = "1800"; 66 const char kGenericAccessServiceUUID[] = "1800";
65 const char kGlucoseServiceUUID[] = "1808"; 67 const char kGlucoseServiceUUID[] = "1808";
66 const char kHeartRateServiceUUID[] = "180d"; 68 const char kHeartRateServiceUUID[] = "180d";
67 const char kHumanInterfaceDeviceServiceUUID[] = "1812"; 69 const char kHumanInterfaceDeviceServiceUUID[] = "1812";
68 const char kTxPowerServiceUUID[] = "1804"; 70 const char kTxPowerServiceUUID[] = "1804";
69 const char kHeartRateMeasurementUUID[] = "2a37"; 71 // Characteristics:
70 const char kBodySensorLocation[] = "2a38"; 72 const char kBodySensorLocation[] = "2a38";
71 const char kDeviceNameUUID[] = "2a00"; 73 const char kDeviceNameUUID[] = "2a00";
74 const char kHeartRateMeasurementUUID[] = "2a37";
75 const char kSerialNumberStringUUID[] = "2a25";
72 76
73 const int kDefaultTxPower = -10; // TxPower of a device broadcasting at 0.1mW. 77 const int kDefaultTxPower = -10; // TxPower of a device broadcasting at 0.1mW.
74 const int kDefaultRssi = -51; // RSSI at 1m from a device broadcasting at 78 const int kDefaultRssi = -51; // RSSI at 1m from a device broadcasting at
75 // 0.1mW. 79 // 0.1mW.
76 80
77 // Invokes Run() on the k-th argument of the function with no arguments. 81 // Invokes Run() on the k-th argument of the function with no arguments.
78 ACTION_TEMPLATE(RunCallback, 82 ACTION_TEMPLATE(RunCallback,
79 HAS_1_TEMPLATE_PARAMS(int, k), 83 HAS_1_TEMPLATE_PARAMS(int, k),
80 AND_0_VALUE_PARAMS()) { 84 AND_0_VALUE_PARAMS()) {
81 return ::testing::get<k>(args).Run(); 85 return ::testing::get<k>(args).Run();
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 477
474 // static 478 // static
475 scoped_refptr<NiceMockBluetoothAdapter> 479 scoped_refptr<NiceMockBluetoothAdapter>
476 LayoutTestBluetoothAdapterProvider::GetHeartRateAdapter() { 480 LayoutTestBluetoothAdapterProvider::GetHeartRateAdapter() {
477 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); 481 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter());
478 scoped_ptr<NiceMockBluetoothDevice> device(GetHeartRateDevice(adapter.get())); 482 scoped_ptr<NiceMockBluetoothDevice> device(GetHeartRateDevice(adapter.get()));
479 483
480 // TODO(ortuno): Implement the rest of the service's characteristics 484 // TODO(ortuno): Implement the rest of the service's characteristics
481 // See: http://crbug.com/529975 485 // See: http://crbug.com/529975
482 486
483 device->AddMockService(GetGenericAccessService(adapter.get(), device.get())); 487 device->AddMockService(GetGenericAccessService(device.get()));
484 device->AddMockService(GetHeartRateService(adapter.get(), device.get())); 488 device->AddMockService(GetHeartRateService(adapter.get(), device.get()));
485 adapter->AddMockDevice(std::move(device)); 489 adapter->AddMockDevice(std::move(device));
486 490
487 return adapter; 491 return adapter;
488 } 492 }
489 493
490 // static 494 // static
491 scoped_refptr<NiceMockBluetoothAdapter> 495 scoped_refptr<NiceMockBluetoothAdapter>
492 LayoutTestBluetoothAdapterProvider::GetHeartRateAndHIDAdapter() { 496 LayoutTestBluetoothAdapterProvider::GetHeartRateAndHIDAdapter() {
493 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter()); 497 scoped_refptr<NiceMockBluetoothAdapter> adapter(GetEmptyAdapter());
494 498
495 BluetoothDevice::UUIDList uuids; 499 BluetoothDevice::UUIDList uuids;
500 uuids.push_back(BluetoothUUID(kDeviceInformationServiceUUID));
496 uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID)); 501 uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID));
497 uuids.push_back(BluetoothUUID(kHeartRateServiceUUID)); 502 uuids.push_back(BluetoothUUID(kHeartRateServiceUUID));
498 uuids.push_back(BluetoothUUID(kHumanInterfaceDeviceServiceUUID)); 503 uuids.push_back(BluetoothUUID(kHumanInterfaceDeviceServiceUUID));
499 504
500 scoped_ptr<NiceMockBluetoothDevice> device( 505 scoped_ptr<NiceMockBluetoothDevice> device(
501 GetConnectableDevice(adapter.get(), "Heart Rate And HID Device", uuids)); 506 GetConnectableDevice(adapter.get(), "Heart Rate And HID Device", uuids));
502 507
503 device->AddMockService(GetGenericAccessService(adapter.get(), device.get())); 508 device->AddMockService(GetDeviceInformationService(device.get()));
509 device->AddMockService(GetGenericAccessService(device.get()));
504 device->AddMockService(GetHeartRateService(adapter.get(), device.get())); 510 device->AddMockService(GetHeartRateService(adapter.get(), device.get()));
505 device->AddMockService( 511 device->AddMockService(
506 GetBaseGATTService(device.get(), kHumanInterfaceDeviceServiceUUID)); 512 GetBaseGATTService(device.get(), kHumanInterfaceDeviceServiceUUID));
507 adapter->AddMockDevice(std::move(device)); 513 adapter->AddMockDevice(std::move(device));
508 514
509 return adapter; 515 return adapter;
510 } 516 }
511 517
512 // static 518 // static
513 scoped_refptr<NiceMockBluetoothAdapter> 519 scoped_refptr<NiceMockBluetoothAdapter>
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 619
614 return GetBaseDevice(adapter, "Battery Device", uuids, makeMACAddress(0x1)); 620 return GetBaseDevice(adapter, "Battery Device", uuids, makeMACAddress(0x1));
615 } 621 }
616 622
617 // static 623 // static
618 scoped_ptr<NiceMockBluetoothDevice> 624 scoped_ptr<NiceMockBluetoothDevice>
619 LayoutTestBluetoothAdapterProvider::GetGlucoseDevice( 625 LayoutTestBluetoothAdapterProvider::GetGlucoseDevice(
620 MockBluetoothAdapter* adapter) { 626 MockBluetoothAdapter* adapter) {
621 BluetoothDevice::UUIDList uuids; 627 BluetoothDevice::UUIDList uuids;
622 uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID)); 628 uuids.push_back(BluetoothUUID(kGenericAccessServiceUUID));
629 uuids.push_back(BluetoothUUID(kGlucoseServiceUUID));
623 uuids.push_back(BluetoothUUID(kTxPowerServiceUUID)); 630 uuids.push_back(BluetoothUUID(kTxPowerServiceUUID));
624 uuids.push_back(BluetoothUUID(kGlucoseServiceUUID));
625 631
626 return GetBaseDevice(adapter, "Glucose Device", uuids, makeMACAddress(0x2)); 632 return GetBaseDevice(adapter, "Glucose Device", uuids, makeMACAddress(0x2));
627 } 633 }
628 634
629 // static 635 // static
630 scoped_ptr<NiceMockBluetoothDevice> 636 scoped_ptr<NiceMockBluetoothDevice>
631 LayoutTestBluetoothAdapterProvider::GetConnectableDevice( 637 LayoutTestBluetoothAdapterProvider::GetConnectableDevice(
632 device::MockBluetoothAdapter* adapter, 638 device::MockBluetoothAdapter* adapter,
633 const std::string& device_name, 639 const std::string& device_name,
634 BluetoothDevice::UUIDList uuids, 640 BluetoothDevice::UUIDList uuids,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 704
699 ON_CALL(*service, GetCharacteristic(_)) 705 ON_CALL(*service, GetCharacteristic(_))
700 .WillByDefault(Invoke(service.get(), 706 .WillByDefault(Invoke(service.get(),
701 &MockBluetoothGattService::GetMockCharacteristic)); 707 &MockBluetoothGattService::GetMockCharacteristic));
702 708
703 return service; 709 return service;
704 } 710 }
705 711
706 // static 712 // static
707 scoped_ptr<NiceMockBluetoothGattService> 713 scoped_ptr<NiceMockBluetoothGattService>
714 LayoutTestBluetoothAdapterProvider::GetDeviceInformationService(
715 device::MockBluetoothDevice* device) {
716 scoped_ptr<NiceMockBluetoothGattService> device_information(
717 GetBaseGATTService(device, kDeviceInformationServiceUUID));
718
719 scoped_ptr<NiceMockBluetoothGattCharacteristic> serial_number_string(
720 GetBaseGATTCharacteristic(device_information.get(),
721 kSerialNumberStringUUID,
722 BluetoothGattCharacteristic::PROPERTY_READ));
723
724 // Crash if ReadRemoteCharacteristic called. Not using GoogleMock's Expect
725 // because this is used in layout tests that may not report a mock expectation
726 // error correctly as a layout test failure.
727 ON_CALL(*serial_number_string, ReadRemoteCharacteristic(_, _))
728 .WillByDefault(
729 Invoke([](const BluetoothGattCharacteristic::ValueCallback&,
730 const BluetoothGattCharacteristic::ErrorCallback&) {
731 NOTREACHED();
732 }));
733
734 device_information->AddMockCharacteristic(std::move(serial_number_string));
735
736 return device_information;
737 }
738
739 // static
740 scoped_ptr<NiceMockBluetoothGattService>
708 LayoutTestBluetoothAdapterProvider::GetGenericAccessService( 741 LayoutTestBluetoothAdapterProvider::GetGenericAccessService(
709 MockBluetoothAdapter* adapter, 742 device::MockBluetoothDevice* device) {
710 MockBluetoothDevice* device) {
711 scoped_ptr<NiceMockBluetoothGattService> generic_access( 743 scoped_ptr<NiceMockBluetoothGattService> generic_access(
712 GetBaseGATTService(device, kGenericAccessServiceUUID)); 744 GetBaseGATTService(device, kGenericAccessServiceUUID));
713 745
714 scoped_ptr<NiceMockBluetoothGattCharacteristic> device_name( 746 scoped_ptr<NiceMockBluetoothGattCharacteristic> device_name(
715 GetBaseGATTCharacteristic( 747 GetBaseGATTCharacteristic(
716 generic_access.get(), kDeviceNameUUID, 748 generic_access.get(), kDeviceNameUUID,
717 BluetoothGattCharacteristic::PROPERTY_READ | 749 BluetoothGattCharacteristic::PROPERTY_READ |
718 BluetoothGattCharacteristic::PROPERTY_WRITE)); 750 BluetoothGattCharacteristic::PROPERTY_WRITE));
719 751
720 // Read response. 752 // Read response.
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 return BluetoothUUID(); 936 return BluetoothUUID();
905 } 937 }
906 938
907 // static 939 // static
908 std::string LayoutTestBluetoothAdapterProvider::makeMACAddress(uint64_t addr) { 940 std::string LayoutTestBluetoothAdapterProvider::makeMACAddress(uint64_t addr) {
909 return BluetoothDevice::CanonicalizeAddress( 941 return BluetoothDevice::CanonicalizeAddress(
910 base::StringPrintf("%012" PRIx64, addr)); 942 base::StringPrintf("%012" PRIx64, addr));
911 } 943 }
912 944
913 } // namespace content 945 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698