| Index: device/bluetooth/bluetooth_chromeos_unittest.cc
|
| diff --git a/device/bluetooth/bluetooth_chromeos_unittest.cc b/device/bluetooth/bluetooth_chromeos_unittest.cc
|
| index 6ce931b4974ddf19fd3bf7cc4c023a946bafe1ee..7da63b789c4de98ae3c903bcf58f45763f4fbe95 100644
|
| --- a/device/bluetooth/bluetooth_chromeos_unittest.cc
|
| +++ b/device/bluetooth/bluetooth_chromeos_unittest.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/message_loop/message_loop.h"
|
| +#include "base/run_loop.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chromeos/dbus/dbus_thread_manager.h"
|
| #include "chromeos/dbus/fake_bluetooth_adapter_client.h"
|
| @@ -24,6 +25,7 @@
|
|
|
| using device::BluetoothAdapter;
|
| using device::BluetoothAdapterFactory;
|
| +using device::BluetoothAudioSink;
|
| using device::BluetoothDevice;
|
| using device::BluetoothDiscoverySession;
|
| using device::BluetoothUUID;
|
| @@ -146,6 +148,25 @@ void SaveConnectionInfo(BluetoothDevice::ConnectionInfo* out,
|
| *out = conn_info;
|
| };
|
|
|
| +class FakeBluetoothProfileServiceProviderDelegate
|
| + : public chromeos::BluetoothProfileServiceProvider::Delegate {
|
| + public:
|
| + FakeBluetoothProfileServiceProviderDelegate() {}
|
| +
|
| + // BluetoothProfileServiceProvider::Delegate:
|
| + void Released() override {}
|
| +
|
| + void NewConnection(const dbus::ObjectPath&,
|
| + scoped_ptr<dbus::FileDescriptor>,
|
| + const BluetoothProfileServiceProvider::Delegate::Options&,
|
| + const ConfirmationCallback&) override {}
|
| +
|
| + void RequestDisconnection(const dbus::ObjectPath&,
|
| + const ConfirmationCallback&) override {}
|
| +
|
| + void Cancel() override {}
|
| +};
|
| +
|
| } // namespace
|
|
|
| class TestPairingDelegate : public BluetoothDevice::PairingDelegate {
|
| @@ -272,11 +293,7 @@ class BluetoothChromeOSTest : public testing::Test {
|
| if (!session->IsActive())
|
| continue;
|
| callback_count_ = 0;
|
| - session->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + session->Stop(GetCallback(), GetErrorCallback());
|
| message_loop_.Run();
|
| ASSERT_EQ(1, callback_count_);
|
| }
|
| @@ -291,6 +308,10 @@ class BluetoothChromeOSTest : public testing::Test {
|
| QuitMessageLoop();
|
| }
|
|
|
| + base::Closure GetCallback() {
|
| + return base::Bind(&BluetoothChromeOSTest::Callback, base::Unretained(this));
|
| + }
|
| +
|
| void DiscoverySessionCallback(
|
| scoped_ptr<BluetoothDiscoverySession> discovery_session) {
|
| ++callback_count_;
|
| @@ -298,11 +319,26 @@ class BluetoothChromeOSTest : public testing::Test {
|
| QuitMessageLoop();
|
| }
|
|
|
| + void AudioSinkAcquiredCallback(scoped_refptr<BluetoothAudioSink>) {
|
| + ++callback_count_;
|
| + QuitMessageLoop();
|
| + }
|
| +
|
| + void ProfileRegisteredCallback(BluetoothAdapterProfileChromeOS*) {
|
| + ++callback_count_;
|
| + QuitMessageLoop();
|
| + }
|
| +
|
| void ErrorCallback() {
|
| ++error_callback_count_;
|
| QuitMessageLoop();
|
| }
|
|
|
| + base::Closure GetErrorCallback() {
|
| + return base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| + base::Unretained(this));
|
| + }
|
| +
|
| void DBusErrorCallback(const std::string& error_name,
|
| const std::string& error_message) {
|
| ++error_callback_count_;
|
| @@ -315,6 +351,16 @@ class BluetoothChromeOSTest : public testing::Test {
|
| last_connect_error_ = error;
|
| }
|
|
|
| + void AudioSinkErrorCallback(BluetoothAudioSink::ErrorCode) {
|
| + ++error_callback_count_;
|
| + QuitMessageLoop();
|
| + }
|
| +
|
| + void ErrorCompletionCallback(const std::string& error_message) {
|
| + ++error_callback_count_;
|
| + QuitMessageLoop();
|
| + }
|
| +
|
| // Call to fill the adapter_ member with a BluetoothAdapter instance.
|
| void GetAdapter() {
|
| adapter_ = new BluetoothAdapterChromeOS();
|
| @@ -334,17 +380,11 @@ class BluetoothChromeOSTest : public testing::Test {
|
|
|
| TestObserver observer(adapter_);
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| base::MessageLoop::current()->Run();
|
| ASSERT_EQ(2, callback_count_);
|
| ASSERT_EQ(0, error_callback_count_);
|
| @@ -359,11 +399,7 @@ class BluetoothChromeOSTest : public testing::Test {
|
| observer.last_device_address_ != address)
|
| base::MessageLoop::current()->Run();
|
|
|
| - discovery_sessions_[0]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
|
| base::MessageLoop::current()->Run();
|
| ASSERT_EQ(1, callback_count_);
|
| ASSERT_EQ(0, error_callback_count_);
|
| @@ -530,12 +566,7 @@ TEST_F(BluetoothChromeOSTest, BecomePowered) {
|
| // with true, and IsPowered() to return true.
|
| TestObserver observer(adapter_);
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| @@ -547,12 +578,7 @@ TEST_F(BluetoothChromeOSTest, BecomePowered) {
|
|
|
| TEST_F(BluetoothChromeOSTest, BecomeNotPowered) {
|
| GetAdapter();
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| callback_count_ = 0;
|
| @@ -563,12 +589,7 @@ TEST_F(BluetoothChromeOSTest, BecomeNotPowered) {
|
| // with false, and IsPowered() to return false.
|
| TestObserver observer(adapter_);
|
|
|
| - adapter_->SetPowered(
|
| - false,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(false, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| @@ -594,12 +615,7 @@ TEST_F(BluetoothChromeOSTest, SetPoweredWhenNotPresent) {
|
| EXPECT_FALSE(adapter_->IsPresent());
|
| EXPECT_FALSE(adapter_->IsPowered());
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(0, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
|
|
| @@ -614,12 +630,7 @@ TEST_F(BluetoothChromeOSTest, ChangeAdapterName) {
|
|
|
| static const std::string new_name(".__.");
|
|
|
| - adapter_->SetName(
|
| - new_name,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetName(new_name, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| @@ -642,12 +653,7 @@ TEST_F(BluetoothChromeOSTest, ChangeAdapterNameWhenNotPresent) {
|
| EXPECT_FALSE(adapter_->IsPresent());
|
| EXPECT_FALSE(adapter_->IsPowered());
|
|
|
| - adapter_->SetName(
|
| - "^o^",
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetName("^o^", GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(0, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
|
|
| @@ -662,12 +668,7 @@ TEST_F(BluetoothChromeOSTest, BecomeDiscoverable) {
|
| // with true, and IsDiscoverable() to return true.
|
| TestObserver observer(adapter_);
|
|
|
| - adapter_->SetDiscoverable(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetDiscoverable(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| @@ -678,12 +679,7 @@ TEST_F(BluetoothChromeOSTest, BecomeDiscoverable) {
|
|
|
| TEST_F(BluetoothChromeOSTest, BecomeNotDiscoverable) {
|
| GetAdapter();
|
| - adapter_->SetDiscoverable(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetDiscoverable(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| callback_count_ = 0;
|
| @@ -694,12 +690,7 @@ TEST_F(BluetoothChromeOSTest, BecomeNotDiscoverable) {
|
| // with false, and IsDiscoverable() to return false.
|
| TestObserver observer(adapter_);
|
|
|
| - adapter_->SetDiscoverable(
|
| - false,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetDiscoverable(false, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| @@ -725,12 +716,7 @@ TEST_F(BluetoothChromeOSTest, SetDiscoverableWhenNotPresent) {
|
| EXPECT_FALSE(adapter_->IsPresent());
|
| EXPECT_FALSE(adapter_->IsDiscoverable());
|
|
|
| - adapter_->SetDiscoverable(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetDiscoverable(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(0, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
|
|
| @@ -742,17 +728,11 @@ TEST_F(BluetoothChromeOSTest, SetDiscoverableWhenNotPresent) {
|
| TEST_F(BluetoothChromeOSTest, StopDiscovery) {
|
| GetAdapter();
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(2, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -768,11 +748,7 @@ TEST_F(BluetoothChromeOSTest, StopDiscovery) {
|
| // discovering,
|
| TestObserver observer(adapter_);
|
|
|
| - discovery_sessions_[0]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -790,17 +766,11 @@ TEST_F(BluetoothChromeOSTest, Discovery) {
|
|
|
| TestObserver observer(adapter_);
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(2, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -833,17 +803,11 @@ TEST_F(BluetoothChromeOSTest, Discovery) {
|
|
|
| TEST_F(BluetoothChromeOSTest, PoweredAndDiscovering) {
|
| GetAdapter();
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(2, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -907,12 +871,7 @@ TEST_F(BluetoothChromeOSTest, PoweredAndDiscovering) {
|
| // correctly for discovery requests done via the BluetoothAdapter.
|
| TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
| GetAdapter();
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| EXPECT_TRUE(adapter_->IsPowered());
|
| @@ -927,10 +886,9 @@ TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
| // Request device discovery 3 times.
|
| for (int i = 0; i < 3; i++) {
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| }
|
| // Run only once, as there should have been one D-Bus call.
|
| message_loop_.Run();
|
| @@ -947,11 +905,7 @@ TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
|
|
| // Request to stop discovery twice.
|
| for (int i = 0; i < 2; i++) {
|
| - discovery_sessions_[i]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[i]->Stop(GetCallback(), GetErrorCallback());
|
| }
|
|
|
| // The observer should have received no additional discovering changed events,
|
| @@ -970,10 +924,9 @@ TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
| // Request device discovery 3 times.
|
| for (int i = 0; i < 3; i++) {
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| }
|
|
|
| // The observer should have received no additional discovering changed events,
|
| @@ -988,11 +941,7 @@ TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
|
|
| // Request to stop discovery 4 times.
|
| for (int i = 2; i < 6; i++) {
|
| - discovery_sessions_[i]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[i]->Stop(GetCallback(), GetErrorCallback());
|
| }
|
| // Run only once, as there should have been one D-Bus call.
|
| message_loop_.Run();
|
| @@ -1011,11 +960,7 @@ TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
| EXPECT_FALSE(discovery_sessions_[i]->IsActive());
|
|
|
| // Request to stop discovery on of the inactive sessions.
|
| - discovery_sessions_[0]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
|
|
|
| // The call should have failed.
|
| EXPECT_EQ(2, observer.discovering_changed_count_);
|
| @@ -1031,12 +976,7 @@ TEST_F(BluetoothChromeOSTest, MultipleDiscoverySessions) {
|
| TEST_F(BluetoothChromeOSTest,
|
| UnexpectedChangesDuringMultipleDiscoverySessions) {
|
| GetAdapter();
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| EXPECT_TRUE(adapter_->IsPowered());
|
| @@ -1051,10 +991,9 @@ TEST_F(BluetoothChromeOSTest,
|
| // Request device discovery 3 times.
|
| for (int i = 0; i < 3; i++) {
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| }
|
| // Run only once, as there should have been one D-Bus call.
|
| message_loop_.Run();
|
| @@ -1086,9 +1025,7 @@ TEST_F(BluetoothChromeOSTest,
|
| // FakeBluetoothAdapterClient's count should be only 1 and a single call to
|
| // FakeBluetoothAdapterClient::StopDiscovery should work.
|
| fake_bluetooth_adapter_client_->StopDiscovery(
|
| - dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| + dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), GetCallback(),
|
| base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| base::Unretained(this)));
|
| message_loop_.Run();
|
| @@ -1106,10 +1043,9 @@ TEST_F(BluetoothChromeOSTest,
|
| // It should be possible to successfully start discovery.
|
| for (int i = 0; i < 2; i++) {
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| }
|
| // Run only once, as there should have been one D-Bus call.
|
| message_loop_.Run();
|
| @@ -1154,10 +1090,9 @@ TEST_F(BluetoothChromeOSTest,
|
| // application other than us. Starting and stopping discovery will succeed
|
| // but it won't cause the discovery state to change.
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| message_loop_.Run(); // Run the loop, as there should have been a D-Bus call.
|
| EXPECT_EQ(5, observer.discovering_changed_count_);
|
| EXPECT_EQ(7, callback_count_);
|
| @@ -1167,11 +1102,7 @@ TEST_F(BluetoothChromeOSTest,
|
| ASSERT_EQ((size_t)1, discovery_sessions_.size());
|
| EXPECT_TRUE(discovery_sessions_[0]->IsActive());
|
|
|
| - discovery_sessions_[0]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
|
| message_loop_.Run(); // Run the loop, as there should have been a D-Bus call.
|
| EXPECT_EQ(5, observer.discovering_changed_count_);
|
| EXPECT_EQ(8, callback_count_);
|
| @@ -1183,10 +1114,9 @@ TEST_F(BluetoothChromeOSTest,
|
|
|
| // Start discovery again.
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| message_loop_.Run(); // Run the loop, as there should have been a D-Bus call.
|
| EXPECT_EQ(5, observer.discovering_changed_count_);
|
| EXPECT_EQ(9, callback_count_);
|
| @@ -1200,9 +1130,7 @@ TEST_F(BluetoothChromeOSTest,
|
| // the discovery state won't change since our BluetoothAdapter also just
|
| // requested it via D-Bus.
|
| fake_bluetooth_adapter_client_->StopDiscovery(
|
| - dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| + dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), GetCallback(),
|
| base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| base::Unretained(this)));
|
| message_loop_.Run();
|
| @@ -1214,11 +1142,7 @@ TEST_F(BluetoothChromeOSTest,
|
|
|
| // Now end the discovery session. This should change the adapter's discovery
|
| // state.
|
| - discovery_sessions_[0]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(6, observer.discovering_changed_count_);
|
| EXPECT_EQ(11, callback_count_);
|
| @@ -1230,12 +1154,7 @@ TEST_F(BluetoothChromeOSTest,
|
|
|
| TEST_F(BluetoothChromeOSTest, InvalidatedDiscoverySessions) {
|
| GetAdapter();
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| EXPECT_TRUE(adapter_->IsPowered());
|
| @@ -1250,10 +1169,9 @@ TEST_F(BluetoothChromeOSTest, InvalidatedDiscoverySessions) {
|
| // Request device discovery 3 times.
|
| for (int i = 0; i < 3; i++) {
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| }
|
| // Run only once, as there should have been one D-Bus call.
|
| message_loop_.Run();
|
| @@ -1290,9 +1208,7 @@ TEST_F(BluetoothChromeOSTest, InvalidatedDiscoverySessions) {
|
| // memory errors as the sessions that we explicitly deleted should get
|
| // cleaned up.
|
| fake_bluetooth_adapter_client_->StopDiscovery(
|
| - dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| + dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), GetCallback(),
|
| base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| base::Unretained(this)));
|
| message_loop_.Run();
|
| @@ -1307,12 +1223,7 @@ TEST_F(BluetoothChromeOSTest, InvalidatedDiscoverySessions) {
|
| TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
| GetAdapter();
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| EXPECT_TRUE(adapter_->IsPowered());
|
| @@ -1326,10 +1237,9 @@ TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
|
|
| // Request to start discovery. The call should be pending.
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| EXPECT_EQ(0, callback_count_);
|
|
|
| fake_bluetooth_device_client_->EndDiscoverySimulation(
|
| @@ -1346,10 +1256,9 @@ TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
| // be no change in state.
|
| for (int i = 0; i < 2; i++) {
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| }
|
| EXPECT_EQ(0, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -1371,11 +1280,7 @@ TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
| // Verify the reference count by removing sessions 3 times. The last request
|
| // should remain pending.
|
| for (int i = 0; i < 3; i++) {
|
| - discovery_sessions_[i]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[i]->Stop(GetCallback(), GetErrorCallback());
|
| }
|
| EXPECT_EQ(5, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -1387,11 +1292,7 @@ TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
| EXPECT_TRUE(discovery_sessions_[2]->IsActive());
|
|
|
| // Request to stop the session whose call is pending should fail.
|
| - discovery_sessions_[2]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[2]->Stop(GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(5, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
| EXPECT_EQ(2, observer.discovering_changed_count_);
|
| @@ -1401,10 +1302,9 @@ TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
|
|
| // Request to start should get queued.
|
| adapter_->StartDiscoverySession(
|
| - base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| + base::Unretained(this)),
|
| + GetErrorCallback());
|
| EXPECT_EQ(5, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
| EXPECT_EQ(2, observer.discovering_changed_count_);
|
| @@ -1437,12 +1337,7 @@ TEST_F(BluetoothChromeOSTest, QueuedDiscoveryRequests) {
|
| TEST_F(BluetoothChromeOSTest, StartDiscoverySession) {
|
| GetAdapter();
|
|
|
| - adapter_->SetPowered(
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| EXPECT_TRUE(adapter_->IsPowered());
|
| @@ -1459,8 +1354,7 @@ TEST_F(BluetoothChromeOSTest, StartDiscoverySession) {
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(1, observer.discovering_changed_count_);
|
| EXPECT_EQ(1, callback_count_);
|
| @@ -1476,8 +1370,7 @@ TEST_F(BluetoothChromeOSTest, StartDiscoverySession) {
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(1, observer.discovering_changed_count_);
|
| EXPECT_EQ(2, callback_count_);
|
| @@ -1491,8 +1384,7 @@ TEST_F(BluetoothChromeOSTest, StartDiscoverySession) {
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(1, observer.discovering_changed_count_);
|
| EXPECT_EQ(3, callback_count_);
|
| @@ -1505,11 +1397,7 @@ TEST_F(BluetoothChromeOSTest, StartDiscoverySession) {
|
|
|
| // Stop the previous discovery session. The session should end but discovery
|
| // should continue.
|
| - discovery_sessions_[0]->Stop(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + discovery_sessions_[0]->Stop(GetCallback(), GetErrorCallback());
|
| message_loop_.Run();
|
| EXPECT_EQ(1, observer.discovering_changed_count_);
|
| EXPECT_EQ(4, callback_count_);
|
| @@ -1675,9 +1563,7 @@ TEST_F(BluetoothChromeOSTest, ForgetDevice) {
|
| // with the device we remove.
|
| TestObserver observer(adapter_);
|
|
|
| - devices[0]->Forget(
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + devices[0]->Forget(GetErrorCallback());
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| EXPECT_EQ(1, observer.device_removed_count_);
|
| @@ -1698,12 +1584,9 @@ TEST_F(BluetoothChromeOSTest, ForgetUnpairedDevice) {
|
| ASSERT_FALSE(device->IsPaired());
|
|
|
| // Connect the device so it becomes trusted and remembered.
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| ASSERT_EQ(1, callback_count_);
|
| ASSERT_EQ(0, error_callback_count_);
|
| @@ -1722,9 +1605,7 @@ TEST_F(BluetoothChromeOSTest, ForgetUnpairedDevice) {
|
| // with the device we remove.
|
| TestObserver observer(adapter_);
|
|
|
| - device->Forget(
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Forget(GetErrorCallback());
|
| EXPECT_EQ(0, error_callback_count_);
|
|
|
| EXPECT_EQ(1, observer.device_removed_count_);
|
| @@ -1749,12 +1630,9 @@ TEST_F(BluetoothChromeOSTest, ConnectPairedDevice) {
|
|
|
| // Connect without a pairing delegate; since the device is already Paired
|
| // this should succeed and the device should become connected.
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -1781,12 +1659,9 @@ TEST_F(BluetoothChromeOSTest, ConnectUnpairableDevice) {
|
|
|
| // Connect without a pairing delegate; since the device does not require
|
| // pairing, this should succeed and the device should become connected.
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -1820,12 +1695,9 @@ TEST_F(BluetoothChromeOSTest, ConnectConnectedDevice) {
|
| ASSERT_TRUE(device != NULL);
|
| ASSERT_TRUE(device->IsPaired());
|
|
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| ASSERT_EQ(1, callback_count_);
|
| ASSERT_EQ(0, error_callback_count_);
|
| @@ -1837,12 +1709,9 @@ TEST_F(BluetoothChromeOSTest, ConnectConnectedDevice) {
|
| // anything to initiate the connection.
|
| TestObserver observer(adapter_);
|
|
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -1868,12 +1737,9 @@ TEST_F(BluetoothChromeOSTest, ConnectDeviceFails) {
|
|
|
| // Connect without a pairing delegate; since the device requires pairing,
|
| // this should fail with an error.
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
| @@ -1893,12 +1759,9 @@ TEST_F(BluetoothChromeOSTest, DisconnectDevice) {
|
| ASSERT_TRUE(device != NULL);
|
| ASSERT_TRUE(device->IsPaired());
|
|
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| ASSERT_EQ(1, callback_count_);
|
| ASSERT_EQ(0, error_callback_count_);
|
| @@ -1911,11 +1774,7 @@ TEST_F(BluetoothChromeOSTest, DisconnectDevice) {
|
| // device get dropped.
|
| TestObserver observer(adapter_);
|
|
|
| - device->Disconnect(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Disconnect(GetCallback(), GetErrorCallback());
|
|
|
| EXPECT_EQ(1, callback_count_);
|
| EXPECT_EQ(0, error_callback_count_);
|
| @@ -1939,11 +1798,7 @@ TEST_F(BluetoothChromeOSTest, DisconnectUnconnectedDevice) {
|
| // device get dropped.
|
| TestObserver observer(adapter_);
|
|
|
| - device->Disconnect(
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Disconnect(GetCallback(), GetErrorCallback());
|
|
|
| EXPECT_EQ(0, callback_count_);
|
| EXPECT_EQ(1, error_callback_count_);
|
| @@ -1969,12 +1824,9 @@ TEST_F(BluetoothChromeOSTest, PairLegacyAutopair) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, pairing_delegate.call_count_);
|
| EXPECT_TRUE(device->IsConnecting());
|
| @@ -2023,12 +1875,9 @@ TEST_F(BluetoothChromeOSTest, PairDisplayPinCode) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.display_pincode_count_);
|
| @@ -2080,12 +1929,9 @@ TEST_F(BluetoothChromeOSTest, PairDisplayPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| // One call for DisplayPasskey() and one for KeysEntered().
|
| EXPECT_EQ(2, pairing_delegate.call_count_);
|
| @@ -2157,12 +2003,9 @@ TEST_F(BluetoothChromeOSTest, PairRequestPinCode) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_pincode_count_);
|
| @@ -2214,12 +2057,9 @@ TEST_F(BluetoothChromeOSTest, PairConfirmPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.confirm_passkey_count_);
|
| @@ -2269,12 +2109,9 @@ TEST_F(BluetoothChromeOSTest, PairRequestPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
|
| @@ -2323,12 +2160,9 @@ TEST_F(BluetoothChromeOSTest, PairJustWorks) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, pairing_delegate.call_count_);
|
|
|
| @@ -2371,12 +2205,9 @@ TEST_F(BluetoothChromeOSTest, PairUnpairableDeviceFails) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, pairing_delegate.call_count_);
|
| EXPECT_TRUE(device->IsConnecting());
|
| @@ -2409,12 +2240,9 @@ TEST_F(BluetoothChromeOSTest, PairingFails) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, pairing_delegate.call_count_);
|
| EXPECT_TRUE(device->IsConnecting());
|
| @@ -2448,12 +2276,9 @@ TEST_F(BluetoothChromeOSTest, PairingFailsAtConnection) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, pairing_delegate.call_count_);
|
| EXPECT_TRUE(device->IsConnecting());
|
| @@ -2498,12 +2323,9 @@ TEST_F(BluetoothChromeOSTest, PairingRejectedAtPinCode) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_pincode_count_);
|
| @@ -2539,12 +2361,9 @@ TEST_F(BluetoothChromeOSTest, PairingCancelledAtPinCode) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_pincode_count_);
|
| @@ -2580,12 +2399,9 @@ TEST_F(BluetoothChromeOSTest, PairingRejectedAtPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
|
| @@ -2621,12 +2437,9 @@ TEST_F(BluetoothChromeOSTest, PairingCancelledAtPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
|
| @@ -2662,12 +2475,9 @@ TEST_F(BluetoothChromeOSTest, PairingRejectedAtConfirmation) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.confirm_passkey_count_);
|
| @@ -2703,12 +2513,9 @@ TEST_F(BluetoothChromeOSTest, PairingCancelledAtConfirmation) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.confirm_passkey_count_);
|
| @@ -2744,12 +2551,9 @@ TEST_F(BluetoothChromeOSTest, PairingCancelledInFlight) {
|
| TestObserver observer(adapter_);
|
|
|
| TestPairingDelegate pairing_delegate;
|
| - device->Connect(
|
| - &pairing_delegate,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(&pairing_delegate, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(0, pairing_delegate.call_count_);
|
| EXPECT_TRUE(device->IsConnecting());
|
| @@ -2791,12 +2595,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairRequestPinCode) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_pincode_count_);
|
| @@ -2848,12 +2649,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairConfirmPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.confirm_passkey_count_);
|
| @@ -2906,12 +2704,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairRequestPasskey) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
|
| @@ -2964,12 +2759,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairJustWorks) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.authorize_pairing_count_);
|
| @@ -3017,12 +2809,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairRequestPinCodeWithoutDelegate) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| message_loop_.Run();
|
|
|
| @@ -3059,12 +2848,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairConfirmPasskeyWithoutDelegate) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| message_loop_.Run();
|
|
|
| @@ -3101,12 +2887,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairRequestPasskeyWithoutDelegate) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| message_loop_.Run();
|
|
|
| @@ -3143,12 +2926,9 @@ TEST_F(BluetoothChromeOSTest, IncomingPairJustWorksWithoutDelegate) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| message_loop_.Run();
|
|
|
| @@ -3189,12 +2969,9 @@ TEST_F(BluetoothChromeOSTest, RemovePairingDelegateDuringPairing) {
|
| TestObserver observer(adapter_);
|
|
|
| fake_bluetooth_device_client_->SimulatePairing(
|
| - dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath),
|
| - true,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| - base::Unretained(this)));
|
| + dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath), true,
|
| + GetCallback(), base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
|
| + base::Unretained(this)));
|
|
|
| EXPECT_EQ(1, pairing_delegate.call_count_);
|
| EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
|
| @@ -3296,12 +3073,9 @@ TEST_F(BluetoothChromeOSTest, GetConnectionInfoForConnectedDevice) {
|
| BluetoothDevice* device =
|
| adapter_->GetDevice(FakeBluetoothDeviceClient::kPairedDeviceAddress);
|
|
|
| - device->Connect(
|
| - NULL,
|
| - base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| - base::Unretained(this)));
|
| + device->Connect(NULL, GetCallback(),
|
| + base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
|
| + base::Unretained(this)));
|
| EXPECT_TRUE(device->IsConnected());
|
|
|
| // Calling GetConnectionInfo for a connected device should return valid
|
| @@ -3316,26 +3090,23 @@ TEST_F(BluetoothChromeOSTest, GetConnectionInfoForConnectedDevice) {
|
|
|
| // Verifies Shutdown shuts down the adapter as expected.
|
| TEST_F(BluetoothChromeOSTest, Shutdown) {
|
| - // Set up and adapter, power, discoverable, start discovery.
|
| - GetAdapter();
|
| - adapter_->SetPowered(true, base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| - adapter_->SetDiscoverable(true, base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + // Set up adapter. Set powered & discoverable, start discovery.
|
| + GetAdapter();
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| + adapter_->SetDiscoverable(true, GetCallback(), GetErrorCallback());
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| + GetErrorCallback());
|
| base::MessageLoop::current()->Run();
|
| ASSERT_EQ(3, callback_count_);
|
| ASSERT_EQ(0, error_callback_count_);
|
| callback_count_ = 0;
|
|
|
| + TestPairingDelegate pairing_delegate;
|
| + adapter_->AddPairingDelegate(
|
| + &pairing_delegate, BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
|
| +
|
| // Validate running adapter state.
|
| EXPECT_NE("", adapter_->GetAddress());
|
| EXPECT_NE("", adapter_->GetName());
|
| @@ -3351,37 +3122,285 @@ TEST_F(BluetoothChromeOSTest, Shutdown) {
|
| adapter_.get())->object_path());
|
|
|
| // Shutdown
|
| - static_cast<BluetoothAdapterChromeOS*>(adapter_.get())->Shutdown();
|
| + adapter_->Shutdown();
|
|
|
| - // Validate post shutdown state.
|
| + // Validate post shutdown state by calling all BluetoothAdapterChromeOS
|
| + // members, in declaration order:
|
| +
|
| + adapter_->Shutdown();
|
| + // DeleteOnCorrectThread omitted as we don't want to delete in this test.
|
| + {
|
| + TestObserver observer(adapter_); // Calls AddObserver
|
| + } // TestObserver::~TestObserver calls RemoveObserver.
|
| EXPECT_EQ("", adapter_->GetAddress());
|
| EXPECT_EQ("", adapter_->GetName());
|
| +
|
| + adapter_->SetName("", GetCallback(), GetErrorCallback());
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1, error_callback_count_--) << "SetName error";
|
| +
|
| EXPECT_TRUE(adapter_->IsInitialized());
|
| EXPECT_FALSE(adapter_->IsPresent());
|
| EXPECT_FALSE(adapter_->IsPowered());
|
| +
|
| + adapter_->SetPowered(true, GetCallback(), GetErrorCallback());
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1, error_callback_count_--) << "SetPowered error";
|
| +
|
| EXPECT_FALSE(adapter_->IsDiscoverable());
|
| +
|
| + adapter_->SetDiscoverable(true, GetCallback(), GetErrorCallback());
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1, error_callback_count_--) << "SetDiscoverable error";
|
| +
|
| EXPECT_FALSE(adapter_->IsDiscovering());
|
| - EXPECT_EQ(0U, adapter_->GetDevices().size());
|
| - EXPECT_EQ(nullptr, adapter_->GetDevice(
|
| - FakeBluetoothDeviceClient::kPairedDeviceAddress));
|
| - EXPECT_EQ(dbus::ObjectPath(""), static_cast<BluetoothAdapterChromeOS*>(
|
| - adapter_.get())->object_path());
|
| + // CreateRfcommService will DCHECK after Shutdown().
|
| + // CreateL2capService will DCHECK after Shutdown().
|
| +
|
| + BluetoothAudioSink::Options audio_sink_options;
|
| + adapter_->RegisterAudioSink(
|
| + audio_sink_options,
|
| + base::Bind(&BluetoothChromeOSTest::AudioSinkAcquiredCallback,
|
| + base::Unretained(this)),
|
| + base::Bind(&BluetoothChromeOSTest::AudioSinkErrorCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1, error_callback_count_--) << "RegisterAudioSink error";
|
| +
|
| + BluetoothAdapterChromeOS* adapter_chrome_os =
|
| + static_cast<BluetoothAdapterChromeOS*>(adapter_.get());
|
| + EXPECT_EQ(NULL, adapter_chrome_os->GetDeviceWithPath(dbus::ObjectPath("")));
|
| +
|
| + // Notify methods presume objects exist that are owned by the adapter and
|
| + // destroyed in Shutdown(). Mocks are not attempted here that won't exist,
|
| + // as verified below by EXPECT_EQ(0U, adapter_->GetDevices().size());
|
| + // NotifyDeviceChanged
|
| + // NotifyGattServiceAdded
|
| + // NotifyGattServiceRemoved
|
| + // NotifyGattServiceChanged
|
| + // NotifyGattDiscoveryComplete
|
| + // NotifyGattCharacteristicAdded
|
| + // NotifyGattCharacteristicRemoved
|
| + // NotifyGattDescriptorAdded
|
| + // NotifyGattDescriptorRemoved
|
| + // NotifyGattCharacteristicValueChanged
|
| + // NotifyGattDescriptorValueChanged
|
| +
|
| + EXPECT_EQ(dbus::ObjectPath(""), adapter_chrome_os->object_path());
|
| +
|
| + FakeBluetoothProfileServiceProviderDelegate profile_delegate;
|
| + adapter_chrome_os->UseProfile(
|
| + BluetoothUUID(), dbus::ObjectPath(""),
|
| + BluetoothProfileManagerClient::Options(), &profile_delegate,
|
| + base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback,
|
| + base::Unretained(this)),
|
| + base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback,
|
| + base::Unretained(this)));
|
| + base::MessageLoop::current()->Run();
|
| + EXPECT_EQ(1, callback_count_--) << "UseProfile error";
|
| + EXPECT_EQ(0, error_callback_count_) << "UseProfile error";
|
| +
|
| + adapter_chrome_os->ReleaseProfile(BluetoothUUID());
|
| +
|
| + // Protected and private methods:
|
| +
|
| + adapter_chrome_os->RemovePairingDelegateInternal(&pairing_delegate);
|
| +
|
| + // BluetoothAdapterClient::Observer methods omitted, dbus will be shutdown.
|
| + // BluetoothDeviceClient::Observer methods omitted, dbus will be shutdown.
|
| + // BluetoothInputClient::Observer methods omitted, dbus will be shutdown.
|
| + // BluetoothAgentServiceProvider::Delegate omitted, dbus will be shutdown,
|
| + // with the exception of Released.
|
| + adapter_chrome_os->Released();
|
| +
|
| + adapter_chrome_os->OnRegisterAgent();
|
| + adapter_chrome_os->OnRegisterAgentError("", "");
|
| + adapter_chrome_os->OnRequestDefaultAgent();
|
| + adapter_chrome_os->OnRequestDefaultAgentError("", "");
|
| +
|
| + adapter_chrome_os->OnRegisterAudioSink(
|
| + base::Bind(&BluetoothChromeOSTest::AudioSinkAcquiredCallback,
|
| + base::Unretained(this)),
|
| + base::Bind(&BluetoothChromeOSTest::AudioSinkErrorCallback,
|
| + base::Unretained(this)),
|
| + scoped_refptr<device::BluetoothAudioSink>());
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1, error_callback_count_--) << "RegisterAudioSink error";
|
| +
|
| + // GetPairing will DCHECK after Shutdown().
|
| + // SetAdapter will DCHECK after Shutdown().
|
| + // SetDefaultAdapterName will DCHECK after Shutdown().
|
| + // RemoveAdapter will DCHECK after Shutdown().
|
| + adapter_chrome_os->PoweredChanged(false);
|
| + adapter_chrome_os->DiscoverableChanged(false);
|
| + adapter_chrome_os->DiscoveringChanged(false);
|
| + adapter_chrome_os->PresentChanged(false);
|
| +
|
| + adapter_chrome_os->OnSetDiscoverable(GetCallback(), GetErrorCallback(), true);
|
| + EXPECT_EQ(0, callback_count_) << "OnSetDiscoverable error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "OnSetDiscoverable error";
|
| +
|
| + adapter_chrome_os->OnPropertyChangeCompleted(GetCallback(),
|
| + GetErrorCallback(), true);
|
| + EXPECT_EQ(0, callback_count_) << "OnPropertyChangeCompleted error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "OnPropertyChangeCompleted error";
|
| +
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + EXPECT_EQ(0, callback_count_) << "AddDiscoverySession error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "AddDiscoverySession error";
|
| +
|
| + adapter_chrome_os->RemoveDiscoverySession(GetCallback(), GetErrorCallback());
|
| + EXPECT_EQ(0, callback_count_) << "RemoveDiscoverySession error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "RemoveDiscoverySession error";
|
| +
|
| + // OnStartDiscovery tested in Shutdown_OnStartDiscovery
|
| + // OnStartDiscoveryError tested in Shutdown_OnStartDiscoveryError
|
| + // OnStopDiscovery tested in Shutdown_OnStopDiscovery
|
| + // OnStopDiscoveryError tested in Shutdown_OnStopDiscoveryError
|
| +
|
| + // OnRegisterProfile SetProfileDelegate, OnRegisterProfileError, require
|
| + // UseProfile to be set first, do so again here just before calling them.
|
| + adapter_chrome_os->UseProfile(
|
| + BluetoothUUID(), dbus::ObjectPath(""),
|
| + BluetoothProfileManagerClient::Options(), &profile_delegate,
|
| + base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback,
|
| + base::Unretained(this)),
|
| + base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback,
|
| + base::Unretained(this)));
|
| +
|
| + adapter_chrome_os->OnRegisterProfile(
|
| + BluetoothUUID(), dbus::ObjectPath(""), &profile_delegate,
|
| + base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback,
|
| + base::Unretained(this)),
|
| + base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_EQ(1, callback_count_--) << "OnRegisterProfile error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "OnRegisterProfile error";
|
| +
|
| + adapter_chrome_os->SetProfileDelegate(
|
| + BluetoothUUID(), dbus::ObjectPath(""), &profile_delegate,
|
| + base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback,
|
| + base::Unretained(this)),
|
| + base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_EQ(0, callback_count_) << "SetProfileDelegate error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "SetProfileDelegate error";
|
| +
|
| + adapter_chrome_os->OnRegisterProfileError(
|
| + BluetoothUUID(),
|
| + base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback,
|
| + base::Unretained(this)),
|
| + "", "");
|
| + EXPECT_EQ(0, callback_count_) << "OnRegisterProfileError error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "OnRegisterProfileError error";
|
| +
|
| + adapter_chrome_os->ProcessQueuedDiscoveryRequests();
|
| +
|
| + // From BluetoothAdapater:
|
|
|
| - adapter_->SetPowered(true, base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| - adapter_->SetDiscoverable(true, base::Bind(&BluetoothChromeOSTest::Callback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| adapter_->StartDiscoverySession(
|
| base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback,
|
| base::Unretained(this)),
|
| - base::Bind(&BluetoothChromeOSTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| - ASSERT_EQ(0, callback_count_);
|
| - ASSERT_EQ(3, error_callback_count_);
|
| + GetErrorCallback());
|
| + EXPECT_EQ(0, callback_count_) << "StartDiscoverySession error";
|
| + EXPECT_EQ(1, error_callback_count_--) << "StartDiscoverySession error";
|
| +
|
| + EXPECT_EQ(0U, adapter_->GetDevices().size());
|
| + EXPECT_EQ(nullptr, adapter_->GetDevice(
|
| + FakeBluetoothDeviceClient::kPairedDeviceAddress));
|
| + TestPairingDelegate pairing_delegate2;
|
| + adapter_->AddPairingDelegate(
|
| + &pairing_delegate2, BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
|
| + adapter_->RemovePairingDelegate(&pairing_delegate2);
|
| +}
|
| +
|
| +// Verifies post-Shutdown of discovery sessions and OnStartDiscovery.
|
| +TEST_F(BluetoothChromeOSTest, Shutdown_OnStartDiscovery) {
|
| + const int kNumberOfDiscoverySessions = 10;
|
| + GetAdapter();
|
| + BluetoothAdapterChromeOS* adapter_chrome_os =
|
| + static_cast<BluetoothAdapterChromeOS*>(adapter_.get());
|
| +
|
| + for (int i = 0; i < kNumberOfDiscoverySessions; i++) {
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + }
|
| + adapter_->Shutdown();
|
| + adapter_chrome_os->OnStartDiscovery(GetCallback(), GetErrorCallback());
|
| +
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(kNumberOfDiscoverySessions, error_callback_count_);
|
| +}
|
| +
|
| +// Verifies post-Shutdown of discovery sessions and OnStartDiscoveryError.
|
| +TEST_F(BluetoothChromeOSTest, Shutdown_OnStartDiscoveryError) {
|
| + const int kNumberOfDiscoverySessions = 10;
|
| + GetAdapter();
|
| + BluetoothAdapterChromeOS* adapter_chrome_os =
|
| + static_cast<BluetoothAdapterChromeOS*>(adapter_.get());
|
| +
|
| + for (int i = 0; i < kNumberOfDiscoverySessions; i++) {
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + }
|
| + adapter_->Shutdown();
|
| + adapter_chrome_os->OnStartDiscoveryError(GetCallback(), GetErrorCallback(),
|
| + "", "");
|
| +
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(kNumberOfDiscoverySessions, error_callback_count_);
|
| +}
|
| +
|
| +// Verifies post-Shutdown of discovery sessions and OnStartDiscovery.
|
| +TEST_F(BluetoothChromeOSTest, Shutdown_OnStopDiscovery) {
|
| + const int kNumberOfDiscoverySessions = 10;
|
| + GetAdapter();
|
| + BluetoothAdapterChromeOS* adapter_chrome_os =
|
| + static_cast<BluetoothAdapterChromeOS*>(adapter_.get());
|
| +
|
| + // In order to queue up discovery sessions before an OnStopDiscovery call
|
| + // RemoveDiscoverySession must be called, so Add, Start, and Remove:
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + adapter_chrome_os->OnStartDiscovery(GetCallback(), GetErrorCallback());
|
| + adapter_chrome_os->RemoveDiscoverySession(GetCallback(), GetErrorCallback());
|
| + callback_count_ = 0;
|
| + error_callback_count_ = 0;
|
| + // Can now queue discovery sessions while waiting for OnStopDiscovery.
|
| + for (int i = 0; i < kNumberOfDiscoverySessions; i++) {
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + }
|
| + adapter_->Shutdown();
|
| + adapter_chrome_os->OnStopDiscovery(GetCallback());
|
| +
|
| + // 1 successful stopped discovery from RemoveDiscoverySession, and
|
| + // kNumberOfDiscoverySessions errors from AddDiscoverySession/OnStopDiscovery.
|
| + EXPECT_EQ(1, callback_count_);
|
| + EXPECT_EQ(kNumberOfDiscoverySessions, error_callback_count_);
|
| +}
|
| +
|
| +// Verifies post-Shutdown of discovery sessions and OnStopDiscoveryError.
|
| +TEST_F(BluetoothChromeOSTest, Shutdown_OnStopDiscoveryError) {
|
| + const int kNumberOfDiscoverySessions = 10;
|
| + GetAdapter();
|
| + BluetoothAdapterChromeOS* adapter_chrome_os =
|
| + static_cast<BluetoothAdapterChromeOS*>(adapter_.get());
|
| +
|
| + // In order to queue up discovery sessions before an OnStopDiscoveryError call
|
| + // RemoveDiscoverySession must be called, so Add, Start, and Remove:
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + adapter_chrome_os->OnStartDiscovery(GetCallback(), GetErrorCallback());
|
| + adapter_chrome_os->RemoveDiscoverySession(GetCallback(), GetErrorCallback());
|
| + callback_count_ = 0;
|
| + error_callback_count_ = 0;
|
| + // Can now queue discovery sessions while waiting for OnStopDiscoveryError.
|
| + for (int i = 0; i < kNumberOfDiscoverySessions; i++) {
|
| + adapter_chrome_os->AddDiscoverySession(GetCallback(), GetErrorCallback());
|
| + }
|
| + adapter_->Shutdown();
|
| + adapter_chrome_os->OnStopDiscoveryError(GetErrorCallback(), "", "");
|
| +
|
| + // 1 error reported to RemoveDiscoverySession because of OnStopDiscoveryError,
|
| + // and kNumberOfDiscoverySessions errors queued with AddDiscoverySession.
|
| + EXPECT_EQ(0, callback_count_);
|
| + EXPECT_EQ(1 + kNumberOfDiscoverySessions, error_callback_count_);
|
| }
|
|
|
| } // namespace chromeos
|
|
|