| 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 "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" | 7 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" |
| 8 #include "chrome/browser/extensions/bluetooth_event_router.h" | 8 #include "chrome/browser/extensions/bluetooth_event_router.h" |
| 9 #include "chrome/browser/extensions/extension_apitest.h" | 9 #include "chrome/browser/extensions/extension_apitest.h" |
| 10 #include "chrome/browser/extensions/extension_function_test_utils.h" | 10 #include "chrome/browser/extensions/extension_function_test_utils.h" |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 event_router()->DeviceAdded(mock_adapter_, device1_.get()); | 325 event_router()->DeviceAdded(mock_adapter_, device1_.get()); |
| 326 | 326 |
| 327 discovery_started.Reply("go"); | 327 discovery_started.Reply("go"); |
| 328 ExtensionTestMessageListener discovery_stopped("ready", true); | 328 ExtensionTestMessageListener discovery_stopped("ready", true); |
| 329 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); | 329 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); |
| 330 | 330 |
| 331 event_router()->DeviceAdded(mock_adapter_, device2_.get()); | 331 event_router()->DeviceAdded(mock_adapter_, device2_.get()); |
| 332 discovery_stopped.Reply("go"); | 332 discovery_stopped.Reply("go"); |
| 333 | 333 |
| 334 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 334 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 335 CloseShellWindowsAndWaitForAppToExit(); |
| 335 } | 336 } |
| 336 | 337 |
| 337 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryInProgress) { | 338 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryInProgress) { |
| 338 // Fake that the adapter is discovering | 339 // Fake that the adapter is discovering |
| 339 EXPECT_CALL(*mock_adapter_, IsDiscovering()).WillOnce(testing::Return(true)); | 340 EXPECT_CALL(*mock_adapter_, IsDiscovering()).WillOnce(testing::Return(true)); |
| 340 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); | 341 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); |
| 341 | 342 |
| 342 // Cache a device before the extension starts discovering | 343 // Cache a device before the extension starts discovering |
| 343 event_router()->DeviceAdded(mock_adapter_, device1_.get()); | 344 event_router()->DeviceAdded(mock_adapter_, device1_.get()); |
| 344 | 345 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 355 | 356 |
| 356 discovery_started.Reply("go"); | 357 discovery_started.Reply("go"); |
| 357 ExtensionTestMessageListener discovery_stopped("ready", true); | 358 ExtensionTestMessageListener discovery_stopped("ready", true); |
| 358 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); | 359 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); |
| 359 | 360 |
| 360 // This should never be received. | 361 // This should never be received. |
| 361 event_router()->DeviceAdded(mock_adapter_, device2_.get()); | 362 event_router()->DeviceAdded(mock_adapter_, device2_.get()); |
| 362 discovery_stopped.Reply("go"); | 363 discovery_stopped.Reply("go"); |
| 363 | 364 |
| 364 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 365 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 366 CloseShellWindowsAndWaitForAppToExit(); |
| 365 } | 367 } |
| 366 | 368 |
| 367 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Events) { | 369 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Events) { |
| 368 ResultCatcher catcher; | 370 ResultCatcher catcher; |
| 369 catcher.RestrictToProfile(browser()->profile()); | 371 catcher.RestrictToProfile(browser()->profile()); |
| 370 | 372 |
| 371 // Load and wait for setup | 373 // Load and wait for setup |
| 372 ExtensionTestMessageListener listener("ready", true); | 374 ExtensionTestMessageListener listener("ready", true); |
| 373 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("bluetooth/events"))); | 375 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("bluetooth/events"))); |
| 374 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 376 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| 375 | 377 |
| 376 event_router()->AdapterPoweredChanged(mock_adapter_, true); | 378 event_router()->AdapterPoweredChanged(mock_adapter_, true); |
| 377 event_router()->AdapterPoweredChanged(mock_adapter_, false); | 379 event_router()->AdapterPoweredChanged(mock_adapter_, false); |
| 378 event_router()->AdapterPresentChanged(mock_adapter_, true); | 380 event_router()->AdapterPresentChanged(mock_adapter_, true); |
| 379 event_router()->AdapterPresentChanged(mock_adapter_, false); | 381 event_router()->AdapterPresentChanged(mock_adapter_, false); |
| 380 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); | 382 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); |
| 381 event_router()->AdapterDiscoveringChanged(mock_adapter_, false); | 383 event_router()->AdapterDiscoveringChanged(mock_adapter_, false); |
| 382 | 384 |
| 383 listener.Reply("go"); | 385 listener.Reply("go"); |
| 384 | 386 |
| 385 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 387 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 388 CloseShellWindowsAndWaitForAppToExit(); |
| 386 } | 389 } |
| 387 | 390 |
| 388 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevices) { | 391 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevices) { |
| 389 ResultCatcher catcher; | 392 ResultCatcher catcher; |
| 390 catcher.RestrictToProfile(browser()->profile()); | 393 catcher.RestrictToProfile(browser()->profile()); |
| 391 | 394 |
| 392 BluetoothAdapter::ConstDeviceList devices; | 395 BluetoothAdapter::ConstDeviceList devices; |
| 393 devices.push_back(device1_.get()); | 396 devices.push_back(device1_.get()); |
| 394 devices.push_back(device2_.get()); | 397 devices.push_back(device2_.get()); |
| 395 | 398 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 409 | 412 |
| 410 // Load and wait for setup | 413 // Load and wait for setup |
| 411 ExtensionTestMessageListener listener("ready", true); | 414 ExtensionTestMessageListener listener("ready", true); |
| 412 ASSERT_TRUE( | 415 ASSERT_TRUE( |
| 413 LoadExtension(test_data_dir_.AppendASCII("bluetooth/get_devices"))); | 416 LoadExtension(test_data_dir_.AppendASCII("bluetooth/get_devices"))); |
| 414 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 417 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| 415 | 418 |
| 416 listener.Reply("go"); | 419 listener.Reply("go"); |
| 417 | 420 |
| 418 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 421 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 422 CloseShellWindowsAndWaitForAppToExit(); |
| 419 } | 423 } |
| 420 | 424 |
| 421 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevicesConcurrently) { | 425 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevicesConcurrently) { |
| 422 ResultCatcher catcher; | 426 ResultCatcher catcher; |
| 423 catcher.RestrictToProfile(browser()->profile()); | 427 catcher.RestrictToProfile(browser()->profile()); |
| 424 | 428 |
| 425 BluetoothAdapter::ConstDeviceList devices; | 429 BluetoothAdapter::ConstDeviceList devices; |
| 426 devices.push_back(device1_.get()); | 430 devices.push_back(device1_.get()); |
| 427 | 431 |
| 428 // Save the callback to delay execution so that we can force the calls to | 432 // Save the callback to delay execution so that we can force the calls to |
| 429 // happen concurrently. This will be called after the listener is satisfied. | 433 // happen concurrently. This will be called after the listener is satisfied. |
| 430 BluetoothDevice::ProvidesServiceCallback callback; | 434 BluetoothDevice::ProvidesServiceCallback* callback = |
| 435 new BluetoothDevice::ProvidesServiceCallback; |
| 431 EXPECT_CALL(*device1_, ProvidesServiceWithName(testing::_, testing::_)) | 436 EXPECT_CALL(*device1_, ProvidesServiceWithName(testing::_, testing::_)) |
| 432 .WillOnce(testing::SaveArg<1>(&callback)); | 437 .WillOnce(testing::SaveArg<1>(callback)); |
| 433 | 438 |
| 434 EXPECT_CALL(*mock_adapter_, GetDevices()) | 439 EXPECT_CALL(*mock_adapter_, GetDevices()) |
| 435 .WillOnce(testing::Return(devices)); | 440 .WillOnce(testing::Return(devices)); |
| 436 | 441 |
| 437 // Load and wait for setup | 442 // Load and wait for setup |
| 438 ExtensionTestMessageListener listener("ready", true); | 443 ExtensionTestMessageListener listener("ready", true); |
| 439 ASSERT_TRUE(LoadExtension( | 444 ASSERT_TRUE(LoadExtension( |
| 440 test_data_dir_.AppendASCII("bluetooth/get_devices_concurrently"))); | 445 test_data_dir_.AppendASCII("bluetooth/get_devices_concurrently"))); |
| 441 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 446 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| 442 | 447 |
| 443 callback.Run(false); | 448 callback->Run(false); |
| 449 delete callback; |
| 444 listener.Reply("go"); | 450 listener.Reply("go"); |
| 445 | 451 |
| 446 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 452 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 453 CloseShellWindowsAndWaitForAppToExit(); |
| 447 } | 454 } |
| 448 | 455 |
| 449 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevicesError) { | 456 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevicesError) { |
| 450 ResultCatcher catcher; | 457 ResultCatcher catcher; |
| 451 catcher.RestrictToProfile(browser()->profile()); | 458 catcher.RestrictToProfile(browser()->profile()); |
| 452 | 459 |
| 453 // Load and wait for setup | 460 // Load and wait for setup |
| 454 ExtensionTestMessageListener listener("ready", true); | 461 ExtensionTestMessageListener listener("ready", true); |
| 455 ASSERT_TRUE(LoadExtension( | 462 ASSERT_TRUE(LoadExtension( |
| 456 test_data_dir_.AppendASCII("bluetooth/get_devices_error"))); | 463 test_data_dir_.AppendASCII("bluetooth/get_devices_error"))); |
| 457 EXPECT_TRUE(listener.WaitUntilSatisfied()); | 464 EXPECT_TRUE(listener.WaitUntilSatisfied()); |
| 458 | 465 |
| 459 listener.Reply("go"); | 466 listener.Reply("go"); |
| 460 | 467 |
| 461 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 468 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 469 CloseShellWindowsAndWaitForAppToExit(); |
| 462 } | 470 } |
| OLD | NEW |