| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/memory/scoped_vector.h" | 5 #include "base/memory/scoped_vector.h" |
| 6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chromeos/dbus/dbus_thread_manager.h" | 9 #include "chromeos/dbus/dbus_thread_manager.h" |
| 10 #include "chromeos/dbus/fake_bluetooth_adapter_client.h" | 10 #include "chromeos/dbus/fake_bluetooth_adapter_client.h" |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 ++callback_count_; | 317 ++callback_count_; |
| 318 discovery_sessions_.push_back(discovery_session.release()); | 318 discovery_sessions_.push_back(discovery_session.release()); |
| 319 QuitMessageLoop(); | 319 QuitMessageLoop(); |
| 320 } | 320 } |
| 321 | 321 |
| 322 void AudioSinkAcquiredCallback(scoped_refptr<BluetoothAudioSink>) { | 322 void AudioSinkAcquiredCallback(scoped_refptr<BluetoothAudioSink>) { |
| 323 ++callback_count_; | 323 ++callback_count_; |
| 324 QuitMessageLoop(); | 324 QuitMessageLoop(); |
| 325 } | 325 } |
| 326 | 326 |
| 327 void ProfileRegisteredCallback(BluetoothAdapterProfileChromeOS*) { | 327 void ProfileRegisteredCallback(BluetoothAdapterProfileChromeOS* profile) { |
| 328 adapter_profile_ = profile; |
| 328 ++callback_count_; | 329 ++callback_count_; |
| 329 QuitMessageLoop(); | 330 QuitMessageLoop(); |
| 330 } | 331 } |
| 331 | 332 |
| 332 void ErrorCallback() { | 333 void ErrorCallback() { |
| 333 ++error_callback_count_; | 334 ++error_callback_count_; |
| 334 QuitMessageLoop(); | 335 QuitMessageLoop(); |
| 335 } | 336 } |
| 336 | 337 |
| 337 base::Closure GetErrorCallback() { | 338 base::Closure GetErrorCallback() { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 base::MessageLoop message_loop_; | 420 base::MessageLoop message_loop_; |
| 420 FakeBluetoothAdapterClient* fake_bluetooth_adapter_client_; | 421 FakeBluetoothAdapterClient* fake_bluetooth_adapter_client_; |
| 421 FakeBluetoothDeviceClient* fake_bluetooth_device_client_; | 422 FakeBluetoothDeviceClient* fake_bluetooth_device_client_; |
| 422 scoped_refptr<BluetoothAdapter> adapter_; | 423 scoped_refptr<BluetoothAdapter> adapter_; |
| 423 | 424 |
| 424 int callback_count_; | 425 int callback_count_; |
| 425 int error_callback_count_; | 426 int error_callback_count_; |
| 426 enum BluetoothDevice::ConnectErrorCode last_connect_error_; | 427 enum BluetoothDevice::ConnectErrorCode last_connect_error_; |
| 427 std::string last_client_error_; | 428 std::string last_client_error_; |
| 428 ScopedVector<BluetoothDiscoverySession> discovery_sessions_; | 429 ScopedVector<BluetoothDiscoverySession> discovery_sessions_; |
| 430 BluetoothAdapterProfileChromeOS *adapter_profile_; |
| 429 | 431 |
| 430 private: | 432 private: |
| 431 // Some tests use a message loop since background processing is simulated; | 433 // Some tests use a message loop since background processing is simulated; |
| 432 // break out of those loops. | 434 // break out of those loops. |
| 433 void QuitMessageLoop() { | 435 void QuitMessageLoop() { |
| 434 if (base::MessageLoop::current() && | 436 if (base::MessageLoop::current() && |
| 435 base::MessageLoop::current()->is_running()) | 437 base::MessageLoop::current()->is_running()) |
| 436 base::MessageLoop::current()->Quit(); | 438 base::MessageLoop::current()->Quit(); |
| 437 } | 439 } |
| 438 }; | 440 }; |
| (...skipping 2742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3181 // NotifyGattDiscoveryComplete | 3183 // NotifyGattDiscoveryComplete |
| 3182 // NotifyGattCharacteristicAdded | 3184 // NotifyGattCharacteristicAdded |
| 3183 // NotifyGattCharacteristicRemoved | 3185 // NotifyGattCharacteristicRemoved |
| 3184 // NotifyGattDescriptorAdded | 3186 // NotifyGattDescriptorAdded |
| 3185 // NotifyGattDescriptorRemoved | 3187 // NotifyGattDescriptorRemoved |
| 3186 // NotifyGattCharacteristicValueChanged | 3188 // NotifyGattCharacteristicValueChanged |
| 3187 // NotifyGattDescriptorValueChanged | 3189 // NotifyGattDescriptorValueChanged |
| 3188 | 3190 |
| 3189 EXPECT_EQ(dbus::ObjectPath(""), adapter_chrome_os->object_path()); | 3191 EXPECT_EQ(dbus::ObjectPath(""), adapter_chrome_os->object_path()); |
| 3190 | 3192 |
| 3193 adapter_profile_ = NULL; |
| 3194 |
| 3191 FakeBluetoothProfileServiceProviderDelegate profile_delegate; | 3195 FakeBluetoothProfileServiceProviderDelegate profile_delegate; |
| 3192 adapter_chrome_os->UseProfile( | 3196 adapter_chrome_os->UseProfile( |
| 3193 BluetoothUUID(), dbus::ObjectPath(""), | 3197 BluetoothUUID(), dbus::ObjectPath(""), |
| 3194 BluetoothProfileManagerClient::Options(), &profile_delegate, | 3198 BluetoothProfileManagerClient::Options(), &profile_delegate, |
| 3195 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, | 3199 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, |
| 3196 base::Unretained(this)), | 3200 base::Unretained(this)), |
| 3197 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, | 3201 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, |
| 3198 base::Unretained(this))); | 3202 base::Unretained(this))); |
| 3199 base::MessageLoop::current()->Run(); | |
| 3200 EXPECT_EQ(1, callback_count_--) << "UseProfile error"; | |
| 3201 EXPECT_EQ(0, error_callback_count_) << "UseProfile error"; | |
| 3202 | 3203 |
| 3203 adapter_chrome_os->ReleaseProfile(BluetoothUUID()); | 3204 EXPECT_FALSE(adapter_profile_) << "UseProfile error"; |
| 3205 EXPECT_EQ(0, callback_count_) << "UseProfile error"; |
| 3206 EXPECT_EQ(1, error_callback_count_--) << "UseProfile error"; |
| 3204 | 3207 |
| 3205 // Protected and private methods: | 3208 // Protected and private methods: |
| 3206 | 3209 |
| 3207 adapter_chrome_os->RemovePairingDelegateInternal(&pairing_delegate); | 3210 adapter_chrome_os->RemovePairingDelegateInternal(&pairing_delegate); |
| 3208 | 3211 |
| 3209 // BluetoothAdapterClient::Observer methods omitted, dbus will be shutdown. | 3212 // BluetoothAdapterClient::Observer methods omitted, dbus will be shutdown. |
| 3210 // BluetoothDeviceClient::Observer methods omitted, dbus will be shutdown. | 3213 // BluetoothDeviceClient::Observer methods omitted, dbus will be shutdown. |
| 3211 // BluetoothInputClient::Observer methods omitted, dbus will be shutdown. | 3214 // BluetoothInputClient::Observer methods omitted, dbus will be shutdown. |
| 3212 // BluetoothAgentServiceProvider::Delegate omitted, dbus will be shutdown, | 3215 // BluetoothAgentServiceProvider::Delegate omitted, dbus will be shutdown, |
| 3213 // with the exception of Released. | 3216 // with the exception of Released. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3251 | 3254 |
| 3252 adapter_chrome_os->RemoveDiscoverySession(GetCallback(), GetErrorCallback()); | 3255 adapter_chrome_os->RemoveDiscoverySession(GetCallback(), GetErrorCallback()); |
| 3253 EXPECT_EQ(0, callback_count_) << "RemoveDiscoverySession error"; | 3256 EXPECT_EQ(0, callback_count_) << "RemoveDiscoverySession error"; |
| 3254 EXPECT_EQ(1, error_callback_count_--) << "RemoveDiscoverySession error"; | 3257 EXPECT_EQ(1, error_callback_count_--) << "RemoveDiscoverySession error"; |
| 3255 | 3258 |
| 3256 // OnStartDiscovery tested in Shutdown_OnStartDiscovery | 3259 // OnStartDiscovery tested in Shutdown_OnStartDiscovery |
| 3257 // OnStartDiscoveryError tested in Shutdown_OnStartDiscoveryError | 3260 // OnStartDiscoveryError tested in Shutdown_OnStartDiscoveryError |
| 3258 // OnStopDiscovery tested in Shutdown_OnStopDiscovery | 3261 // OnStopDiscovery tested in Shutdown_OnStopDiscovery |
| 3259 // OnStopDiscoveryError tested in Shutdown_OnStopDiscoveryError | 3262 // OnStopDiscoveryError tested in Shutdown_OnStopDiscoveryError |
| 3260 | 3263 |
| 3264 adapter_profile_ = NULL; |
| 3265 |
| 3261 // OnRegisterProfile SetProfileDelegate, OnRegisterProfileError, require | 3266 // OnRegisterProfile SetProfileDelegate, OnRegisterProfileError, require |
| 3262 // UseProfile to be set first, do so again here just before calling them. | 3267 // UseProfile to be set first, do so again here just before calling them. |
| 3263 adapter_chrome_os->UseProfile( | 3268 adapter_chrome_os->UseProfile( |
| 3264 BluetoothUUID(), dbus::ObjectPath(""), | 3269 BluetoothUUID(), dbus::ObjectPath(""), |
| 3265 BluetoothProfileManagerClient::Options(), &profile_delegate, | 3270 BluetoothProfileManagerClient::Options(), &profile_delegate, |
| 3266 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, | 3271 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, |
| 3267 base::Unretained(this)), | 3272 base::Unretained(this)), |
| 3268 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, | 3273 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, |
| 3269 base::Unretained(this))); | 3274 base::Unretained(this))); |
| 3270 | 3275 |
| 3271 adapter_chrome_os->OnRegisterProfile( | 3276 EXPECT_FALSE(adapter_profile_) << "UseProfile error"; |
| 3272 BluetoothUUID(), dbus::ObjectPath(""), &profile_delegate, | 3277 EXPECT_EQ(0, callback_count_) << "UseProfile error"; |
| 3273 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, | 3278 EXPECT_EQ(1, error_callback_count_--) << "UseProfile error"; |
| 3274 base::Unretained(this)), | |
| 3275 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, | |
| 3276 base::Unretained(this))); | |
| 3277 EXPECT_EQ(1, callback_count_--) << "OnRegisterProfile error"; | |
| 3278 EXPECT_EQ(1, error_callback_count_--) << "OnRegisterProfile error"; | |
| 3279 | 3279 |
| 3280 adapter_chrome_os->SetProfileDelegate( | 3280 adapter_chrome_os->SetProfileDelegate( |
| 3281 BluetoothUUID(), dbus::ObjectPath(""), &profile_delegate, | 3281 BluetoothUUID(), dbus::ObjectPath(""), &profile_delegate, |
| 3282 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, | 3282 base::Bind(&BluetoothChromeOSTest::ProfileRegisteredCallback, |
| 3283 base::Unretained(this)), | 3283 base::Unretained(this)), |
| 3284 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, | 3284 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, |
| 3285 base::Unretained(this))); | 3285 base::Unretained(this))); |
| 3286 EXPECT_EQ(0, callback_count_) << "SetProfileDelegate error"; | 3286 EXPECT_EQ(0, callback_count_) << "SetProfileDelegate error"; |
| 3287 EXPECT_EQ(1, error_callback_count_--) << "SetProfileDelegate error"; | 3287 EXPECT_EQ(1, error_callback_count_--) << "SetProfileDelegate error"; |
| 3288 | 3288 |
| 3289 adapter_chrome_os->OnRegisterProfileError( | 3289 adapter_chrome_os->OnRegisterProfileError(BluetoothUUID(), "", ""); |
| 3290 BluetoothUUID(), | |
| 3291 base::Bind(&BluetoothChromeOSTest::ErrorCompletionCallback, | |
| 3292 base::Unretained(this)), | |
| 3293 "", ""); | |
| 3294 EXPECT_EQ(0, callback_count_) << "OnRegisterProfileError error"; | 3290 EXPECT_EQ(0, callback_count_) << "OnRegisterProfileError error"; |
| 3295 EXPECT_EQ(1, error_callback_count_--) << "OnRegisterProfileError error"; | 3291 EXPECT_EQ(0, error_callback_count_) << "OnRegisterProfileError error"; |
| 3296 | 3292 |
| 3297 adapter_chrome_os->ProcessQueuedDiscoveryRequests(); | 3293 adapter_chrome_os->ProcessQueuedDiscoveryRequests(); |
| 3298 | 3294 |
| 3299 // From BluetoothAdapater: | 3295 // From BluetoothAdapater: |
| 3300 | 3296 |
| 3301 adapter_->StartDiscoverySession( | 3297 adapter_->StartDiscoverySession( |
| 3302 base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback, | 3298 base::Bind(&BluetoothChromeOSTest::DiscoverySessionCallback, |
| 3303 base::Unretained(this)), | 3299 base::Unretained(this)), |
| 3304 GetErrorCallback()); | 3300 GetErrorCallback()); |
| 3305 EXPECT_EQ(0, callback_count_) << "StartDiscoverySession error"; | 3301 EXPECT_EQ(0, callback_count_) << "StartDiscoverySession error"; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3397 adapter_->Shutdown(); | 3393 adapter_->Shutdown(); |
| 3398 adapter_chrome_os->OnStopDiscoveryError(GetErrorCallback(), "", ""); | 3394 adapter_chrome_os->OnStopDiscoveryError(GetErrorCallback(), "", ""); |
| 3399 | 3395 |
| 3400 // 1 error reported to RemoveDiscoverySession because of OnStopDiscoveryError, | 3396 // 1 error reported to RemoveDiscoverySession because of OnStopDiscoveryError, |
| 3401 // and kNumberOfDiscoverySessions errors queued with AddDiscoverySession. | 3397 // and kNumberOfDiscoverySessions errors queued with AddDiscoverySession. |
| 3402 EXPECT_EQ(0, callback_count_); | 3398 EXPECT_EQ(0, callback_count_); |
| 3403 EXPECT_EQ(1 + kNumberOfDiscoverySessions, error_callback_count_); | 3399 EXPECT_EQ(1 + kNumberOfDiscoverySessions, error_callback_count_); |
| 3404 } | 3400 } |
| 3405 | 3401 |
| 3406 } // namespace chromeos | 3402 } // namespace chromeos |
| OLD | NEW |