Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Side by Side Diff: device/bluetooth/bluetooth_adapter_unittest.cc

Issue 1215303006: bluetooth: android: Initial BluetoothDeviceAndroid implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bta-discovery-
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/bind.h" 5 #include "base/bind.h"
6 #include "base/memory/ref_counted.h" 6 #include "base/memory/ref_counted.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "device/bluetooth/bluetooth_adapter.h" 8 #include "device/bluetooth/bluetooth_adapter.h"
9 #include "device/bluetooth/bluetooth_device.h" 9 #include "device/bluetooth/bluetooth_device.h"
10 #include "device/bluetooth/bluetooth_discovery_session.h" 10 #include "device/bluetooth/bluetooth_discovery_session.h"
11 #include "device/bluetooth/test/bluetooth_test.h" 11 #include "device/bluetooth/test/bluetooth_test.h"
12 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 14
14 #if defined(OS_ANDROID) 15 #if defined(OS_ANDROID)
15 #include "device/bluetooth/test/bluetooth_test_android.h" 16 #include "device/bluetooth/test/bluetooth_test_android.h"
16 #endif 17 #endif
17 18
18 using device::BluetoothDevice; 19 using device::BluetoothDevice;
19 20
20 namespace device { 21 namespace device {
21 22
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 EXPECT_EQ(adapter_->GetName(), "FakeBluetoothAdapter"); 440 EXPECT_EQ(adapter_->GetName(), "FakeBluetoothAdapter");
440 EXPECT_TRUE(adapter_->IsPresent()); 441 EXPECT_TRUE(adapter_->IsPresent());
441 EXPECT_TRUE(adapter_->IsPowered()); 442 EXPECT_TRUE(adapter_->IsPowered());
442 EXPECT_FALSE(adapter_->IsDiscoverable()); 443 EXPECT_FALSE(adapter_->IsDiscoverable());
443 EXPECT_FALSE(adapter_->IsDiscovering()); 444 EXPECT_FALSE(adapter_->IsDiscovering());
444 } 445 }
445 #endif // defined(OS_ANDROID) 446 #endif // defined(OS_ANDROID)
446 447
447 // TODO(scheib): Enable BluetoothTest fixture tests on all platforms. 448 // TODO(scheib): Enable BluetoothTest fixture tests on all platforms.
448 #if defined(OS_ANDROID) 449 #if defined(OS_ANDROID)
450 // Starts and Stops a discovery session.
449 TEST_F(BluetoothTest, DiscoverySession) { 451 TEST_F(BluetoothTest, DiscoverySession) {
450 InitWithFakeAdapter(); 452 InitWithFakeAdapter();
451 EXPECT_FALSE(adapter_->IsDiscovering()); 453 EXPECT_FALSE(adapter_->IsDiscovering());
452 454
453 adapter_->StartDiscoverySession(GetDiscoverySessionCallback(), 455 adapter_->StartDiscoverySession(GetDiscoverySessionCallback(),
454 GetErrorCallback()); 456 GetErrorCallback());
455 base::RunLoop().RunUntilIdle(); 457 base::RunLoop().RunUntilIdle();
456 EXPECT_EQ(1, callback_count_--); 458 EXPECT_EQ(1, callback_count_--);
457 EXPECT_EQ(0, error_callback_count_); 459 EXPECT_EQ(0, error_callback_count_);
458 EXPECT_TRUE(adapter_->IsDiscovering()); 460 EXPECT_TRUE(adapter_->IsDiscovering());
459 ASSERT_EQ((size_t)1, discovery_sessions_.size()); 461 ASSERT_EQ((size_t)1, discovery_sessions_.size());
460 EXPECT_TRUE(discovery_sessions_[0]->IsActive()); 462 EXPECT_TRUE(discovery_sessions_[0]->IsActive());
461 463
462 discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback()); 464 discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
463 base::RunLoop().RunUntilIdle(); 465 base::RunLoop().RunUntilIdle();
464 EXPECT_EQ(1, callback_count_--); 466 EXPECT_EQ(1, callback_count_--);
465 EXPECT_EQ(0, error_callback_count_); 467 EXPECT_EQ(0, error_callback_count_);
466 EXPECT_FALSE(adapter_->IsDiscovering()); 468 EXPECT_FALSE(adapter_->IsDiscovering());
467 EXPECT_FALSE(discovery_sessions_[0]->IsActive()); 469 EXPECT_FALSE(discovery_sessions_[0]->IsActive());
468 } 470 }
469 #endif // defined(OS_ANDROID) 471 #endif // defined(OS_ANDROID)
470 472
473 #if defined(OS_ANDROID)
474 // Discovers a device.
475 TEST_F(BluetoothTest, DiscoverDevice) {
476 InitWithFakeAdapter();
477 TestBluetoothAdapterObserver observer(adapter_);
478
479 // Start discovery and find a device.
480 adapter_->StartDiscoverySession(GetDiscoverySessionCallback(),
481 GetErrorCallback());
482 base::RunLoop().RunUntilIdle();
483 DiscoverLowEnergyDevice(1);
484 base::RunLoop().RunUntilIdle();
485 EXPECT_EQ(1, observer.device_added_count());
486 BluetoothDevice* device = adapter_->GetDevice(observer.last_device_address());
487 EXPECT_TRUE(device);
488 }
489 #endif // defined(OS_ANDROID)
490
491 #if defined(OS_ANDROID)
492 // Discovers the same device multiple times.
493 TEST_F(BluetoothTest, DiscoverDeviceTwice) {
494 InitWithFakeAdapter();
495 TestBluetoothAdapterObserver observer(adapter_);
496
497 // Start discovery and find a device.
498 adapter_->StartDiscoverySession(GetDiscoverySessionCallback(),
499 GetErrorCallback());
500 base::RunLoop().RunUntilIdle();
501 DiscoverLowEnergyDevice(1);
502 base::RunLoop().RunUntilIdle();
503 EXPECT_EQ(1, observer.device_added_count());
504 BluetoothDevice* device = adapter_->GetDevice(observer.last_device_address());
505 EXPECT_TRUE(device);
506
507 // Find the same device again. This should not create a new device object.
508 observer.Reset();
509 DiscoverLowEnergyDevice(1);
510 base::RunLoop().RunUntilIdle();
511 EXPECT_EQ(0, observer.device_added_count());
512 EXPECT_EQ(0, observer.device_changed_count());
513 EXPECT_EQ(1u, adapter_->GetDevices().size());
514 }
515 #endif // defined(OS_ANDROID)
516
517 #if defined(OS_ANDROID)
518 // Discovers a device, and then again with new Service UUIDs.
519 TEST_F(BluetoothTest, DiscoverDeviceWithUpdatedUUIDs) {
520 InitWithFakeAdapter();
521 TestBluetoothAdapterObserver observer(adapter_);
522
523 // Start discovery and find a device.
524 adapter_->StartDiscoverySession(GetDiscoverySessionCallback(),
525 GetErrorCallback());
526 base::RunLoop().RunUntilIdle();
527 DiscoverLowEnergyDevice(1);
528 base::RunLoop().RunUntilIdle();
529 BluetoothDevice* device = observer.last_device();
530
531 // Check the initial UUIDs:
532 EXPECT_TRUE(ContainsValue(device->GetUUIDs(), BluetoothUUID("1800")));
533 EXPECT_FALSE(ContainsValue(device->GetUUIDs(), BluetoothUUID("1802")));
534
535 // Discover same device again with updated UUIDs:
536 observer.Reset();
537 DiscoverLowEnergyDevice(2);
538 base::RunLoop().RunUntilIdle();
539 EXPECT_EQ(0, observer.device_added_count());
540 EXPECT_EQ(1, observer.device_changed_count());
541 EXPECT_EQ(1u, adapter_->GetDevices().size());
542 EXPECT_EQ(device, observer.last_device());
543
544 // Expect new UUIDs:
545 EXPECT_FALSE(ContainsValue(device->GetUUIDs(), BluetoothUUID("1800")));
546 EXPECT_TRUE(ContainsValue(device->GetUUIDs(), BluetoothUUID("1802")));
547 }
548 #endif // defined(OS_ANDROID)
549
471 } // namespace device 550 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698