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