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 <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energ
y_api.h" | 10 #include "chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energ
y_api.h" |
11 #include "chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energ
y_event_router.h" | 11 #include "chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energ
y_event_router.h" |
12 #include "chrome/browser/extensions/extension_apitest.h" | 12 #include "chrome/browser/extensions/extension_apitest.h" |
13 #include "device/bluetooth/test/mock_bluetooth_adapter.h" | 13 #include "device/bluetooth/test/mock_bluetooth_adapter.h" |
14 #include "device/bluetooth/test/mock_bluetooth_device.h" | 14 #include "device/bluetooth/test/mock_bluetooth_device.h" |
15 #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h" | 15 #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h" |
16 #include "device/bluetooth/test/mock_bluetooth_gatt_connection.h" | 16 #include "device/bluetooth/test/mock_bluetooth_gatt_connection.h" |
17 #include "device/bluetooth/test/mock_bluetooth_gatt_descriptor.h" | 17 #include "device/bluetooth/test/mock_bluetooth_gatt_descriptor.h" |
18 #include "device/bluetooth/test/mock_bluetooth_gatt_notify_session.h" | 18 #include "device/bluetooth/test/mock_bluetooth_gatt_notify_session.h" |
19 #include "device/bluetooth/test/mock_bluetooth_gatt_service.h" | 19 #include "device/bluetooth/test/mock_bluetooth_gatt_service.h" |
20 #include "extensions/common/test_util.h" | 20 #include "extensions/common/test_util.h" |
21 #include "extensions/test/extension_test_message_listener.h" | 21 #include "extensions/test/extension_test_message_listener.h" |
22 #include "extensions/test/result_catcher.h" | 22 #include "extensions/test/result_catcher.h" |
23 #include "testing/gmock/include/gmock/gmock.h" | 23 #include "testing/gmock/include/gmock/gmock.h" |
24 | 24 |
25 using device::BluetoothUUID; | 25 using device::BluetoothUUID; |
26 using device::BluetoothAdapter; | 26 using device::BluetoothAdapter; |
27 using device::BluetoothDevice; | 27 using device::BluetoothDevice; |
28 using device::BluetoothGattCharacteristic; | 28 using device::BluetoothRemoteGattCharacteristic; |
29 using device::BluetoothGattConnection; | 29 using device::BluetoothGattConnection; |
30 using device::BluetoothGattDescriptor; | 30 using device::BluetoothRemoteGattDescriptor; |
31 using device::BluetoothGattService; | 31 using device::BluetoothRemoteGattService; |
32 using device::BluetoothGattNotifySession; | 32 using device::BluetoothGattNotifySession; |
33 using device::MockBluetoothAdapter; | 33 using device::MockBluetoothAdapter; |
34 using device::MockBluetoothDevice; | 34 using device::MockBluetoothDevice; |
35 using device::MockBluetoothGattCharacteristic; | 35 using device::MockBluetoothGattCharacteristic; |
36 using device::MockBluetoothGattConnection; | 36 using device::MockBluetoothGattConnection; |
37 using device::MockBluetoothGattDescriptor; | 37 using device::MockBluetoothGattDescriptor; |
38 using device::MockBluetoothGattService; | 38 using device::MockBluetoothGattService; |
39 using device::MockBluetoothGattNotifySession; | 39 using device::MockBluetoothGattNotifySession; |
40 using extensions::BluetoothLowEnergyEventRouter; | 40 using extensions::BluetoothLowEnergyEventRouter; |
41 using extensions::ResultCatcher; | 41 using extensions::ResultCatcher; |
(...skipping 15 matching lines...) Expand all Loading... |
57 | 57 |
58 const char kTestServiceId0[] = "service_id0"; | 58 const char kTestServiceId0[] = "service_id0"; |
59 const char kTestServiceUuid0[] = "1234"; | 59 const char kTestServiceUuid0[] = "1234"; |
60 | 60 |
61 const char kTestServiceId1[] = "service_id1"; | 61 const char kTestServiceId1[] = "service_id1"; |
62 const char kTestServiceUuid1[] = "5678"; | 62 const char kTestServiceUuid1[] = "5678"; |
63 | 63 |
64 // Test characteristic constants. | 64 // Test characteristic constants. |
65 const char kTestCharacteristicId0[] = "char_id0"; | 65 const char kTestCharacteristicId0[] = "char_id0"; |
66 const char kTestCharacteristicUuid0[] = "1211"; | 66 const char kTestCharacteristicUuid0[] = "1211"; |
67 const BluetoothGattCharacteristic::Properties kTestCharacteristicProperties0 = | 67 const BluetoothRemoteGattCharacteristic::Properties |
68 BluetoothGattCharacteristic::PROPERTY_BROADCAST | | 68 kTestCharacteristicProperties0 = |
69 BluetoothGattCharacteristic::PROPERTY_READ | | 69 BluetoothRemoteGattCharacteristic::PROPERTY_BROADCAST | |
70 BluetoothGattCharacteristic::PROPERTY_WRITE_WITHOUT_RESPONSE | | 70 BluetoothRemoteGattCharacteristic::PROPERTY_READ | |
71 BluetoothGattCharacteristic::PROPERTY_INDICATE; | 71 BluetoothRemoteGattCharacteristic::PROPERTY_WRITE_WITHOUT_RESPONSE | |
| 72 BluetoothRemoteGattCharacteristic::PROPERTY_INDICATE; |
72 const uint8_t kTestCharacteristicDefaultValue0[] = {0x01, 0x02, 0x03, 0x04, | 73 const uint8_t kTestCharacteristicDefaultValue0[] = {0x01, 0x02, 0x03, 0x04, |
73 0x05}; | 74 0x05}; |
74 | 75 |
75 const char kTestCharacteristicId1[] = "char_id1"; | 76 const char kTestCharacteristicId1[] = "char_id1"; |
76 const char kTestCharacteristicUuid1[] = "1212"; | 77 const char kTestCharacteristicUuid1[] = "1212"; |
77 const BluetoothGattCharacteristic::Properties kTestCharacteristicProperties1 = | 78 const BluetoothRemoteGattCharacteristic::Properties |
78 BluetoothGattCharacteristic::PROPERTY_READ | | 79 kTestCharacteristicProperties1 = |
79 BluetoothGattCharacteristic::PROPERTY_WRITE | | 80 BluetoothRemoteGattCharacteristic::PROPERTY_READ | |
80 BluetoothGattCharacteristic::PROPERTY_NOTIFY; | 81 BluetoothRemoteGattCharacteristic::PROPERTY_WRITE | |
| 82 BluetoothRemoteGattCharacteristic::PROPERTY_NOTIFY; |
81 const uint8_t kTestCharacteristicDefaultValue1[] = {0x06, 0x07, 0x08}; | 83 const uint8_t kTestCharacteristicDefaultValue1[] = {0x06, 0x07, 0x08}; |
82 | 84 |
83 const char kTestCharacteristicId2[] = "char_id2"; | 85 const char kTestCharacteristicId2[] = "char_id2"; |
84 const char kTestCharacteristicUuid2[] = "1213"; | 86 const char kTestCharacteristicUuid2[] = "1213"; |
85 const BluetoothGattCharacteristic::Properties kTestCharacteristicProperties2 = | 87 const BluetoothRemoteGattCharacteristic::Properties |
86 BluetoothGattCharacteristic::PROPERTY_NONE; | 88 kTestCharacteristicProperties2 = |
| 89 BluetoothRemoteGattCharacteristic::PROPERTY_NONE; |
87 | 90 |
88 // Test descriptor constants. | 91 // Test descriptor constants. |
89 const char kTestDescriptorId0[] = "desc_id0"; | 92 const char kTestDescriptorId0[] = "desc_id0"; |
90 const char kTestDescriptorUuid0[] = "1221"; | 93 const char kTestDescriptorUuid0[] = "1221"; |
91 const uint8_t kTestDescriptorDefaultValue0[] = {0x01, 0x02, 0x03}; | 94 const uint8_t kTestDescriptorDefaultValue0[] = {0x01, 0x02, 0x03}; |
92 | 95 |
93 const char kTestDescriptorId1[] = "desc_id1"; | 96 const char kTestDescriptorId1[] = "desc_id1"; |
94 const char kTestDescriptorUuid1[] = "1222"; | 97 const char kTestDescriptorUuid1[] = "1222"; |
95 const uint8_t kTestDescriptorDefaultValue1[] = {0x04, 0x05}; | 98 const uint8_t kTestDescriptorDefaultValue1[] = {0x04, 0x05}; |
96 | 99 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 service1_.reset(new testing::NiceMock<MockBluetoothGattService>( | 146 service1_.reset(new testing::NiceMock<MockBluetoothGattService>( |
144 device0_.get(), | 147 device0_.get(), |
145 kTestServiceId1, | 148 kTestServiceId1, |
146 BluetoothUUID(kTestServiceUuid1), | 149 BluetoothUUID(kTestServiceUuid1), |
147 false /* is_primary */, | 150 false /* is_primary */, |
148 false /* is_local */)); | 151 false /* is_local */)); |
149 | 152 |
150 // Assign characteristics some random properties and permissions. They don't | 153 // Assign characteristics some random properties and permissions. They don't |
151 // need to reflect what the characteristic is actually capable of, since | 154 // need to reflect what the characteristic is actually capable of, since |
152 // the JS API just passes values through from | 155 // the JS API just passes values through from |
153 // device::BluetoothGattCharacteristic. | 156 // device::BluetoothRemoteGattCharacteristic. |
154 std::vector<uint8_t> default_value; | 157 std::vector<uint8_t> default_value; |
155 chrc0_.reset(new testing::NiceMock<MockBluetoothGattCharacteristic>( | 158 chrc0_.reset(new testing::NiceMock<MockBluetoothGattCharacteristic>( |
156 service0_.get(), | 159 service0_.get(), kTestCharacteristicId0, |
157 kTestCharacteristicId0, | 160 BluetoothUUID(kTestCharacteristicUuid0), false /* is_local */, |
158 BluetoothUUID(kTestCharacteristicUuid0), | |
159 false /* is_local */, | |
160 kTestCharacteristicProperties0, | 161 kTestCharacteristicProperties0, |
161 BluetoothGattCharacteristic::PERMISSION_NONE)); | 162 BluetoothRemoteGattCharacteristic::PERMISSION_NONE)); |
162 default_value.assign(kTestCharacteristicDefaultValue0, | 163 default_value.assign(kTestCharacteristicDefaultValue0, |
163 (kTestCharacteristicDefaultValue0 + | 164 (kTestCharacteristicDefaultValue0 + |
164 sizeof(kTestCharacteristicDefaultValue0))); | 165 sizeof(kTestCharacteristicDefaultValue0))); |
165 ON_CALL(*chrc0_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); | 166 ON_CALL(*chrc0_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); |
166 | 167 |
167 chrc1_.reset(new testing::NiceMock<MockBluetoothGattCharacteristic>( | 168 chrc1_.reset(new testing::NiceMock<MockBluetoothGattCharacteristic>( |
168 service0_.get(), | 169 service0_.get(), kTestCharacteristicId1, |
169 kTestCharacteristicId1, | 170 BluetoothUUID(kTestCharacteristicUuid1), false /* is_local */, |
170 BluetoothUUID(kTestCharacteristicUuid1), | |
171 false /* is_local */, | |
172 kTestCharacteristicProperties1, | 171 kTestCharacteristicProperties1, |
173 BluetoothGattCharacteristic::PERMISSION_NONE)); | 172 BluetoothRemoteGattCharacteristic::PERMISSION_NONE)); |
174 default_value.assign(kTestCharacteristicDefaultValue1, | 173 default_value.assign(kTestCharacteristicDefaultValue1, |
175 (kTestCharacteristicDefaultValue1 + | 174 (kTestCharacteristicDefaultValue1 + |
176 sizeof(kTestCharacteristicDefaultValue1))); | 175 sizeof(kTestCharacteristicDefaultValue1))); |
177 ON_CALL(*chrc1_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); | 176 ON_CALL(*chrc1_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); |
178 | 177 |
179 chrc2_.reset(new testing::NiceMock<MockBluetoothGattCharacteristic>( | 178 chrc2_.reset(new testing::NiceMock<MockBluetoothGattCharacteristic>( |
180 service1_.get(), | 179 service1_.get(), kTestCharacteristicId2, |
181 kTestCharacteristicId2, | 180 BluetoothUUID(kTestCharacteristicUuid2), false /* is_local */, |
182 BluetoothUUID(kTestCharacteristicUuid2), | |
183 false /* is_local */, | |
184 kTestCharacteristicProperties2, | 181 kTestCharacteristicProperties2, |
185 BluetoothGattCharacteristic::PERMISSION_NONE)); | 182 BluetoothRemoteGattCharacteristic::PERMISSION_NONE)); |
186 | 183 |
187 desc0_.reset(new testing::NiceMock<MockBluetoothGattDescriptor>( | 184 desc0_.reset(new testing::NiceMock<MockBluetoothGattDescriptor>( |
188 chrc0_.get(), | 185 chrc0_.get(), kTestDescriptorId0, BluetoothUUID(kTestDescriptorUuid0), |
189 kTestDescriptorId0, | |
190 BluetoothUUID(kTestDescriptorUuid0), | |
191 false /* is_local */, | 186 false /* is_local */, |
192 BluetoothGattCharacteristic::PERMISSION_NONE)); | 187 BluetoothRemoteGattCharacteristic::PERMISSION_NONE)); |
193 default_value.assign( | 188 default_value.assign( |
194 kTestDescriptorDefaultValue0, | 189 kTestDescriptorDefaultValue0, |
195 (kTestDescriptorDefaultValue0 + sizeof(kTestDescriptorDefaultValue0))); | 190 (kTestDescriptorDefaultValue0 + sizeof(kTestDescriptorDefaultValue0))); |
196 ON_CALL(*desc0_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); | 191 ON_CALL(*desc0_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); |
197 | 192 |
198 desc1_.reset(new testing::NiceMock<MockBluetoothGattDescriptor>( | 193 desc1_.reset(new testing::NiceMock<MockBluetoothGattDescriptor>( |
199 chrc0_.get(), | 194 chrc0_.get(), kTestDescriptorId1, BluetoothUUID(kTestDescriptorUuid1), |
200 kTestDescriptorId1, | |
201 BluetoothUUID(kTestDescriptorUuid1), | |
202 false /* is_local */, | 195 false /* is_local */, |
203 BluetoothGattCharacteristic::PERMISSION_NONE)); | 196 BluetoothRemoteGattCharacteristic::PERMISSION_NONE)); |
204 default_value.assign( | 197 default_value.assign( |
205 kTestDescriptorDefaultValue1, | 198 kTestDescriptorDefaultValue1, |
206 (kTestDescriptorDefaultValue1 + sizeof(kTestDescriptorDefaultValue1))); | 199 (kTestDescriptorDefaultValue1 + sizeof(kTestDescriptorDefaultValue1))); |
207 ON_CALL(*desc1_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); | 200 ON_CALL(*desc1_, GetValue()).WillByDefault(ReturnRefOfCopy(default_value)); |
208 } | 201 } |
209 | 202 |
210 protected: | 203 protected: |
211 BluetoothLowEnergyEventRouter* event_router() { | 204 BluetoothLowEnergyEventRouter* event_router() { |
212 return extensions::BluetoothLowEnergyAPI::Get(browser()->profile()) | 205 return extensions::BluetoothLowEnergyAPI::Get(browser()->profile()) |
213 ->event_router(); | 206 ->event_router(); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 new testing::NiceMock<MockBluetoothGattConnection>(adapter, | 247 new testing::NiceMock<MockBluetoothGattConnection>(adapter, |
255 device_address); | 248 device_address); |
256 EXPECT_CALL(*conn, Disconnect()).Times(expect_disconnect ? 1 : 0); | 249 EXPECT_CALL(*conn, Disconnect()).Times(expect_disconnect ? 1 : 0); |
257 return conn; | 250 return conn; |
258 } | 251 } |
259 | 252 |
260 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetServices) { | 253 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetServices) { |
261 ResultCatcher catcher; | 254 ResultCatcher catcher; |
262 catcher.RestrictToBrowserContext(browser()->profile()); | 255 catcher.RestrictToBrowserContext(browser()->profile()); |
263 | 256 |
264 std::vector<BluetoothGattService*> services; | 257 std::vector<BluetoothRemoteGattService*> services; |
265 services.push_back(service0_.get()); | 258 services.push_back(service0_.get()); |
266 services.push_back(service1_.get()); | 259 services.push_back(service1_.get()); |
267 | 260 |
268 EXPECT_CALL(*mock_adapter_, GetDevice(_)) | 261 EXPECT_CALL(*mock_adapter_, GetDevice(_)) |
269 .Times(3) | 262 .Times(3) |
270 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) | 263 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) |
271 .WillRepeatedly(Return(device0_.get())); | 264 .WillRepeatedly(Return(device0_.get())); |
272 | 265 |
273 EXPECT_CALL(*device0_, GetGattServices()) | 266 EXPECT_CALL(*device0_, GetGattServices()) |
274 .Times(2) | 267 .Times(2) |
275 .WillOnce(Return(std::vector<BluetoothGattService*>())) | 268 .WillOnce(Return(std::vector<BluetoothRemoteGattService*>())) |
276 .WillOnce(Return(services)); | 269 .WillOnce(Return(services)); |
277 | 270 |
278 // Load and wait for setup. | 271 // Load and wait for setup. |
279 ExtensionTestMessageListener listener("ready", true); | 272 ExtensionTestMessageListener listener("ready", true); |
280 listener.set_failure_message("fail"); | 273 listener.set_failure_message("fail"); |
281 ASSERT_TRUE(LoadExtension( | 274 ASSERT_TRUE(LoadExtension( |
282 test_data_dir_.AppendASCII("bluetooth_low_energy/get_services"))); | 275 test_data_dir_.AppendASCII("bluetooth_low_energy/get_services"))); |
283 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 276 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
284 | 277 |
285 listener.Reply("go"); | 278 listener.Reply("go"); |
286 | 279 |
287 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 280 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
288 } | 281 } |
289 | 282 |
290 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetService) { | 283 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetService) { |
291 ResultCatcher catcher; | 284 ResultCatcher catcher; |
292 catcher.RestrictToBrowserContext(browser()->profile()); | 285 catcher.RestrictToBrowserContext(browser()->profile()); |
293 | 286 |
294 event_router()->GattServiceAdded( | 287 event_router()->GattServiceAdded( |
295 mock_adapter_, device0_.get(), service0_.get()); | 288 mock_adapter_, device0_.get(), service0_.get()); |
296 | 289 |
297 EXPECT_CALL(*mock_adapter_, GetDevice(_)) | 290 EXPECT_CALL(*mock_adapter_, GetDevice(_)) |
298 .Times(3) | 291 .Times(3) |
299 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) | 292 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) |
300 .WillRepeatedly(Return(device0_.get())); | 293 .WillRepeatedly(Return(device0_.get())); |
301 | 294 |
302 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 295 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
303 .Times(2) | 296 .Times(2) |
304 .WillOnce(Return(static_cast<BluetoothGattService*>(NULL))) | 297 .WillOnce(Return(static_cast<BluetoothRemoteGattService*>(NULL))) |
305 .WillOnce(Return(service0_.get())); | 298 .WillOnce(Return(service0_.get())); |
306 | 299 |
307 // Load and wait for setup. | 300 // Load and wait for setup. |
308 ExtensionTestMessageListener listener("ready", true); | 301 ExtensionTestMessageListener listener("ready", true); |
309 listener.set_failure_message("fail"); | 302 listener.set_failure_message("fail"); |
310 ASSERT_TRUE(LoadExtension( | 303 ASSERT_TRUE(LoadExtension( |
311 test_data_dir_.AppendASCII("bluetooth_low_energy/get_service"))); | 304 test_data_dir_.AppendASCII("bluetooth_low_energy/get_service"))); |
312 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 305 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
313 | 306 |
314 listener.Reply("go"); | 307 listener.Reply("go"); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 "bluetooth_low_energy/get_included_services"))); | 408 "bluetooth_low_energy/get_included_services"))); |
416 | 409 |
417 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 410 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
418 | 411 |
419 // Set up for the rest of the calls before replying. Included services can be | 412 // Set up for the rest of the calls before replying. Included services can be |
420 // returned even if there is no instance ID mapping for them yet, so no need | 413 // returned even if there is no instance ID mapping for them yet, so no need |
421 // to call GattServiceAdded for |service1_| here. | 414 // to call GattServiceAdded for |service1_| here. |
422 event_router()->GattServiceAdded( | 415 event_router()->GattServiceAdded( |
423 mock_adapter_, device0_.get(), service0_.get()); | 416 mock_adapter_, device0_.get(), service0_.get()); |
424 | 417 |
425 std::vector<BluetoothGattService*> includes; | 418 std::vector<BluetoothRemoteGattService*> includes; |
426 includes.push_back(service1_.get()); | 419 includes.push_back(service1_.get()); |
427 EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0)) | 420 EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0)) |
428 .Times(2) | 421 .Times(2) |
429 .WillRepeatedly(Return(device0_.get())); | 422 .WillRepeatedly(Return(device0_.get())); |
430 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 423 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
431 .Times(2) | 424 .Times(2) |
432 .WillRepeatedly(Return(service0_.get())); | 425 .WillRepeatedly(Return(service0_.get())); |
433 EXPECT_CALL(*service0_, GetIncludedServices()) | 426 EXPECT_CALL(*service0_, GetIncludedServices()) |
434 .Times(2) | 427 .Times(2) |
435 .WillOnce(Return(std::vector<BluetoothGattService*>())) | 428 .WillOnce(Return(std::vector<BluetoothRemoteGattService*>())) |
436 .WillOnce(Return(includes)); | 429 .WillOnce(Return(includes)); |
437 | 430 |
438 listener.Reply("go"); | 431 listener.Reply("go"); |
439 listener.Reset(); | 432 listener.Reset(); |
440 | 433 |
441 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 434 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
442 | 435 |
443 listener.Reply("go"); | 436 listener.Reply("go"); |
444 | 437 |
445 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 438 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
446 event_router()->GattServiceRemoved( | 439 event_router()->GattServiceRemoved( |
447 mock_adapter_, device0_.get(), service0_.get()); | 440 mock_adapter_, device0_.get(), service0_.get()); |
448 } | 441 } |
449 | 442 |
450 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristics) { | 443 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristics) { |
451 ResultCatcher catcher; | 444 ResultCatcher catcher; |
452 catcher.RestrictToBrowserContext(browser()->profile()); | 445 catcher.RestrictToBrowserContext(browser()->profile()); |
453 | 446 |
454 std::vector<BluetoothGattCharacteristic*> characteristics; | 447 std::vector<BluetoothRemoteGattCharacteristic*> characteristics; |
455 characteristics.push_back(chrc0_.get()); | 448 characteristics.push_back(chrc0_.get()); |
456 characteristics.push_back(chrc1_.get()); | 449 characteristics.push_back(chrc1_.get()); |
457 | 450 |
458 event_router()->GattServiceAdded( | 451 event_router()->GattServiceAdded( |
459 mock_adapter_, device0_.get(), service0_.get()); | 452 mock_adapter_, device0_.get(), service0_.get()); |
460 | 453 |
461 EXPECT_CALL(*mock_adapter_, GetDevice(_)).Times(3).WillRepeatedly( | 454 EXPECT_CALL(*mock_adapter_, GetDevice(_)).Times(3).WillRepeatedly( |
462 Return(device0_.get())); | 455 Return(device0_.get())); |
463 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 456 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
464 .Times(3) | 457 .Times(3) |
465 .WillOnce(Return(static_cast<BluetoothGattService*>(NULL))) | 458 .WillOnce(Return(static_cast<BluetoothRemoteGattService*>(NULL))) |
466 .WillRepeatedly(Return(service0_.get())); | 459 .WillRepeatedly(Return(service0_.get())); |
467 EXPECT_CALL(*service0_, GetCharacteristics()) | 460 EXPECT_CALL(*service0_, GetCharacteristics()) |
468 .Times(2) | 461 .Times(2) |
469 .WillOnce(Return(std::vector<BluetoothGattCharacteristic*>())) | 462 .WillOnce(Return(std::vector<BluetoothRemoteGattCharacteristic*>())) |
470 .WillOnce(Return(characteristics)); | 463 .WillOnce(Return(characteristics)); |
471 | 464 |
472 ExtensionTestMessageListener listener("ready", true); | 465 ExtensionTestMessageListener listener("ready", true); |
473 ASSERT_TRUE(LoadExtension( | 466 ASSERT_TRUE(LoadExtension( |
474 test_data_dir_.AppendASCII("bluetooth_low_energy/get_characteristics"))); | 467 test_data_dir_.AppendASCII("bluetooth_low_energy/get_characteristics"))); |
475 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 468 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
476 | 469 |
477 listener.Reply("go"); | 470 listener.Reply("go"); |
478 | 471 |
479 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 472 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
480 event_router()->GattServiceRemoved( | 473 event_router()->GattServiceRemoved( |
481 mock_adapter_, device0_.get(), service0_.get()); | 474 mock_adapter_, device0_.get(), service0_.get()); |
482 } | 475 } |
483 | 476 |
484 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristic) { | 477 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetCharacteristic) { |
485 ResultCatcher catcher; | 478 ResultCatcher catcher; |
486 catcher.RestrictToBrowserContext(browser()->profile()); | 479 catcher.RestrictToBrowserContext(browser()->profile()); |
487 | 480 |
488 event_router()->GattServiceAdded( | 481 event_router()->GattServiceAdded( |
489 mock_adapter_, device0_.get(), service0_.get()); | 482 mock_adapter_, device0_.get(), service0_.get()); |
490 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); | 483 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); |
491 | 484 |
492 EXPECT_CALL(*mock_adapter_, GetDevice(_)) | 485 EXPECT_CALL(*mock_adapter_, GetDevice(_)) |
493 .Times(4) | 486 .Times(4) |
494 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) | 487 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) |
495 .WillRepeatedly(Return(device0_.get())); | 488 .WillRepeatedly(Return(device0_.get())); |
496 | 489 |
497 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 490 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
498 .Times(3) | 491 .Times(3) |
499 .WillOnce(Return(static_cast<BluetoothGattService*>(NULL))) | 492 .WillOnce(Return(static_cast<BluetoothRemoteGattService*>(NULL))) |
500 .WillRepeatedly(Return(service0_.get())); | 493 .WillRepeatedly(Return(service0_.get())); |
501 | 494 |
502 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 495 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
503 .Times(2) | 496 .Times(2) |
504 .WillOnce(Return(static_cast<BluetoothGattCharacteristic*>(NULL))) | 497 .WillOnce(Return(static_cast<BluetoothRemoteGattCharacteristic*>(NULL))) |
505 .WillOnce(Return(chrc0_.get())); | 498 .WillOnce(Return(chrc0_.get())); |
506 | 499 |
507 // Load the extension and wait for first test. | 500 // Load the extension and wait for first test. |
508 ExtensionTestMessageListener listener("ready", true); | 501 ExtensionTestMessageListener listener("ready", true); |
509 listener.set_failure_message("fail"); | 502 listener.set_failure_message("fail"); |
510 ASSERT_TRUE(LoadExtension( | 503 ASSERT_TRUE(LoadExtension( |
511 test_data_dir_.AppendASCII("bluetooth_low_energy/get_characteristic"))); | 504 test_data_dir_.AppendASCII("bluetooth_low_energy/get_characteristic"))); |
512 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 505 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
513 | 506 |
514 listener.Reply("go"); | 507 listener.Reply("go"); |
(...skipping 17 matching lines...) Expand all Loading... |
532 .Times(12) | 525 .Times(12) |
533 .WillRepeatedly(Return(device0_.get())); | 526 .WillRepeatedly(Return(device0_.get())); |
534 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 527 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
535 .Times(12) | 528 .Times(12) |
536 .WillRepeatedly(Return(service0_.get())); | 529 .WillRepeatedly(Return(service0_.get())); |
537 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 530 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
538 .Times(12) | 531 .Times(12) |
539 .WillRepeatedly(Return(chrc0_.get())); | 532 .WillRepeatedly(Return(chrc0_.get())); |
540 EXPECT_CALL(*chrc0_, GetProperties()) | 533 EXPECT_CALL(*chrc0_, GetProperties()) |
541 .Times(12) | 534 .Times(12) |
542 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_NONE)) | 535 .WillOnce(Return(BluetoothRemoteGattCharacteristic::PROPERTY_NONE)) |
543 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_BROADCAST)) | 536 .WillOnce(Return(BluetoothRemoteGattCharacteristic::PROPERTY_BROADCAST)) |
544 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_READ)) | 537 .WillOnce(Return(BluetoothRemoteGattCharacteristic::PROPERTY_READ)) |
| 538 .WillOnce(Return( |
| 539 BluetoothRemoteGattCharacteristic::PROPERTY_WRITE_WITHOUT_RESPONSE)) |
| 540 .WillOnce(Return(BluetoothRemoteGattCharacteristic::PROPERTY_WRITE)) |
| 541 .WillOnce(Return(BluetoothRemoteGattCharacteristic::PROPERTY_NOTIFY)) |
| 542 .WillOnce(Return(BluetoothRemoteGattCharacteristic::PROPERTY_INDICATE)) |
| 543 .WillOnce(Return(BluetoothRemoteGattCharacteristic:: |
| 544 PROPERTY_AUTHENTICATED_SIGNED_WRITES)) |
| 545 .WillOnce(Return( |
| 546 BluetoothRemoteGattCharacteristic::PROPERTY_EXTENDED_PROPERTIES)) |
545 .WillOnce( | 547 .WillOnce( |
546 Return(BluetoothGattCharacteristic::PROPERTY_WRITE_WITHOUT_RESPONSE)) | 548 Return(BluetoothRemoteGattCharacteristic::PROPERTY_RELIABLE_WRITE)) |
547 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_WRITE)) | |
548 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_NOTIFY)) | |
549 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_INDICATE)) | |
550 .WillOnce(Return( | 549 .WillOnce(Return( |
551 BluetoothGattCharacteristic::PROPERTY_AUTHENTICATED_SIGNED_WRITES)) | 550 BluetoothRemoteGattCharacteristic::PROPERTY_WRITABLE_AUXILIARIES)) |
552 .WillOnce( | |
553 Return(BluetoothGattCharacteristic::PROPERTY_EXTENDED_PROPERTIES)) | |
554 .WillOnce(Return(BluetoothGattCharacteristic::PROPERTY_RELIABLE_WRITE)) | |
555 .WillOnce( | |
556 Return(BluetoothGattCharacteristic::PROPERTY_WRITABLE_AUXILIARIES)) | |
557 .WillOnce(Return( | 551 .WillOnce(Return( |
558 BluetoothGattCharacteristic::PROPERTY_BROADCAST | | 552 BluetoothRemoteGattCharacteristic::PROPERTY_BROADCAST | |
559 BluetoothGattCharacteristic::PROPERTY_READ | | 553 BluetoothRemoteGattCharacteristic::PROPERTY_READ | |
560 BluetoothGattCharacteristic::PROPERTY_WRITE_WITHOUT_RESPONSE | | 554 BluetoothRemoteGattCharacteristic::PROPERTY_WRITE_WITHOUT_RESPONSE | |
561 BluetoothGattCharacteristic::PROPERTY_WRITE | | 555 BluetoothRemoteGattCharacteristic::PROPERTY_WRITE | |
562 BluetoothGattCharacteristic::PROPERTY_NOTIFY | | 556 BluetoothRemoteGattCharacteristic::PROPERTY_NOTIFY | |
563 BluetoothGattCharacteristic::PROPERTY_INDICATE | | 557 BluetoothRemoteGattCharacteristic::PROPERTY_INDICATE | |
564 BluetoothGattCharacteristic::PROPERTY_AUTHENTICATED_SIGNED_WRITES | | 558 BluetoothRemoteGattCharacteristic:: |
565 BluetoothGattCharacteristic::PROPERTY_EXTENDED_PROPERTIES | | 559 PROPERTY_AUTHENTICATED_SIGNED_WRITES | |
566 BluetoothGattCharacteristic::PROPERTY_RELIABLE_WRITE | | 560 BluetoothRemoteGattCharacteristic::PROPERTY_EXTENDED_PROPERTIES | |
567 BluetoothGattCharacteristic::PROPERTY_WRITABLE_AUXILIARIES)); | 561 BluetoothRemoteGattCharacteristic::PROPERTY_RELIABLE_WRITE | |
| 562 BluetoothRemoteGattCharacteristic::PROPERTY_WRITABLE_AUXILIARIES)); |
568 | 563 |
569 ExtensionTestMessageListener listener("ready", true); | 564 ExtensionTestMessageListener listener("ready", true); |
570 listener.set_failure_message("fail"); | 565 listener.set_failure_message("fail"); |
571 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 566 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
572 "bluetooth_low_energy/characteristic_properties"))); | 567 "bluetooth_low_energy/characteristic_properties"))); |
573 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 568 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
574 | 569 |
575 listener.Reply("go"); | 570 listener.Reply("go"); |
576 | 571 |
577 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 572 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 .Times(3) | 707 .Times(3) |
713 .WillRepeatedly(Return(service0_.get())); | 708 .WillRepeatedly(Return(service0_.get())); |
714 | 709 |
715 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 710 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
716 .Times(3) | 711 .Times(3) |
717 .WillRepeatedly(Return(chrc0_.get())); | 712 .WillRepeatedly(Return(chrc0_.get())); |
718 | 713 |
719 std::vector<uint8_t> value; | 714 std::vector<uint8_t> value; |
720 EXPECT_CALL(*chrc0_, ReadRemoteCharacteristic(_, _)) | 715 EXPECT_CALL(*chrc0_, ReadRemoteCharacteristic(_, _)) |
721 .Times(2) | 716 .Times(2) |
722 .WillOnce( | 717 .WillOnce(InvokeCallbackArgument<1>( |
723 InvokeCallbackArgument<1>(BluetoothGattService::GATT_ERROR_FAILED)) | 718 BluetoothRemoteGattService::GATT_ERROR_FAILED)) |
724 .WillOnce(InvokeCallbackArgument<0>(value)); | 719 .WillOnce(InvokeCallbackArgument<0>(value)); |
725 | 720 |
726 ExtensionTestMessageListener listener("ready", true); | 721 ExtensionTestMessageListener listener("ready", true); |
727 listener.set_failure_message("fail"); | 722 listener.set_failure_message("fail"); |
728 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 723 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
729 "bluetooth_low_energy/read_characteristic_value"))); | 724 "bluetooth_low_energy/read_characteristic_value"))); |
730 listener.WaitUntilSatisfied(); | 725 listener.WaitUntilSatisfied(); |
731 | 726 |
732 listener.Reply("go"); | 727 listener.Reply("go"); |
733 | 728 |
(...skipping 20 matching lines...) Expand all Loading... |
754 .Times(3) | 749 .Times(3) |
755 .WillRepeatedly(Return(service0_.get())); | 750 .WillRepeatedly(Return(service0_.get())); |
756 | 751 |
757 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 752 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
758 .Times(3) | 753 .Times(3) |
759 .WillRepeatedly(Return(chrc0_.get())); | 754 .WillRepeatedly(Return(chrc0_.get())); |
760 | 755 |
761 std::vector<uint8_t> write_value; | 756 std::vector<uint8_t> write_value; |
762 EXPECT_CALL(*chrc0_, WriteRemoteCharacteristic(_, _, _)) | 757 EXPECT_CALL(*chrc0_, WriteRemoteCharacteristic(_, _, _)) |
763 .Times(2) | 758 .Times(2) |
764 .WillOnce( | 759 .WillOnce(InvokeCallbackArgument<2>( |
765 InvokeCallbackArgument<2>(BluetoothGattService::GATT_ERROR_FAILED)) | 760 BluetoothRemoteGattService::GATT_ERROR_FAILED)) |
766 .WillOnce(DoAll(SaveArg<0>(&write_value), InvokeCallbackArgument<1>())); | 761 .WillOnce(DoAll(SaveArg<0>(&write_value), InvokeCallbackArgument<1>())); |
767 | 762 |
768 EXPECT_CALL(*chrc0_, GetValue()).Times(1).WillOnce(ReturnRef(write_value)); | 763 EXPECT_CALL(*chrc0_, GetValue()).Times(1).WillOnce(ReturnRef(write_value)); |
769 | 764 |
770 ExtensionTestMessageListener listener("ready", true); | 765 ExtensionTestMessageListener listener("ready", true); |
771 listener.set_failure_message("fail"); | 766 listener.set_failure_message("fail"); |
772 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 767 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
773 "bluetooth_low_energy/write_characteristic_value"))); | 768 "bluetooth_low_energy/write_characteristic_value"))); |
774 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 769 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
775 | 770 |
776 listener.Reply("go"); | 771 listener.Reply("go"); |
777 | 772 |
778 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 773 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
779 | 774 |
780 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc0_.get()); | 775 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc0_.get()); |
781 event_router()->GattServiceRemoved( | 776 event_router()->GattServiceRemoved( |
782 mock_adapter_, device0_.get(), service0_.get()); | 777 mock_adapter_, device0_.get(), service0_.get()); |
783 } | 778 } |
784 | 779 |
785 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptors) { | 780 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetDescriptors) { |
786 ResultCatcher catcher; | 781 ResultCatcher catcher; |
787 catcher.RestrictToBrowserContext(browser()->profile()); | 782 catcher.RestrictToBrowserContext(browser()->profile()); |
788 | 783 |
789 std::vector<BluetoothGattDescriptor*> descriptors; | 784 std::vector<BluetoothRemoteGattDescriptor*> descriptors; |
790 descriptors.push_back(desc0_.get()); | 785 descriptors.push_back(desc0_.get()); |
791 descriptors.push_back(desc1_.get()); | 786 descriptors.push_back(desc1_.get()); |
792 | 787 |
793 event_router()->GattServiceAdded( | 788 event_router()->GattServiceAdded( |
794 mock_adapter_, device0_.get(), service0_.get()); | 789 mock_adapter_, device0_.get(), service0_.get()); |
795 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); | 790 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); |
796 | 791 |
797 EXPECT_CALL(*mock_adapter_, GetDevice(_)) | 792 EXPECT_CALL(*mock_adapter_, GetDevice(_)) |
798 .Times(3) | 793 .Times(3) |
799 .WillRepeatedly(Return(device0_.get())); | 794 .WillRepeatedly(Return(device0_.get())); |
800 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 795 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
801 .Times(3) | 796 .Times(3) |
802 .WillRepeatedly(Return(service0_.get())); | 797 .WillRepeatedly(Return(service0_.get())); |
803 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 798 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
804 .Times(3) | 799 .Times(3) |
805 .WillOnce(Return(static_cast<BluetoothGattCharacteristic*>(NULL))) | 800 .WillOnce(Return(static_cast<BluetoothRemoteGattCharacteristic*>(NULL))) |
806 .WillRepeatedly(Return(chrc0_.get())); | 801 .WillRepeatedly(Return(chrc0_.get())); |
807 EXPECT_CALL(*chrc0_, GetDescriptors()) | 802 EXPECT_CALL(*chrc0_, GetDescriptors()) |
808 .Times(2) | 803 .Times(2) |
809 .WillOnce(Return(std::vector<BluetoothGattDescriptor*>())) | 804 .WillOnce(Return(std::vector<BluetoothRemoteGattDescriptor*>())) |
810 .WillOnce(Return(descriptors)); | 805 .WillOnce(Return(descriptors)); |
811 | 806 |
812 ExtensionTestMessageListener listener("ready", true); | 807 ExtensionTestMessageListener listener("ready", true); |
813 listener.set_failure_message("fail"); | 808 listener.set_failure_message("fail"); |
814 ASSERT_TRUE(LoadExtension( | 809 ASSERT_TRUE(LoadExtension( |
815 test_data_dir_.AppendASCII("bluetooth_low_energy/get_descriptors"))); | 810 test_data_dir_.AppendASCII("bluetooth_low_energy/get_descriptors"))); |
816 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 811 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
817 | 812 |
818 listener.Reply("go"); | 813 listener.Reply("go"); |
819 | 814 |
(...skipping 13 matching lines...) Expand all Loading... |
833 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); | 828 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); |
834 event_router()->GattDescriptorAdded(mock_adapter_, desc0_.get()); | 829 event_router()->GattDescriptorAdded(mock_adapter_, desc0_.get()); |
835 | 830 |
836 EXPECT_CALL(*mock_adapter_, GetDevice(_)) | 831 EXPECT_CALL(*mock_adapter_, GetDevice(_)) |
837 .Times(5) | 832 .Times(5) |
838 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) | 833 .WillOnce(Return(static_cast<BluetoothDevice*>(NULL))) |
839 .WillRepeatedly(Return(device0_.get())); | 834 .WillRepeatedly(Return(device0_.get())); |
840 | 835 |
841 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 836 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
842 .Times(4) | 837 .Times(4) |
843 .WillOnce(Return(static_cast<BluetoothGattService*>(NULL))) | 838 .WillOnce(Return(static_cast<BluetoothRemoteGattService*>(NULL))) |
844 .WillRepeatedly(Return(service0_.get())); | 839 .WillRepeatedly(Return(service0_.get())); |
845 | 840 |
846 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 841 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
847 .Times(3) | 842 .Times(3) |
848 .WillOnce(Return(static_cast<BluetoothGattCharacteristic*>(NULL))) | 843 .WillOnce(Return(static_cast<BluetoothRemoteGattCharacteristic*>(NULL))) |
849 .WillRepeatedly(Return(chrc0_.get())); | 844 .WillRepeatedly(Return(chrc0_.get())); |
850 | 845 |
851 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) | 846 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) |
852 .Times(2) | 847 .Times(2) |
853 .WillOnce(Return(static_cast<BluetoothGattDescriptor*>(NULL))) | 848 .WillOnce(Return(static_cast<BluetoothRemoteGattDescriptor*>(NULL))) |
854 .WillOnce(Return(desc0_.get())); | 849 .WillOnce(Return(desc0_.get())); |
855 | 850 |
856 // Load the extension and wait for first test. | 851 // Load the extension and wait for first test. |
857 ExtensionTestMessageListener listener("ready", true); | 852 ExtensionTestMessageListener listener("ready", true); |
858 listener.set_failure_message("fail"); | 853 listener.set_failure_message("fail"); |
859 ASSERT_TRUE(LoadExtension( | 854 ASSERT_TRUE(LoadExtension( |
860 test_data_dir_.AppendASCII("bluetooth_low_energy/get_descriptor"))); | 855 test_data_dir_.AppendASCII("bluetooth_low_energy/get_descriptor"))); |
861 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 856 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
862 | 857 |
863 listener.Reply("go"); | 858 listener.Reply("go"); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
977 .Times(9) | 972 .Times(9) |
978 .WillRepeatedly(Return(chrc0_.get())); | 973 .WillRepeatedly(Return(chrc0_.get())); |
979 | 974 |
980 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) | 975 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) |
981 .Times(9) | 976 .Times(9) |
982 .WillRepeatedly(Return(desc0_.get())); | 977 .WillRepeatedly(Return(desc0_.get())); |
983 | 978 |
984 std::vector<uint8_t> value; | 979 std::vector<uint8_t> value; |
985 EXPECT_CALL(*desc0_, ReadRemoteDescriptor(_, _)) | 980 EXPECT_CALL(*desc0_, ReadRemoteDescriptor(_, _)) |
986 .Times(8) | 981 .Times(8) |
987 .WillOnce( | |
988 InvokeCallbackArgument<1>(BluetoothGattService::GATT_ERROR_FAILED)) | |
989 .WillOnce(InvokeCallbackArgument<1>( | 982 .WillOnce(InvokeCallbackArgument<1>( |
990 BluetoothGattService::GATT_ERROR_INVALID_LENGTH)) | 983 BluetoothRemoteGattService::GATT_ERROR_FAILED)) |
991 .WillOnce(InvokeCallbackArgument<1>( | 984 .WillOnce(InvokeCallbackArgument<1>( |
992 BluetoothGattService::GATT_ERROR_NOT_PERMITTED)) | 985 BluetoothRemoteGattService::GATT_ERROR_INVALID_LENGTH)) |
993 .WillOnce(InvokeCallbackArgument<1>( | 986 .WillOnce(InvokeCallbackArgument<1>( |
994 BluetoothGattService::GATT_ERROR_NOT_AUTHORIZED)) | 987 BluetoothRemoteGattService::GATT_ERROR_NOT_PERMITTED)) |
995 .WillOnce(InvokeCallbackArgument<1>( | 988 .WillOnce(InvokeCallbackArgument<1>( |
996 BluetoothGattService::GATT_ERROR_NOT_PAIRED)) | 989 BluetoothRemoteGattService::GATT_ERROR_NOT_AUTHORIZED)) |
997 .WillOnce(InvokeCallbackArgument<1>( | 990 .WillOnce(InvokeCallbackArgument<1>( |
998 BluetoothGattService::GATT_ERROR_NOT_SUPPORTED)) | 991 BluetoothRemoteGattService::GATT_ERROR_NOT_PAIRED)) |
999 .WillOnce(InvokeCallbackArgument<1>( | 992 .WillOnce(InvokeCallbackArgument<1>( |
1000 BluetoothGattService::GATT_ERROR_IN_PROGRESS)) | 993 BluetoothRemoteGattService::GATT_ERROR_NOT_SUPPORTED)) |
| 994 .WillOnce(InvokeCallbackArgument<1>( |
| 995 BluetoothRemoteGattService::GATT_ERROR_IN_PROGRESS)) |
1001 .WillOnce(InvokeCallbackArgument<0>(value)); | 996 .WillOnce(InvokeCallbackArgument<0>(value)); |
1002 | 997 |
1003 ExtensionTestMessageListener listener("ready", true); | 998 ExtensionTestMessageListener listener("ready", true); |
1004 listener.set_failure_message("fail"); | 999 listener.set_failure_message("fail"); |
1005 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 1000 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
1006 "bluetooth_low_energy/read_descriptor_value"))); | 1001 "bluetooth_low_energy/read_descriptor_value"))); |
1007 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 1002 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
1008 | 1003 |
1009 listener.Reply("go"); | 1004 listener.Reply("go"); |
1010 | 1005 |
(...skipping 26 matching lines...) Expand all Loading... |
1037 .Times(3) | 1032 .Times(3) |
1038 .WillRepeatedly(Return(chrc0_.get())); | 1033 .WillRepeatedly(Return(chrc0_.get())); |
1039 | 1034 |
1040 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) | 1035 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) |
1041 .Times(3) | 1036 .Times(3) |
1042 .WillRepeatedly(Return(desc0_.get())); | 1037 .WillRepeatedly(Return(desc0_.get())); |
1043 | 1038 |
1044 std::vector<uint8_t> write_value; | 1039 std::vector<uint8_t> write_value; |
1045 EXPECT_CALL(*desc0_, WriteRemoteDescriptor(_, _, _)) | 1040 EXPECT_CALL(*desc0_, WriteRemoteDescriptor(_, _, _)) |
1046 .Times(2) | 1041 .Times(2) |
1047 .WillOnce( | 1042 .WillOnce(InvokeCallbackArgument<2>( |
1048 InvokeCallbackArgument<2>(BluetoothGattService::GATT_ERROR_FAILED)) | 1043 BluetoothRemoteGattService::GATT_ERROR_FAILED)) |
1049 .WillOnce(DoAll(SaveArg<0>(&write_value), InvokeCallbackArgument<1>())); | 1044 .WillOnce(DoAll(SaveArg<0>(&write_value), InvokeCallbackArgument<1>())); |
1050 | 1045 |
1051 EXPECT_CALL(*desc0_, GetValue()).Times(1).WillOnce(ReturnRef(write_value)); | 1046 EXPECT_CALL(*desc0_, GetValue()).Times(1).WillOnce(ReturnRef(write_value)); |
1052 | 1047 |
1053 ExtensionTestMessageListener listener("ready", true); | 1048 ExtensionTestMessageListener listener("ready", true); |
1054 listener.set_failure_message("fail"); | 1049 listener.set_failure_message("fail"); |
1055 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 1050 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
1056 "bluetooth_low_energy/write_descriptor_value"))); | 1051 "bluetooth_low_energy/write_descriptor_value"))); |
1057 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 1052 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
1058 | 1053 |
(...skipping 18 matching lines...) Expand all Loading... |
1077 | 1072 |
1078 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionMethods) { | 1073 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, UuidPermissionMethods) { |
1079 ResultCatcher catcher; | 1074 ResultCatcher catcher; |
1080 catcher.RestrictToBrowserContext(browser()->profile()); | 1075 catcher.RestrictToBrowserContext(browser()->profile()); |
1081 | 1076 |
1082 event_router()->GattServiceAdded( | 1077 event_router()->GattServiceAdded( |
1083 mock_adapter_, device0_.get(), service0_.get()); | 1078 mock_adapter_, device0_.get(), service0_.get()); |
1084 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); | 1079 event_router()->GattCharacteristicAdded(mock_adapter_, chrc0_.get()); |
1085 event_router()->GattDescriptorAdded(mock_adapter_, desc0_.get()); | 1080 event_router()->GattDescriptorAdded(mock_adapter_, desc0_.get()); |
1086 | 1081 |
1087 std::vector<BluetoothGattService*> services; | 1082 std::vector<BluetoothRemoteGattService*> services; |
1088 services.push_back(service0_.get()); | 1083 services.push_back(service0_.get()); |
1089 | 1084 |
1090 EXPECT_CALL(*mock_adapter_, GetDevice(_)) | 1085 EXPECT_CALL(*mock_adapter_, GetDevice(_)) |
1091 .WillRepeatedly(Return(device0_.get())); | 1086 .WillRepeatedly(Return(device0_.get())); |
1092 EXPECT_CALL(*device0_, GetGattServices()).WillOnce(Return(services)); | 1087 EXPECT_CALL(*device0_, GetGattServices()).WillOnce(Return(services)); |
1093 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) | 1088 EXPECT_CALL(*device0_, GetGattService(kTestServiceId0)) |
1094 .WillRepeatedly(Return(service0_.get())); | 1089 .WillRepeatedly(Return(service0_.get())); |
1095 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) | 1090 EXPECT_CALL(*service0_, GetCharacteristic(kTestCharacteristicId0)) |
1096 .WillRepeatedly(Return(chrc0_.get())); | 1091 .WillRepeatedly(Return(chrc0_.get())); |
1097 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) | 1092 EXPECT_CALL(*chrc0_, GetDescriptor(kTestDescriptorId0)) |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1291 MockBluetoothGattNotifySession* session1 = | 1286 MockBluetoothGattNotifySession* session1 = |
1292 new testing::NiceMock<MockBluetoothGattNotifySession>( | 1287 new testing::NiceMock<MockBluetoothGattNotifySession>( |
1293 kTestCharacteristicId1); | 1288 kTestCharacteristicId1); |
1294 | 1289 |
1295 EXPECT_CALL(*session1, Stop(_)) | 1290 EXPECT_CALL(*session1, Stop(_)) |
1296 .Times(1) | 1291 .Times(1) |
1297 .WillOnce(InvokeCallbackArgument<0>()); | 1292 .WillOnce(InvokeCallbackArgument<0>()); |
1298 | 1293 |
1299 EXPECT_CALL(*chrc0_, StartNotifySession(_, _)) | 1294 EXPECT_CALL(*chrc0_, StartNotifySession(_, _)) |
1300 .Times(2) | 1295 .Times(2) |
1301 .WillOnce( | 1296 .WillOnce(InvokeCallbackArgument<1>( |
1302 InvokeCallbackArgument<1>(BluetoothGattService::GATT_ERROR_FAILED)) | 1297 BluetoothRemoteGattService::GATT_ERROR_FAILED)) |
1303 .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattNotifySession>( | 1298 .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattNotifySession>( |
1304 session0)); | 1299 session0)); |
1305 EXPECT_CALL(*chrc1_, StartNotifySession(_, _)) | 1300 EXPECT_CALL(*chrc1_, StartNotifySession(_, _)) |
1306 .Times(1) | 1301 .Times(1) |
1307 .WillOnce( | 1302 .WillOnce( |
1308 InvokeCallbackWithScopedPtrArg<0, BluetoothGattNotifySession>( | 1303 InvokeCallbackWithScopedPtrArg<0, BluetoothGattNotifySession>( |
1309 session1)); | 1304 session1)); |
1310 | 1305 |
1311 ExtensionTestMessageListener listener("ready", true); | 1306 ExtensionTestMessageListener listener("ready", true); |
1312 listener.set_failure_message("fail"); | 1307 listener.set_failure_message("fail"); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1363 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 1358 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
1364 | 1359 |
1365 listener.Reply("go"); | 1360 listener.Reply("go"); |
1366 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 1361 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
1367 | 1362 |
1368 event_router()->GattServiceRemoved(mock_adapter_, device0_.get(), | 1363 event_router()->GattServiceRemoved(mock_adapter_, device0_.get(), |
1369 service0_.get()); | 1364 service0_.get()); |
1370 } | 1365 } |
1371 | 1366 |
1372 } // namespace | 1367 } // namespace |
OLD | NEW |