| 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 "device/bluetooth/test/mock_bluetooth_adapter.h" | 7 #include "device/bluetooth/test/mock_bluetooth_adapter.h" |
| 8 #include "device/bluetooth/test/mock_bluetooth_device.h" | 8 #include "device/bluetooth/test/mock_bluetooth_device.h" |
| 9 #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h" | 9 #include "device/bluetooth/test/mock_bluetooth_gatt_characteristic.h" |
| 10 #include "device/bluetooth/test/mock_bluetooth_gatt_connection.h" | 10 #include "device/bluetooth/test/mock_bluetooth_gatt_connection.h" |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 HAS_2_TEMPLATE_PARAMS(int, k, typename, T), | 239 HAS_2_TEMPLATE_PARAMS(int, k, typename, T), |
| 240 AND_1_VALUE_PARAMS(p0)) { | 240 AND_1_VALUE_PARAMS(p0)) { |
| 241 ::std::tr1::get<k>(args).Run(scoped_ptr<T>(p0)); | 241 ::std::tr1::get<k>(args).Run(scoped_ptr<T>(p0)); |
| 242 } | 242 } |
| 243 | 243 |
| 244 BluetoothGattConnection* CreateGattConnection( | 244 BluetoothGattConnection* CreateGattConnection( |
| 245 const std::string& device_address, | 245 const std::string& device_address, |
| 246 bool expect_disconnect) { | 246 bool expect_disconnect) { |
| 247 testing::NiceMock<MockBluetoothGattConnection>* conn = | 247 testing::NiceMock<MockBluetoothGattConnection>* conn = |
| 248 new testing::NiceMock<MockBluetoothGattConnection>(device_address); | 248 new testing::NiceMock<MockBluetoothGattConnection>(device_address); |
| 249 | 249 EXPECT_CALL(*conn, Disconnect()).Times(expect_disconnect ? 1 : 0); |
| 250 if (expect_disconnect) { | |
| 251 EXPECT_CALL(*conn, Disconnect(_)) | |
| 252 .Times(1) | |
| 253 .WillOnce(InvokeCallbackArgument<0>()); | |
| 254 } else { | |
| 255 EXPECT_CALL(*conn, Disconnect(_)).Times(0); | |
| 256 } | |
| 257 | |
| 258 return conn; | 250 return conn; |
| 259 } | 251 } |
| 260 | 252 |
| 261 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetServices) { | 253 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, GetServices) { |
| 262 ResultCatcher catcher; | 254 ResultCatcher catcher; |
| 263 catcher.RestrictToBrowserContext(browser()->profile()); | 255 catcher.RestrictToBrowserContext(browser()->profile()); |
| 264 | 256 |
| 265 std::vector<BluetoothGattService*> services; | 257 std::vector<BluetoothGattService*> services; |
| 266 services.push_back(service0_.get()); | 258 services.push_back(service0_.get()); |
| 267 services.push_back(service1_.get()); | 259 services.push_back(service1_.get()); |
| (...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 } | 1197 } |
| 1206 | 1198 |
| 1207 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ConnectInProgress) { | 1199 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, ConnectInProgress) { |
| 1208 ResultCatcher catcher; | 1200 ResultCatcher catcher; |
| 1209 catcher.RestrictToBrowserContext(browser()->profile()); | 1201 catcher.RestrictToBrowserContext(browser()->profile()); |
| 1210 | 1202 |
| 1211 EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0)) | 1203 EXPECT_CALL(*mock_adapter_, GetDevice(kTestLeDeviceAddress0)) |
| 1212 .WillRepeatedly(Return(device0_.get())); | 1204 .WillRepeatedly(Return(device0_.get())); |
| 1213 | 1205 |
| 1214 BluetoothDevice::GattConnectionCallback connect_callback; | 1206 BluetoothDevice::GattConnectionCallback connect_callback; |
| 1215 base::Closure disconnect_callback; | |
| 1216 | 1207 |
| 1217 testing::NiceMock<MockBluetoothGattConnection>* conn = | 1208 testing::NiceMock<MockBluetoothGattConnection>* conn = |
| 1218 new testing::NiceMock<MockBluetoothGattConnection>( | 1209 new testing::NiceMock<MockBluetoothGattConnection>( |
| 1219 kTestLeDeviceAddress0); | 1210 kTestLeDeviceAddress0); |
| 1220 scoped_ptr<BluetoothGattConnection> conn_ptr(conn); | 1211 scoped_ptr<BluetoothGattConnection> conn_ptr(conn); |
| 1221 EXPECT_CALL(*conn, Disconnect(_)) | 1212 EXPECT_CALL(*conn, Disconnect()).Times(1); |
| 1222 .Times(1) | |
| 1223 .WillOnce(SaveArg<0>(&disconnect_callback)); | |
| 1224 | 1213 |
| 1225 EXPECT_CALL(*device0_, CreateGattConnection(_, _)) | 1214 EXPECT_CALL(*device0_, CreateGattConnection(_, _)) |
| 1226 .Times(1) | 1215 .Times(1) |
| 1227 .WillOnce(SaveArg<0>(&connect_callback)); | 1216 .WillOnce(SaveArg<0>(&connect_callback)); |
| 1228 | 1217 |
| 1229 ExtensionTestMessageListener listener(true); | 1218 ExtensionTestMessageListener listener(true); |
| 1230 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 1219 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
| 1231 "bluetooth_low_energy/connect_in_progress"))); | 1220 "bluetooth_low_energy/connect_in_progress"))); |
| 1232 | 1221 |
| 1233 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 1222 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| 1234 ASSERT_EQ("ready", listener.message()) << listener.message(); | 1223 ASSERT_EQ("After 2nd connect fails due to 1st connect being in progress.", |
| 1224 listener.message()) |
| 1225 << listener.message(); |
| 1226 listener.Reset(); |
| 1227 |
| 1235 connect_callback.Run(conn_ptr.Pass()); | 1228 connect_callback.Run(conn_ptr.Pass()); |
| 1236 | |
| 1237 listener.Reset(); | |
| 1238 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 1229 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| 1239 ASSERT_EQ("ready", listener.message()) << listener.message(); | 1230 ASSERT_EQ("After 2nd call to disconnect.", listener.message()) |
| 1240 disconnect_callback.Run(); | 1231 << listener.message(); |
| 1241 | 1232 |
| 1242 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 1233 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 1243 } | 1234 } |
| 1244 | 1235 |
| 1245 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, StartStopNotifications) { | 1236 IN_PROC_BROWSER_TEST_F(BluetoothLowEnergyApiTest, StartStopNotifications) { |
| 1246 ResultCatcher catcher; | 1237 ResultCatcher catcher; |
| 1247 catcher.RestrictToBrowserContext(browser()->profile()); | 1238 catcher.RestrictToBrowserContext(browser()->profile()); |
| 1248 | 1239 |
| 1249 event_router()->GattServiceAdded( | 1240 event_router()->GattServiceAdded( |
| 1250 mock_adapter_, device0_.get(), service0_.get()); | 1241 mock_adapter_, device0_.get(), service0_.get()); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1331 catcher.RestrictToBrowserContext(browser()->profile()); | 1322 catcher.RestrictToBrowserContext(browser()->profile()); |
| 1332 | 1323 |
| 1333 // Run the test. | 1324 // Run the test. |
| 1334 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 1325 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( |
| 1335 "bluetooth_low_energy/register_advertisement"))); | 1326 "bluetooth_low_energy/register_advertisement"))); |
| 1336 | 1327 |
| 1337 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 1328 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 1338 } | 1329 } |
| 1339 | 1330 |
| 1340 } // namespace | 1331 } // namespace |
| OLD | NEW |