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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "chrome/browser/extensions/extension_apitest.h" | 6 #include "chrome/browser/extensions/extension_apitest.h" |
7 #include "chrome/browser/extensions/extension_function_test_utils.h" | |
8 #include "chrome/browser/extensions/extension_test_message_listener.h" | 7 #include "chrome/browser/extensions/extension_test_message_listener.h" |
9 #include "device/bluetooth/test/mock_bluetooth_adapter.h" | 8 #include "device/bluetooth/test/mock_bluetooth_adapter.h" |
10 #include "device/bluetooth/test/mock_bluetooth_device.h" | 9 #include "device/bluetooth/test/mock_bluetooth_device.h" |
11 #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h" | 10 #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h" |
12 #include "device/bluetooth/test/mock_bluetooth_gatt_connection.h" | 11 #include "device/bluetooth/test/mock_bluetooth_gatt_connection.h" |
13 #include "device/bluetooth/test/mock_bluetooth_gatt_descriptor.h" | 12 #include "device/bluetooth/test/mock_bluetooth_gatt_descriptor.h" |
14 #include "device/bluetooth/test/mock_bluetooth_gatt_notify_session.h" | 13 #include "device/bluetooth/test/mock_bluetooth_gatt_notify_session.h" |
15 #include "device/bluetooth/test/mock_bluetooth_gatt_service.h" | 14 #include "device/bluetooth/test/mock_bluetooth_gatt_service.h" |
16 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.h
" | 15 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.h
" |
17 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event
_router.h" | 16 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event
_router.h" |
| 17 #include "extensions/common/test_util.h" |
18 #include "extensions/test/result_catcher.h" | 18 #include "extensions/test/result_catcher.h" |
19 #include "testing/gmock/include/gmock/gmock.h" | 19 #include "testing/gmock/include/gmock/gmock.h" |
20 | 20 |
21 using device::BluetoothUUID; | 21 using device::BluetoothUUID; |
22 using device::BluetoothAdapter; | 22 using device::BluetoothAdapter; |
23 using device::BluetoothDevice; | 23 using device::BluetoothDevice; |
24 using device::BluetoothGattCharacteristic; | 24 using device::BluetoothGattCharacteristic; |
25 using device::BluetoothGattConnection; | 25 using device::BluetoothGattConnection; |
26 using device::BluetoothGattDescriptor; | 26 using device::BluetoothGattDescriptor; |
27 using device::BluetoothGattService; | 27 using device::BluetoothGattService; |
28 using device::BluetoothGattNotifySession; | 28 using device::BluetoothGattNotifySession; |
29 using device::MockBluetoothAdapter; | 29 using device::MockBluetoothAdapter; |
30 using device::MockBluetoothDevice; | 30 using device::MockBluetoothDevice; |
31 using device::MockBluetoothGattCharacteristic; | 31 using device::MockBluetoothGattCharacteristic; |
32 using device::MockBluetoothGattConnection; | 32 using device::MockBluetoothGattConnection; |
33 using device::MockBluetoothGattDescriptor; | 33 using device::MockBluetoothGattDescriptor; |
34 using device::MockBluetoothGattService; | 34 using device::MockBluetoothGattService; |
35 using device::MockBluetoothGattNotifySession; | 35 using device::MockBluetoothGattNotifySession; |
36 using extensions::BluetoothLowEnergyEventRouter; | 36 using extensions::BluetoothLowEnergyEventRouter; |
37 using extensions::ResultCatcher; | 37 using extensions::ResultCatcher; |
38 using testing::Invoke; | 38 using testing::Invoke; |
39 using testing::Return; | 39 using testing::Return; |
40 using testing::ReturnRef; | 40 using testing::ReturnRef; |
41 using testing::ReturnRefOfCopy; | 41 using testing::ReturnRefOfCopy; |
42 using testing::SaveArg; | 42 using testing::SaveArg; |
43 using testing::_; | 43 using testing::_; |
44 | 44 |
45 namespace utils = extension_function_test_utils; | |
46 | |
47 namespace { | 45 namespace { |
48 | 46 |
49 // Test service constants. | 47 // Test service constants. |
50 const char kTestLeDeviceAddress0[] = "11:22:33:44:55:66"; | 48 const char kTestLeDeviceAddress0[] = "11:22:33:44:55:66"; |
51 const char kTestLeDeviceName0[] = "Test LE Device 0"; | 49 const char kTestLeDeviceName0[] = "Test LE Device 0"; |
52 | 50 |
53 const char kTestLeDeviceAddress1[] = "77:88:99:AA:BB:CC"; | 51 const char kTestLeDeviceAddress1[] = "77:88:99:AA:BB:CC"; |
54 const char kTestLeDeviceName1[] = "Test LE Device 1"; | 52 const char kTestLeDeviceName1[] = "Test LE Device 1"; |
55 | 53 |
56 const char kTestServiceId0[] = "service_id0"; | 54 const char kTestServiceId0[] = "service_id0"; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 const uint8 kTestDescriptorDefaultValue1[] = {0x04, 0x05}; | 90 const uint8 kTestDescriptorDefaultValue1[] = {0x04, 0x05}; |
93 | 91 |
94 class BluetoothLowEnergyApiTest : public ExtensionApiTest { | 92 class BluetoothLowEnergyApiTest : public ExtensionApiTest { |
95 public: | 93 public: |
96 BluetoothLowEnergyApiTest() {} | 94 BluetoothLowEnergyApiTest() {} |
97 | 95 |
98 virtual ~BluetoothLowEnergyApiTest() {} | 96 virtual ~BluetoothLowEnergyApiTest() {} |
99 | 97 |
100 virtual void SetUpOnMainThread() OVERRIDE { | 98 virtual void SetUpOnMainThread() OVERRIDE { |
101 ExtensionApiTest::SetUpOnMainThread(); | 99 ExtensionApiTest::SetUpOnMainThread(); |
102 empty_extension_ = utils::CreateEmptyExtension(); | 100 empty_extension_ = extensions::test_util::CreateEmptyExtension(); |
103 SetUpMocks(); | 101 SetUpMocks(); |
104 } | 102 } |
105 | 103 |
106 virtual void TearDownOnMainThread() OVERRIDE { | 104 virtual void TearDownOnMainThread() OVERRIDE { |
107 EXPECT_CALL(*mock_adapter_, RemoveObserver(_)); | 105 EXPECT_CALL(*mock_adapter_, RemoveObserver(_)); |
108 } | 106 } |
109 | 107 |
110 void SetUpMocks() { | 108 void SetUpMocks() { |
111 mock_adapter_ = new testing::StrictMock<MockBluetoothAdapter>(); | 109 mock_adapter_ = new testing::StrictMock<MockBluetoothAdapter>(); |
112 EXPECT_CALL(*mock_adapter_, GetDevices()) | 110 EXPECT_CALL(*mock_adapter_, GetDevices()) |
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1155 .Times(2) | 1153 .Times(2) |
1156 .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>( | 1154 .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>( |
1157 first_conn)) | 1155 first_conn)) |
1158 .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>( | 1156 .WillOnce(InvokeCallbackWithScopedPtrArg<0, BluetoothGattConnection>( |
1159 CreateGattConnection(kTestLeDeviceAddress0, | 1157 CreateGattConnection(kTestLeDeviceAddress0, |
1160 false /* expect_disconnect */))); | 1158 false /* expect_disconnect */))); |
1161 | 1159 |
1162 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 1160 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
1163 "bluetooth_low_energy/reconnect_after_disconnected"))); | 1161 "bluetooth_low_energy/reconnect_after_disconnected"))); |
1164 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 1162 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
1165 | |
1166 } | 1163 } |
1167 | 1164 |
1168 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ConnectInProgress) { | 1165 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ConnectInProgress) { |
1169 ResultCatcher catcher; | 1166 ResultCatcher catcher; |
1170 catcher.RestrictToBrowserContext(browser()->profile()); | 1167 catcher.RestrictToBrowserContext(browser()->profile()); |
1171 | 1168 |
1172 EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0)) | 1169 EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0)) |
1173 .WillRepeatedly(Return(device0_.get())); | 1170 .WillRepeatedly(Return(device0_.get())); |
1174 | 1171 |
1175 BluetoothDevice::GattConnectionCallback connect_callback; | 1172 BluetoothDevice::GattConnectionCallback connect_callback; |
(...skipping 16 matching lines...) Expand all Loading... |
1192 "bluetooth_low_energy/connect_in_progress"))); | 1189 "bluetooth_low_energy/connect_in_progress"))); |
1193 | 1190 |
1194 listener.WaitUntilSatisfied(); | 1191 listener.WaitUntilSatisfied(); |
1195 connect_callback.Run(conn_ptr.Pass()); | 1192 connect_callback.Run(conn_ptr.Pass()); |
1196 | 1193 |
1197 listener.Reset(); | 1194 listener.Reset(); |
1198 listener.WaitUntilSatisfied(); | 1195 listener.WaitUntilSatisfied(); |
1199 disconnect_callback.Run(); | 1196 disconnect_callback.Run(); |
1200 | 1197 |
1201 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 1198 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
1202 | |
1203 } | 1199 } |
1204 | 1200 |
1205 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, StartStopNotifications) { | 1201 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, StartStopNotifications) { |
1206 ResultCatcher catcher; | 1202 ResultCatcher catcher; |
1207 catcher.RestrictToBrowserContext(browser()->profile()); | 1203 catcher.RestrictToBrowserContext(browser()->profile()); |
1208 | 1204 |
1209 event_router()->GattServiceAdded( | 1205 event_router()->GattServiceAdded( |
1210 mock_adapter_, device0_.get(), service0_.get()); | 1206 mock_adapter_, device0_.get(), service0_.get()); |
1211 event_router()->GattServiceAdded( | 1207 event_router()->GattServiceAdded( |
1212 mock_adapter_, device0_.get(), service1_.get()); | 1208 mock_adapter_, device0_.get(), service1_.get()); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1273 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc2_.get()); | 1269 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc2_.get()); |
1274 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc1_.get()); | 1270 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc1_.get()); |
1275 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc0_.get()); | 1271 event_router()->GattCharacteristicRemoved(mock_adapter_, chrc0_.get()); |
1276 event_router()->GattServiceRemoved( | 1272 event_router()->GattServiceRemoved( |
1277 mock_adapter_, device0_.get(), service1_.get()); | 1273 mock_adapter_, device0_.get(), service1_.get()); |
1278 event_router()->GattServiceRemoved( | 1274 event_router()->GattServiceRemoved( |
1279 mock_adapter_, device0_.get(), service0_.get()); | 1275 mock_adapter_, device0_.get(), service0_.get()); |
1280 } | 1276 } |
1281 | 1277 |
1282 } // namespace | 1278 } // namespace |
OLD | NEW |