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

Side by Side Diff: device/bluetooth/bluetooth_service_record_mac_unittest.mm

Issue 317073011: [Bluetooth] Remove the deprecated BluetoothServiceRecordMac class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "device/bluetooth/bluetooth_service_record_mac.h"
6
7 #import <IOBluetooth/objc/IOBluetoothSDPDataElement.h>
8 #import <IOBluetooth/objc/IOBluetoothSDPServiceRecord.h>
9 #import <IOBluetooth/objc/IOBluetoothSDPUUID.h>
10
11 #include <string>
12
13 #include "base/basictypes.h"
14 #include "base/strings/string_number_conversions.h"
15 #include "base/strings/sys_string_conversions.h"
16 #include "device/bluetooth/bluetooth_uuid.h"
17 #include "testing/gtest/include/gtest/gtest.h"
18
19 namespace {
20
21 const BluetoothSDPServiceAttributeID kServiceClassIDAttributeId = 0x0001;
22 const BluetoothSDPServiceAttributeID kProtocolDescriptorListAttributeId =
23 0x0004;
24 const BluetoothSDPServiceAttributeID kServiceNameAttributeId = 0x0100;
25
26 const uint8 kRfcommChannel = 0x0c;
27 const char kServiceName[] = "Headset Audio Gateway";
28
29 const device::BluetoothUUID kExpectedRfcommUuid(
30 "01234567-89ab-cdef-0123-456789abcdef");
31 const device::BluetoothUUID kExpectedSerialUuid("1101");
32
33 const int kMaxUuidSize = 16;
34
35 } // namespace
36
37 namespace device {
38
39 class BluetoothServiceRecordMacTest : public testing::Test {
40 public:
41
42 IOBluetoothSDPUUID* ConvertUuid(const char* uuid_hex_char, size_t uuid_size) {
43 std::vector<uint8> uuid_bytes_vector;
44 uint8 uuid_buffer[kMaxUuidSize];
45 base::HexStringToBytes(uuid_hex_char, &uuid_bytes_vector);
46 std::copy(uuid_bytes_vector.begin(),
47 uuid_bytes_vector.end(),
48 uuid_buffer);
49 return [IOBluetoothSDPUUID uuidWithBytes:uuid_buffer length:uuid_size];
50 }
51
52 IOBluetoothSDPDataElement* GetServiceClassId(IOBluetoothSDPUUID* uuid) {
53 IOBluetoothSDPDataElement* uuid_element =
54 [IOBluetoothSDPDataElement withElementValue:uuid];
55 return [IOBluetoothSDPDataElement
56 withElementValue:[NSArray arrayWithObject:uuid_element]];
57 }
58
59 IOBluetoothSDPDataElement* GetProtocolDescriptorList(bool supports_rfcomm) {
60 NSMutableArray* protocol_descriptor_list_sequence = [NSMutableArray array];
61
62 const uint8 l2cap_uuid_bytes[] = { 0x01, 0x00 };
63
64 IOBluetoothSDPUUID* l2cap_uuid =
65 [IOBluetoothSDPUUID uuidWithBytes:l2cap_uuid_bytes length:2];
66 [protocol_descriptor_list_sequence
67 addObject:[NSArray arrayWithObject:l2cap_uuid]];
68
69 if (supports_rfcomm) {
70 const uint8 rfcomm_uuid_bytes[] = { 0x00, 0x03 };
71 IOBluetoothSDPUUID* rfcomm_uuid =
72 [IOBluetoothSDPUUID uuidWithBytes:rfcomm_uuid_bytes length:2];
73 NSNumber* rfcomm_channel =
74 [NSNumber numberWithUnsignedChar:kRfcommChannel];
75 [protocol_descriptor_list_sequence
76 addObject:[NSArray
77 arrayWithObjects:rfcomm_uuid, rfcomm_channel, nil]];
78 }
79
80 return [IOBluetoothSDPDataElement
81 withElementValue:protocol_descriptor_list_sequence];
82 }
83
84 IOBluetoothSDPDataElement* GetServiceName(const std::string& service_name) {
85 return [IOBluetoothSDPDataElement
86 withElementValue:base::SysUTF8ToNSString(service_name)];
87 }
88
89 IOBluetoothSDPServiceRecord* GetServiceRecord(
90 IOBluetoothSDPUUID* uuid, bool supports_rfcomm) {
91 NSMutableDictionary* service_attrs = [NSMutableDictionary dictionary];
92
93 if (uuid != nil) {
94 [service_attrs
95 setObject:GetServiceClassId(uuid)
96 forKey:[NSNumber numberWithInt:kServiceClassIDAttributeId]];
97 }
98 [service_attrs
99 setObject:GetProtocolDescriptorList(supports_rfcomm)
100 forKey:[NSNumber numberWithInt:kProtocolDescriptorListAttributeId]];
101 [service_attrs
102 setObject:GetServiceName(kServiceName)
103 forKey:[NSNumber numberWithInt:kServiceNameAttributeId]];
104
105 return [IOBluetoothSDPServiceRecord withServiceDictionary:service_attrs
106 device:nil];
107 }
108 };
109
110 TEST_F(BluetoothServiceRecordMacTest, RfcommService) {
111 const char rfcomm_uuid_bytes[] = "0123456789abcdef0123456789abcdef";
112 IOBluetoothSDPUUID* rfcomm_uuid =
113 ConvertUuid(rfcomm_uuid_bytes, sizeof(rfcomm_uuid_bytes) / 2);
114
115 BluetoothServiceRecordMac record(GetServiceRecord(rfcomm_uuid, true));
116 EXPECT_EQ(kServiceName, record.name());
117 EXPECT_TRUE(record.SupportsRfcomm());
118 EXPECT_EQ(kRfcommChannel, record.rfcomm_channel());
119 EXPECT_EQ(kExpectedRfcommUuid, record.uuid());
120 }
121
122 TEST_F(BluetoothServiceRecordMacTest, ShortUuid) {
123 const char short_uuid_bytes[] = "1101";
124 IOBluetoothSDPUUID* short_uuid =
125 ConvertUuid(short_uuid_bytes, sizeof(short_uuid_bytes) / 2);
126
127 BluetoothServiceRecordMac record(GetServiceRecord(short_uuid, false));
128 EXPECT_EQ(kExpectedSerialUuid, record.uuid());
129 }
130
131 TEST_F(BluetoothServiceRecordMacTest, MediumUuid) {
132 const char medium_uuid_bytes[] = "00001101";
133 IOBluetoothSDPUUID* medium_uuid =
134 ConvertUuid(medium_uuid_bytes, sizeof(medium_uuid_bytes) / 2);
135
136 BluetoothServiceRecordMac record(GetServiceRecord(medium_uuid, false));
137 EXPECT_EQ(kExpectedSerialUuid, record.uuid());
138 }
139
140 TEST_F(BluetoothServiceRecordMacTest, UpperCaseUuid) {
141 const char upper_case_uuid_bytes[] = "0123456789ABCDEF0123456789ABCDEF";
142 IOBluetoothSDPUUID* upper_case_uuid =
143 ConvertUuid(upper_case_uuid_bytes, sizeof(upper_case_uuid_bytes) / 2);
144
145 BluetoothServiceRecordMac record(GetServiceRecord(upper_case_uuid, false));
146 EXPECT_EQ(kExpectedRfcommUuid, record.uuid());
147 }
148
149 TEST_F(BluetoothServiceRecordMacTest, InvalidUuid) {
150 BluetoothServiceRecordMac record(GetServiceRecord(nil, false));
151 EXPECT_FALSE(record.uuid().IsValid());
152 }
153
154 } // namespace device
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_service_record_mac.mm ('k') | device/bluetooth/bluetooth_socket_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698