OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string.h> | 5 #include <string.h> |
6 | 6 |
7 #include "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
8 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" | 8 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" |
9 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" | 9 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" |
10 #include "chrome/browser/extensions/api/permissions/permissions_api.h" | 10 #include "chrome/browser/extensions/api/permissions/permissions_api.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 virtual void CleanUpOnMainThread() OVERRIDE { | 53 virtual void CleanUpOnMainThread() OVERRIDE { |
54 EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)); | 54 EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)); |
55 } | 55 } |
56 | 56 |
57 void SetUpMockAdapter() { | 57 void SetUpMockAdapter() { |
58 // The browser will clean this up when it is torn down | 58 // The browser will clean this up when it is torn down |
59 mock_adapter_ = new testing::StrictMock<MockBluetoothAdapter>(); | 59 mock_adapter_ = new testing::StrictMock<MockBluetoothAdapter>(); |
60 event_router()->SetAdapterForTest(mock_adapter_); | 60 event_router()->SetAdapterForTest(mock_adapter_); |
61 | 61 |
62 device1_.reset(new testing::NiceMock<MockBluetoothDevice>( | 62 device1_.reset(new testing::NiceMock<MockBluetoothDevice>( |
63 mock_adapter_, "d1", "11:12:13:14:15:16", | 63 mock_adapter_, 0, "d1", "11:12:13:14:15:16", |
64 true /* paired */, false /* bonded */, true /* connected */)); | 64 true /* paired */, true /* connected */)); |
65 device2_.reset(new testing::NiceMock<MockBluetoothDevice>( | 65 device2_.reset(new testing::NiceMock<MockBluetoothDevice>( |
66 mock_adapter_, "d2", "21:22:23:24:25:26", | 66 mock_adapter_, 0, "d2", "21:22:23:24:25:26", |
67 false /* paired */, true /* bonded */, false /* connected */)); | 67 false /* paired */, false /* connected */)); |
68 } | 68 } |
69 | 69 |
70 template <class T> | 70 template <class T> |
71 T* setupFunction(T* function) { | 71 T* setupFunction(T* function) { |
72 function->set_extension(empty_extension_.get()); | 72 function->set_extension(empty_extension_.get()); |
73 function->set_has_callback(true); | 73 function->set_has_callback(true); |
74 return function; | 74 return function; |
75 } | 75 } |
76 | 76 |
77 protected: | 77 protected: |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 const std::string& name, | 135 const std::string& name, |
136 const BluetoothDevice::SocketCallback& callback) { | 136 const BluetoothDevice::SocketCallback& callback) { |
137 scoped_refptr<device::MockBluetoothSocket> socket = | 137 scoped_refptr<device::MockBluetoothSocket> socket = |
138 new device::MockBluetoothSocket(); | 138 new device::MockBluetoothSocket(); |
139 callback.Run(socket); | 139 callback.Run(socket); |
140 } | 140 } |
141 | 141 |
142 } // namespace | 142 } // namespace |
143 | 143 |
144 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, OnAdapterStateChanged) { | 144 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, OnAdapterStateChanged) { |
145 EXPECT_CALL(*mock_adapter_, address()) | 145 EXPECT_CALL(*mock_adapter_, GetAddress()) |
146 .WillOnce(testing::Return(kAdapterAddress)); | 146 .WillOnce(testing::Return(kAdapterAddress)); |
147 EXPECT_CALL(*mock_adapter_, name()) | 147 EXPECT_CALL(*mock_adapter_, GetName()) |
148 .WillOnce(testing::Return(kName)); | 148 .WillOnce(testing::Return(kName)); |
149 EXPECT_CALL(*mock_adapter_, IsPresent()) | 149 EXPECT_CALL(*mock_adapter_, IsPresent()) |
150 .WillOnce(testing::Return(false)); | 150 .WillOnce(testing::Return(false)); |
151 EXPECT_CALL(*mock_adapter_, IsPowered()) | 151 EXPECT_CALL(*mock_adapter_, IsPowered()) |
152 .WillOnce(testing::Return(true)); | 152 .WillOnce(testing::Return(true)); |
153 EXPECT_CALL(*mock_adapter_, IsDiscovering()) | 153 EXPECT_CALL(*mock_adapter_, IsDiscovering()) |
154 .WillOnce(testing::Return(false)); | 154 .WillOnce(testing::Return(false)); |
155 | 155 |
156 scoped_refptr<api::BluetoothGetAdapterStateFunction> get_adapter_state; | 156 scoped_refptr<api::BluetoothGetAdapterStateFunction> get_adapter_state; |
157 get_adapter_state = setupFunction(new api::BluetoothGetAdapterStateFunction); | 157 get_adapter_state = setupFunction(new api::BluetoothGetAdapterStateFunction); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 | 201 |
202 get_oob_function = | 202 get_oob_function = |
203 setupFunction(new api::BluetoothGetLocalOutOfBandPairingDataFunction); | 203 setupFunction(new api::BluetoothGetLocalOutOfBandPairingDataFunction); |
204 | 204 |
205 std::string error( | 205 std::string error( |
206 utils::RunFunctionAndReturnError(get_oob_function, "[]", browser())); | 206 utils::RunFunctionAndReturnError(get_oob_function, "[]", browser())); |
207 EXPECT_FALSE(error.empty()); | 207 EXPECT_FALSE(error.empty()); |
208 } | 208 } |
209 | 209 |
210 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, SetOutOfBandPairingData) { | 210 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, SetOutOfBandPairingData) { |
211 EXPECT_CALL(*mock_adapter_, GetDevice(device1_->address())) | 211 EXPECT_CALL(*mock_adapter_, GetDevice(device1_->GetAddress())) |
212 .WillOnce(testing::Return(device1_.get())); | 212 .WillOnce(testing::Return(device1_.get())); |
213 EXPECT_CALL(*device1_, | 213 EXPECT_CALL(*device1_, |
214 ClearOutOfBandPairingData(testing::Truly(CallClosure), | 214 ClearOutOfBandPairingData(testing::Truly(CallClosure), |
215 testing::_)); | 215 testing::_)); |
216 | 216 |
217 std::string params = base::StringPrintf( | 217 std::string params = base::StringPrintf( |
218 "[{\"deviceAddress\":\"%s\"}]", device1_->address().c_str()); | 218 "[{\"deviceAddress\":\"%s\"}]", device1_->GetAddress().c_str()); |
219 | 219 |
220 scoped_refptr<api::BluetoothSetOutOfBandPairingDataFunction> set_oob_function; | 220 scoped_refptr<api::BluetoothSetOutOfBandPairingDataFunction> set_oob_function; |
221 set_oob_function = setupFunction( | 221 set_oob_function = setupFunction( |
222 new api::BluetoothSetOutOfBandPairingDataFunction); | 222 new api::BluetoothSetOutOfBandPairingDataFunction); |
223 // There isn't actually a result. | 223 // There isn't actually a result. |
224 (void)utils::RunFunctionAndReturnSingleResult( | 224 (void)utils::RunFunctionAndReturnSingleResult( |
225 set_oob_function, params, browser()); | 225 set_oob_function, params, browser()); |
226 | 226 |
227 // Try again with an error | 227 // Try again with an error |
228 testing::Mock::VerifyAndClearExpectations(mock_adapter_); | 228 testing::Mock::VerifyAndClearExpectations(mock_adapter_); |
229 testing::Mock::VerifyAndClearExpectations(device1_.get()); | 229 testing::Mock::VerifyAndClearExpectations(device1_.get()); |
230 EXPECT_CALL(*mock_adapter_, GetDevice(device1_->address())) | 230 EXPECT_CALL(*mock_adapter_, GetDevice(device1_->GetAddress())) |
231 .WillOnce(testing::Return(device1_.get())); | 231 .WillOnce(testing::Return(device1_.get())); |
232 EXPECT_CALL(*device1_, | 232 EXPECT_CALL(*device1_, |
233 ClearOutOfBandPairingData(testing::_, | 233 ClearOutOfBandPairingData(testing::_, |
234 testing::Truly(CallClosure))); | 234 testing::Truly(CallClosure))); |
235 | 235 |
236 set_oob_function = setupFunction( | 236 set_oob_function = setupFunction( |
237 new api::BluetoothSetOutOfBandPairingDataFunction); | 237 new api::BluetoothSetOutOfBandPairingDataFunction); |
238 std::string error( | 238 std::string error( |
239 utils::RunFunctionAndReturnError(set_oob_function, params, browser())); | 239 utils::RunFunctionAndReturnError(set_oob_function, params, browser())); |
240 EXPECT_FALSE(error.empty()); | 240 EXPECT_FALSE(error.empty()); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); | 307 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); |
308 | 308 |
309 SetUpMockAdapter(); | 309 SetUpMockAdapter(); |
310 event_router()->DeviceAdded(mock_adapter_, device2_.get()); | 310 event_router()->DeviceAdded(mock_adapter_, device2_.get()); |
311 discovery_stopped.Reply("go"); | 311 discovery_stopped.Reply("go"); |
312 | 312 |
313 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 313 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
314 } | 314 } |
315 | 315 |
316 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryInProgress) { | 316 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryInProgress) { |
317 EXPECT_CALL(*mock_adapter_, address()) | 317 EXPECT_CALL(*mock_adapter_, GetAddress()) |
318 .WillOnce(testing::Return(kAdapterAddress)); | 318 .WillOnce(testing::Return(kAdapterAddress)); |
319 EXPECT_CALL(*mock_adapter_, name()) | 319 EXPECT_CALL(*mock_adapter_, GetName()) |
320 .WillOnce(testing::Return(kName)); | 320 .WillOnce(testing::Return(kName)); |
321 EXPECT_CALL(*mock_adapter_, IsPresent()) | 321 EXPECT_CALL(*mock_adapter_, IsPresent()) |
322 .WillOnce(testing::Return(true)); | 322 .WillOnce(testing::Return(true)); |
323 EXPECT_CALL(*mock_adapter_, IsPowered()) | 323 EXPECT_CALL(*mock_adapter_, IsPowered()) |
324 .WillOnce(testing::Return(true)); | 324 .WillOnce(testing::Return(true)); |
325 | 325 |
326 // Fake that the adapter is discovering | 326 // Fake that the adapter is discovering |
327 EXPECT_CALL(*mock_adapter_, IsDiscovering()) | 327 EXPECT_CALL(*mock_adapter_, IsDiscovering()) |
328 .WillOnce(testing::Return(true)); | 328 .WillOnce(testing::Return(true)); |
329 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); | 329 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 | 362 |
363 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Events) { | 363 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Events) { |
364 ResultCatcher catcher; | 364 ResultCatcher catcher; |
365 catcher.RestrictToProfile(browser()->profile()); | 365 catcher.RestrictToProfile(browser()->profile()); |
366 | 366 |
367 // Load and wait for setup | 367 // Load and wait for setup |
368 ExtensionTestMessageListener listener("ready", true); | 368 ExtensionTestMessageListener listener("ready", true); |
369 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("bluetooth/events"))); | 369 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("bluetooth/events"))); |
370 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 370 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
371 | 371 |
372 EXPECT_CALL(*mock_adapter_, address()) | 372 EXPECT_CALL(*mock_adapter_, GetAddress()) |
373 .WillOnce(testing::Return(kAdapterAddress)); | 373 .WillOnce(testing::Return(kAdapterAddress)); |
374 EXPECT_CALL(*mock_adapter_, name()) | 374 EXPECT_CALL(*mock_adapter_, GetName()) |
375 .WillOnce(testing::Return(kName)); | 375 .WillOnce(testing::Return(kName)); |
376 EXPECT_CALL(*mock_adapter_, IsPresent()) | 376 EXPECT_CALL(*mock_adapter_, IsPresent()) |
377 .WillOnce(testing::Return(false)); | 377 .WillOnce(testing::Return(false)); |
378 EXPECT_CALL(*mock_adapter_, IsPowered()) | 378 EXPECT_CALL(*mock_adapter_, IsPowered()) |
379 .WillOnce(testing::Return(false)); | 379 .WillOnce(testing::Return(false)); |
380 EXPECT_CALL(*mock_adapter_, IsDiscovering()) | 380 EXPECT_CALL(*mock_adapter_, IsDiscovering()) |
381 .WillOnce(testing::Return(false)); | 381 .WillOnce(testing::Return(false)); |
382 event_router()->AdapterPoweredChanged(mock_adapter_, false); | 382 event_router()->AdapterPoweredChanged(mock_adapter_, false); |
383 | 383 |
384 EXPECT_CALL(*mock_adapter_, address()) | 384 EXPECT_CALL(*mock_adapter_, GetAddress()) |
385 .WillOnce(testing::Return(kAdapterAddress)); | 385 .WillOnce(testing::Return(kAdapterAddress)); |
386 EXPECT_CALL(*mock_adapter_, name()) | 386 EXPECT_CALL(*mock_adapter_, GetName()) |
387 .WillOnce(testing::Return(kName)); | 387 .WillOnce(testing::Return(kName)); |
388 EXPECT_CALL(*mock_adapter_, IsPresent()) | 388 EXPECT_CALL(*mock_adapter_, IsPresent()) |
389 .WillOnce(testing::Return(true)); | 389 .WillOnce(testing::Return(true)); |
390 EXPECT_CALL(*mock_adapter_, IsPowered()) | 390 EXPECT_CALL(*mock_adapter_, IsPowered()) |
391 .WillOnce(testing::Return(true)); | 391 .WillOnce(testing::Return(true)); |
392 EXPECT_CALL(*mock_adapter_, IsDiscovering()) | 392 EXPECT_CALL(*mock_adapter_, IsDiscovering()) |
393 .WillOnce(testing::Return(true)); | 393 .WillOnce(testing::Return(true)); |
394 event_router()->AdapterPresentChanged(mock_adapter_, true); | 394 event_router()->AdapterPresentChanged(mock_adapter_, true); |
395 | 395 |
396 EXPECT_CALL(*mock_adapter_, address()) | 396 EXPECT_CALL(*mock_adapter_, GetAddress()) |
397 .WillOnce(testing::Return(kAdapterAddress)); | 397 .WillOnce(testing::Return(kAdapterAddress)); |
398 EXPECT_CALL(*mock_adapter_, name()) | 398 EXPECT_CALL(*mock_adapter_, GetName()) |
399 .WillOnce(testing::Return(kName)); | 399 .WillOnce(testing::Return(kName)); |
400 EXPECT_CALL(*mock_adapter_, IsPresent()) | 400 EXPECT_CALL(*mock_adapter_, IsPresent()) |
401 .WillOnce(testing::Return(true)); | 401 .WillOnce(testing::Return(true)); |
402 EXPECT_CALL(*mock_adapter_, IsPowered()) | 402 EXPECT_CALL(*mock_adapter_, IsPowered()) |
403 .WillOnce(testing::Return(true)); | 403 .WillOnce(testing::Return(true)); |
404 EXPECT_CALL(*mock_adapter_, IsDiscovering()) | 404 EXPECT_CALL(*mock_adapter_, IsDiscovering()) |
405 .WillOnce(testing::Return(true)); | 405 .WillOnce(testing::Return(true)); |
406 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); | 406 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); |
407 | 407 |
408 listener.Reply("go"); | 408 listener.Reply("go"); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 | 483 |
484 listener.Reply("go"); | 484 listener.Reply("go"); |
485 | 485 |
486 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 486 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
487 } | 487 } |
488 | 488 |
489 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Permissions) { | 489 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Permissions) { |
490 PermissionsRequestFunction::SetAutoConfirmForTests(true); | 490 PermissionsRequestFunction::SetAutoConfirmForTests(true); |
491 PermissionsRequestFunction::SetIgnoreUserGestureForTests(true); | 491 PermissionsRequestFunction::SetIgnoreUserGestureForTests(true); |
492 | 492 |
493 EXPECT_CALL(*mock_adapter_, GetDevice(device1_->address())) | 493 EXPECT_CALL(*mock_adapter_, GetDevice(device1_->GetAddress())) |
494 .WillOnce(testing::Return(device1_.get())); | 494 .WillOnce(testing::Return(device1_.get())); |
495 EXPECT_CALL(*device1_, | 495 EXPECT_CALL(*device1_, |
496 ConnectToService(testing::_, testing::_)) | 496 ConnectToService(testing::_, testing::_)) |
497 .WillOnce(testing::Invoke(CallConnectToServiceCallback)); | 497 .WillOnce(testing::Invoke(CallConnectToServiceCallback)); |
498 | 498 |
499 EXPECT_TRUE(RunExtensionTest("bluetooth/permissions")) << message_; | 499 EXPECT_TRUE(RunExtensionTest("bluetooth/permissions")) << message_; |
500 } | 500 } |
OLD | NEW |