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

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

Issue 1347193004: Refactor DBusThreadManager to split away BT clients. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "chromeos/dbus/dbus_thread_manager.h"
9 #include "chromeos/dbus/fake_bluetooth_adapter_client.h"
10 #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h"
11 #include "chromeos/dbus/fake_bluetooth_device_client.h"
12 #include "chromeos/dbus/fake_bluetooth_gatt_service_client.h"
13 #include "chromeos/dbus/fake_bluetooth_input_client.h"
14 #include "chromeos/dbus/fake_bluetooth_profile_manager_client.h"
15 #include "chromeos/dbus/fake_bluetooth_profile_service_provider.h"
16 #include "device/bluetooth/bluetooth_adapter.h" 8 #include "device/bluetooth/bluetooth_adapter.h"
17 #include "device/bluetooth/bluetooth_adapter_chromeos.h" 9 #include "device/bluetooth/bluetooth_adapter_chromeos.h"
18 #include "device/bluetooth/bluetooth_adapter_factory.h" 10 #include "device/bluetooth/bluetooth_adapter_factory.h"
19 #include "device/bluetooth/bluetooth_device.h" 11 #include "device/bluetooth/bluetooth_device.h"
20 #include "device/bluetooth/bluetooth_device_chromeos.h" 12 #include "device/bluetooth/bluetooth_device_chromeos.h"
21 #include "device/bluetooth/bluetooth_socket.h" 13 #include "device/bluetooth/bluetooth_socket.h"
22 #include "device/bluetooth/bluetooth_socket_chromeos.h" 14 #include "device/bluetooth/bluetooth_socket_chromeos.h"
23 #include "device/bluetooth/bluetooth_socket_thread.h" 15 #include "device/bluetooth/bluetooth_socket_thread.h"
24 #include "device/bluetooth/bluetooth_uuid.h" 16 #include "device/bluetooth/bluetooth_uuid.h"
17 #include "device/bluetooth/dbus/bluez_dbus_manager.h"
18 #include "device/bluetooth/dbus/fake_bluetooth_adapter_client.h"
19 #include "device/bluetooth/dbus/fake_bluetooth_agent_manager_client.h"
20 #include "device/bluetooth/dbus/fake_bluetooth_device_client.h"
21 #include "device/bluetooth/dbus/fake_bluetooth_gatt_service_client.h"
22 #include "device/bluetooth/dbus/fake_bluetooth_input_client.h"
23 #include "device/bluetooth/dbus/fake_bluetooth_profile_manager_client.h"
24 #include "device/bluetooth/dbus/fake_bluetooth_profile_service_provider.h"
25 #include "net/base/io_buffer.h" 25 #include "net/base/io_buffer.h"
26 #include "net/base/net_errors.h" 26 #include "net/base/net_errors.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 28
29 using device::BluetoothAdapter; 29 using device::BluetoothAdapter;
30 using device::BluetoothDevice; 30 using device::BluetoothDevice;
31 using device::BluetoothSocket; 31 using device::BluetoothSocket;
32 using device::BluetoothSocketThread; 32 using device::BluetoothSocketThread;
33 using device::BluetoothUUID; 33 using device::BluetoothUUID;
34 34
35 namespace { 35 namespace {
36 36
37 void DoNothingDBusErrorCallback(const std::string& error_name, 37 void DoNothingDBusErrorCallback(const std::string& error_name,
38 const std::string& error_message) {} 38 const std::string& error_message) {}
39 39
40 } // namespace 40 } // namespace
41 41
42 namespace chromeos { 42 namespace chromeos {
43 43
44 class BluetoothSocketChromeOSTest : public testing::Test { 44 class BluetoothSocketChromeOSTest : public testing::Test {
45 public: 45 public:
46 BluetoothSocketChromeOSTest() 46 BluetoothSocketChromeOSTest()
47 : success_callback_count_(0), 47 : success_callback_count_(0),
48 error_callback_count_(0), 48 error_callback_count_(0),
49 last_bytes_sent_(0), 49 last_bytes_sent_(0),
50 last_bytes_received_(0), 50 last_bytes_received_(0),
51 last_reason_(BluetoothSocket::kSystemError) {} 51 last_reason_(BluetoothSocket::kSystemError) {}
52 52
53 void SetUp() override { 53 void SetUp() override {
54 scoped_ptr<DBusThreadManagerSetter> dbus_setter = 54 scoped_ptr<bluez::BluezDBusManagerSetter> dbus_setter =
55 DBusThreadManager::GetSetterForTesting(); 55 bluez::BluezDBusManager::GetSetterForTesting();
56 56
57 dbus_setter->SetBluetoothAdapterClient( 57 dbus_setter->SetBluetoothAdapterClient(
58 scoped_ptr<BluetoothAdapterClient>(new FakeBluetoothAdapterClient)); 58 scoped_ptr<bluez::BluetoothAdapterClient>(
59 new bluez::FakeBluetoothAdapterClient));
59 dbus_setter->SetBluetoothAgentManagerClient( 60 dbus_setter->SetBluetoothAgentManagerClient(
60 scoped_ptr<BluetoothAgentManagerClient>( 61 scoped_ptr<bluez::BluetoothAgentManagerClient>(
61 new FakeBluetoothAgentManagerClient)); 62 new bluez::FakeBluetoothAgentManagerClient));
62 dbus_setter->SetBluetoothDeviceClient( 63 dbus_setter->SetBluetoothDeviceClient(
63 scoped_ptr<BluetoothDeviceClient>(new FakeBluetoothDeviceClient)); 64 scoped_ptr<bluez::BluetoothDeviceClient>(
65 new bluez::FakeBluetoothDeviceClient));
64 dbus_setter->SetBluetoothGattServiceClient( 66 dbus_setter->SetBluetoothGattServiceClient(
65 scoped_ptr<BluetoothGattServiceClient>( 67 scoped_ptr<bluez::BluetoothGattServiceClient>(
66 new FakeBluetoothGattServiceClient)); 68 new bluez::FakeBluetoothGattServiceClient));
67 dbus_setter->SetBluetoothInputClient( 69 dbus_setter->SetBluetoothInputClient(
68 scoped_ptr<BluetoothInputClient>(new FakeBluetoothInputClient)); 70 scoped_ptr<bluez::BluetoothInputClient>(
71 new bluez::FakeBluetoothInputClient));
69 dbus_setter->SetBluetoothProfileManagerClient( 72 dbus_setter->SetBluetoothProfileManagerClient(
70 scoped_ptr<BluetoothProfileManagerClient>( 73 scoped_ptr<bluez::BluetoothProfileManagerClient>(
71 new FakeBluetoothProfileManagerClient)); 74 new bluez::FakeBluetoothProfileManagerClient));
72 75
73 BluetoothSocketThread::Get(); 76 BluetoothSocketThread::Get();
74 77
75 // Grab a pointer to the adapter. 78 // Grab a pointer to the adapter.
76 device::BluetoothAdapterFactory::GetAdapter( 79 device::BluetoothAdapterFactory::GetAdapter(
77 base::Bind(&BluetoothSocketChromeOSTest::AdapterCallback, 80 base::Bind(&BluetoothSocketChromeOSTest::AdapterCallback,
78 base::Unretained(this))); 81 base::Unretained(this)));
79 ASSERT_TRUE(adapter_.get() != nullptr); 82 ASSERT_TRUE(adapter_.get() != nullptr);
80 ASSERT_TRUE(adapter_->IsInitialized()); 83 ASSERT_TRUE(adapter_->IsInitialized());
81 ASSERT_TRUE(adapter_->IsPresent()); 84 ASSERT_TRUE(adapter_->IsPresent());
82 85
83 // Turn on the adapter. 86 // Turn on the adapter.
84 adapter_->SetPowered( 87 adapter_->SetPowered(
85 true, 88 true,
86 base::Bind(&base::DoNothing), 89 base::Bind(&base::DoNothing),
87 base::Bind(&base::DoNothing)); 90 base::Bind(&base::DoNothing));
88 ASSERT_TRUE(adapter_->IsPowered()); 91 ASSERT_TRUE(adapter_->IsPowered());
89 } 92 }
90 93
91 void TearDown() override { 94 void TearDown() override {
92 adapter_ = nullptr; 95 adapter_ = nullptr;
93 BluetoothSocketThread::CleanupForTesting(); 96 BluetoothSocketThread::CleanupForTesting();
94 DBusThreadManager::Shutdown(); 97 bluez::BluezDBusManager::Shutdown();
95 } 98 }
96 99
97 void AdapterCallback(scoped_refptr<BluetoothAdapter> adapter) { 100 void AdapterCallback(scoped_refptr<BluetoothAdapter> adapter) {
98 adapter_ = adapter; 101 adapter_ = adapter;
99 } 102 }
100 103
101 void SuccessCallback() { 104 void SuccessCallback() {
102 ++success_callback_count_; 105 ++success_callback_count_;
103 message_loop_.Quit(); 106 message_loop_.Quit();
104 } 107 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 scoped_refptr<BluetoothSocket> last_socket_; 179 scoped_refptr<BluetoothSocket> last_socket_;
177 int last_bytes_sent_; 180 int last_bytes_sent_;
178 int last_bytes_received_; 181 int last_bytes_received_;
179 scoped_refptr<net::IOBuffer> last_io_buffer_; 182 scoped_refptr<net::IOBuffer> last_io_buffer_;
180 BluetoothSocket::ErrorReason last_reason_; 183 BluetoothSocket::ErrorReason last_reason_;
181 const BluetoothDevice* last_device_; 184 const BluetoothDevice* last_device_;
182 }; 185 };
183 186
184 TEST_F(BluetoothSocketChromeOSTest, Connect) { 187 TEST_F(BluetoothSocketChromeOSTest, Connect) {
185 BluetoothDevice* device = adapter_->GetDevice( 188 BluetoothDevice* device = adapter_->GetDevice(
186 FakeBluetoothDeviceClient::kPairedDeviceAddress); 189 bluez::FakeBluetoothDeviceClient::kPairedDeviceAddress);
187 ASSERT_TRUE(device != nullptr); 190 ASSERT_TRUE(device != nullptr);
188 191
189 device->ConnectToService( 192 device->ConnectToService(
190 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 193 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
191 base::Bind(&BluetoothSocketChromeOSTest::ConnectToServiceSuccessCallback, 194 base::Bind(&BluetoothSocketChromeOSTest::ConnectToServiceSuccessCallback,
192 base::Unretained(this)), 195 base::Unretained(this)),
193 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 196 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
194 base::Unretained(this))); 197 base::Unretained(this)));
195 message_loop_.Run(); 198 message_loop_.Run();
196 199
197 EXPECT_EQ(1U, success_callback_count_); 200 EXPECT_EQ(1U, success_callback_count_);
198 EXPECT_EQ(0U, error_callback_count_); 201 EXPECT_EQ(0U, error_callback_count_);
199 EXPECT_TRUE(last_socket_.get() != nullptr); 202 EXPECT_TRUE(last_socket_.get() != nullptr);
200 203
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // Close our end of the socket. 290 // Close our end of the socket.
288 socket->Disconnect(base::Bind(&BluetoothSocketChromeOSTest::SuccessCallback, 291 socket->Disconnect(base::Bind(&BluetoothSocketChromeOSTest::SuccessCallback,
289 base::Unretained(this))); 292 base::Unretained(this)));
290 293
291 message_loop_.Run(); 294 message_loop_.Run();
292 EXPECT_EQ(1U, success_callback_count_); 295 EXPECT_EQ(1U, success_callback_count_);
293 } 296 }
294 297
295 TEST_F(BluetoothSocketChromeOSTest, Listen) { 298 TEST_F(BluetoothSocketChromeOSTest, Listen) {
296 adapter_->CreateRfcommService( 299 adapter_->CreateRfcommService(
297 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 300 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
298 BluetoothAdapter::ServiceOptions(), 301 BluetoothAdapter::ServiceOptions(),
299 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback, 302 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback,
300 base::Unretained(this)), 303 base::Unretained(this)),
301 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 304 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
302 base::Unretained(this))); 305 base::Unretained(this)));
303 306
304 message_loop_.Run(); 307 message_loop_.Run();
305 308
306 EXPECT_EQ(1U, success_callback_count_); 309 EXPECT_EQ(1U, success_callback_count_);
307 EXPECT_EQ(0U, error_callback_count_); 310 EXPECT_EQ(0U, error_callback_count_);
308 EXPECT_TRUE(last_socket_.get() != nullptr); 311 EXPECT_TRUE(last_socket_.get() != nullptr);
309 312
310 // Take ownership of the socket for the remainder of the test. 313 // Take ownership of the socket for the remainder of the test.
311 scoped_refptr<BluetoothSocket> server_socket = last_socket_; 314 scoped_refptr<BluetoothSocket> server_socket = last_socket_;
312 last_socket_ = nullptr; 315 last_socket_ = nullptr;
313 success_callback_count_ = 0; 316 success_callback_count_ = 0;
314 error_callback_count_ = 0; 317 error_callback_count_ = 0;
315 318
316 // Simulate an incoming connection by just calling the ConnectProfile method 319 // Simulate an incoming connection by just calling the ConnectProfile method
317 // of the underlying fake device client (from the BlueZ point of view, 320 // of the underlying fake device client (from the BlueZ point of view,
318 // outgoing and incoming look the same). 321 // outgoing and incoming look the same).
319 // 322 //
320 // This is done before the Accept() call to simulate a pending call at the 323 // This is done before the Accept() call to simulate a pending call at the
321 // point that Accept() is called. 324 // point that Accept() is called.
322 FakeBluetoothDeviceClient* fake_bluetooth_device_client = 325 bluez::FakeBluetoothDeviceClient* fake_bluetooth_device_client =
323 static_cast<FakeBluetoothDeviceClient*>( 326 static_cast<bluez::FakeBluetoothDeviceClient*>(
324 DBusThreadManager::Get()->GetBluetoothDeviceClient()); 327 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient());
325 BluetoothDevice* device = adapter_->GetDevice( 328 BluetoothDevice* device = adapter_->GetDevice(
326 FakeBluetoothDeviceClient::kPairedDeviceAddress); 329 bluez::FakeBluetoothDeviceClient::kPairedDeviceAddress);
327 ASSERT_TRUE(device != nullptr); 330 ASSERT_TRUE(device != nullptr);
328 fake_bluetooth_device_client->ConnectProfile( 331 fake_bluetooth_device_client->ConnectProfile(
329 static_cast<BluetoothDeviceChromeOS*>(device)->object_path(), 332 static_cast<BluetoothDeviceChromeOS*>(device)->object_path(),
330 FakeBluetoothProfileManagerClient::kRfcommUuid, 333 bluez::FakeBluetoothProfileManagerClient::kRfcommUuid,
331 base::Bind(&base::DoNothing), 334 base::Bind(&base::DoNothing), base::Bind(&DoNothingDBusErrorCallback));
332 base::Bind(&DoNothingDBusErrorCallback));
333 335
334 message_loop_.RunUntilIdle(); 336 message_loop_.RunUntilIdle();
335 337
336 server_socket->Accept( 338 server_socket->Accept(
337 base::Bind(&BluetoothSocketChromeOSTest::AcceptSuccessCallback, 339 base::Bind(&BluetoothSocketChromeOSTest::AcceptSuccessCallback,
338 base::Unretained(this)), 340 base::Unretained(this)),
339 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 341 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
340 base::Unretained(this))); 342 base::Unretained(this)));
341 343
342 message_loop_.Run(); 344 message_loop_.Run();
(...skipping 25 matching lines...) Expand all
368 server_socket->Accept( 370 server_socket->Accept(
369 base::Bind(&BluetoothSocketChromeOSTest::AcceptSuccessCallback, 371 base::Bind(&BluetoothSocketChromeOSTest::AcceptSuccessCallback,
370 base::Unretained(this)), 372 base::Unretained(this)),
371 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 373 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
372 base::Unretained(this))); 374 base::Unretained(this)));
373 375
374 message_loop_.RunUntilIdle(); 376 message_loop_.RunUntilIdle();
375 377
376 fake_bluetooth_device_client->ConnectProfile( 378 fake_bluetooth_device_client->ConnectProfile(
377 static_cast<BluetoothDeviceChromeOS*>(device)->object_path(), 379 static_cast<BluetoothDeviceChromeOS*>(device)->object_path(),
378 FakeBluetoothProfileManagerClient::kRfcommUuid, 380 bluez::FakeBluetoothProfileManagerClient::kRfcommUuid,
379 base::Bind(&base::DoNothing), 381 base::Bind(&base::DoNothing), base::Bind(&DoNothingDBusErrorCallback));
380 base::Bind(&DoNothingDBusErrorCallback));
381 382
382 message_loop_.Run(); 383 message_loop_.Run();
383 384
384 EXPECT_EQ(1U, success_callback_count_); 385 EXPECT_EQ(1U, success_callback_count_);
385 EXPECT_EQ(0U, error_callback_count_); 386 EXPECT_EQ(0U, error_callback_count_);
386 EXPECT_TRUE(last_socket_.get() != nullptr); 387 EXPECT_TRUE(last_socket_.get() != nullptr);
387 388
388 // Take ownership of the client socket for the remainder of the test. 389 // Take ownership of the client socket for the remainder of the test.
389 client_socket = last_socket_; 390 client_socket = last_socket_;
390 last_socket_ = nullptr; 391 last_socket_ = nullptr;
(...skipping 18 matching lines...) Expand all
409 base::Unretained(this))); 410 base::Unretained(this)));
410 411
411 message_loop_.RunUntilIdle(); 412 message_loop_.RunUntilIdle();
412 413
413 EXPECT_EQ(1U, success_callback_count_); 414 EXPECT_EQ(1U, success_callback_count_);
414 } 415 }
415 416
416 TEST_F(BluetoothSocketChromeOSTest, ListenBeforeAdapterStart) { 417 TEST_F(BluetoothSocketChromeOSTest, ListenBeforeAdapterStart) {
417 // Start off with an invisible adapter, register the profile, then make 418 // Start off with an invisible adapter, register the profile, then make
418 // the adapter visible. 419 // the adapter visible.
419 FakeBluetoothAdapterClient* fake_bluetooth_adapter_client = 420 bluez::FakeBluetoothAdapterClient* fake_bluetooth_adapter_client =
420 static_cast<FakeBluetoothAdapterClient*>( 421 static_cast<bluez::FakeBluetoothAdapterClient*>(
421 DBusThreadManager::Get()->GetBluetoothAdapterClient()); 422 bluez::BluezDBusManager::Get()->GetBluetoothAdapterClient());
422 fake_bluetooth_adapter_client->SetVisible(false); 423 fake_bluetooth_adapter_client->SetVisible(false);
423 424
424 adapter_->CreateRfcommService( 425 adapter_->CreateRfcommService(
425 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 426 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
426 BluetoothAdapter::ServiceOptions(), 427 BluetoothAdapter::ServiceOptions(),
427 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback, 428 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback,
428 base::Unretained(this)), 429 base::Unretained(this)),
429 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 430 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
430 base::Unretained(this))); 431 base::Unretained(this)));
431 message_loop_.Run(); 432 message_loop_.Run();
432 433
433 EXPECT_EQ(1U, success_callback_count_); 434 EXPECT_EQ(1U, success_callback_count_);
434 EXPECT_EQ(0U, error_callback_count_); 435 EXPECT_EQ(0U, error_callback_count_);
435 EXPECT_TRUE(last_socket_.get() != nullptr); 436 EXPECT_TRUE(last_socket_.get() != nullptr);
436 437
437 // Take ownership of the socket for the remainder of the test. 438 // Take ownership of the socket for the remainder of the test.
438 scoped_refptr<BluetoothSocket> socket = last_socket_; 439 scoped_refptr<BluetoothSocket> socket = last_socket_;
439 last_socket_ = nullptr; 440 last_socket_ = nullptr;
440 success_callback_count_ = 0; 441 success_callback_count_ = 0;
441 error_callback_count_ = 0; 442 error_callback_count_ = 0;
442 443
443 // But there shouldn't be a profile registered yet. 444 // But there shouldn't be a profile registered yet.
444 FakeBluetoothProfileManagerClient* fake_bluetooth_profile_manager_client = 445 bluez::FakeBluetoothProfileManagerClient*
445 static_cast<FakeBluetoothProfileManagerClient*>( 446 fake_bluetooth_profile_manager_client =
446 DBusThreadManager::Get()->GetBluetoothProfileManagerClient()); 447 static_cast<bluez::FakeBluetoothProfileManagerClient*>(
447 FakeBluetoothProfileServiceProvider* profile_service_provider = 448 bluez::BluezDBusManager::Get()
449 ->GetBluetoothProfileManagerClient());
450 bluez::FakeBluetoothProfileServiceProvider* profile_service_provider =
448 fake_bluetooth_profile_manager_client->GetProfileServiceProvider( 451 fake_bluetooth_profile_manager_client->GetProfileServiceProvider(
449 FakeBluetoothProfileManagerClient::kRfcommUuid); 452 bluez::FakeBluetoothProfileManagerClient::kRfcommUuid);
450 EXPECT_TRUE(profile_service_provider == nullptr); 453 EXPECT_TRUE(profile_service_provider == nullptr);
451 454
452 // Make the adapter visible. This should register a profile. 455 // Make the adapter visible. This should register a profile.
453 fake_bluetooth_adapter_client->SetVisible(true); 456 fake_bluetooth_adapter_client->SetVisible(true);
454 457
455 message_loop_.RunUntilIdle(); 458 message_loop_.RunUntilIdle();
456 459
457 profile_service_provider = 460 profile_service_provider =
458 fake_bluetooth_profile_manager_client->GetProfileServiceProvider( 461 fake_bluetooth_profile_manager_client->GetProfileServiceProvider(
459 FakeBluetoothProfileManagerClient::kRfcommUuid); 462 bluez::FakeBluetoothProfileManagerClient::kRfcommUuid);
460 EXPECT_TRUE(profile_service_provider != nullptr); 463 EXPECT_TRUE(profile_service_provider != nullptr);
461 464
462 // Cleanup the socket. 465 // Cleanup the socket.
463 socket->Disconnect( 466 socket->Disconnect(
464 base::Bind(&BluetoothSocketChromeOSTest::ImmediateSuccessCallback, 467 base::Bind(&BluetoothSocketChromeOSTest::ImmediateSuccessCallback,
465 base::Unretained(this))); 468 base::Unretained(this)));
466 469
467 message_loop_.RunUntilIdle(); 470 message_loop_.RunUntilIdle();
468 471
469 EXPECT_EQ(1U, success_callback_count_); 472 EXPECT_EQ(1U, success_callback_count_);
470 } 473 }
471 474
472 TEST_F(BluetoothSocketChromeOSTest, ListenAcrossAdapterRestart) { 475 TEST_F(BluetoothSocketChromeOSTest, ListenAcrossAdapterRestart) {
473 // The fake adapter starts off visible by default. 476 // The fake adapter starts off visible by default.
474 FakeBluetoothAdapterClient* fake_bluetooth_adapter_client = 477 bluez::FakeBluetoothAdapterClient* fake_bluetooth_adapter_client =
475 static_cast<FakeBluetoothAdapterClient*>( 478 static_cast<bluez::FakeBluetoothAdapterClient*>(
476 DBusThreadManager::Get()->GetBluetoothAdapterClient()); 479 bluez::BluezDBusManager::Get()->GetBluetoothAdapterClient());
477 480
478 adapter_->CreateRfcommService( 481 adapter_->CreateRfcommService(
479 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 482 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
480 BluetoothAdapter::ServiceOptions(), 483 BluetoothAdapter::ServiceOptions(),
481 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback, 484 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback,
482 base::Unretained(this)), 485 base::Unretained(this)),
483 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 486 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
484 base::Unretained(this))); 487 base::Unretained(this)));
485 message_loop_.Run(); 488 message_loop_.Run();
486 489
487 EXPECT_EQ(1U, success_callback_count_); 490 EXPECT_EQ(1U, success_callback_count_);
488 EXPECT_EQ(0U, error_callback_count_); 491 EXPECT_EQ(0U, error_callback_count_);
489 EXPECT_TRUE(last_socket_.get() != nullptr); 492 EXPECT_TRUE(last_socket_.get() != nullptr);
490 493
491 // Take ownership of the socket for the remainder of the test. 494 // Take ownership of the socket for the remainder of the test.
492 scoped_refptr<BluetoothSocket> socket = last_socket_; 495 scoped_refptr<BluetoothSocket> socket = last_socket_;
493 last_socket_ = nullptr; 496 last_socket_ = nullptr;
494 success_callback_count_ = 0; 497 success_callback_count_ = 0;
495 error_callback_count_ = 0; 498 error_callback_count_ = 0;
496 499
497 // Make sure the profile was registered with the daemon. 500 // Make sure the profile was registered with the daemon.
498 FakeBluetoothProfileManagerClient* fake_bluetooth_profile_manager_client = 501 bluez::FakeBluetoothProfileManagerClient*
499 static_cast<FakeBluetoothProfileManagerClient*>( 502 fake_bluetooth_profile_manager_client =
500 DBusThreadManager::Get()->GetBluetoothProfileManagerClient()); 503 static_cast<bluez::FakeBluetoothProfileManagerClient*>(
501 FakeBluetoothProfileServiceProvider* profile_service_provider = 504 bluez::BluezDBusManager::Get()
505 ->GetBluetoothProfileManagerClient());
506 bluez::FakeBluetoothProfileServiceProvider* profile_service_provider =
502 fake_bluetooth_profile_manager_client->GetProfileServiceProvider( 507 fake_bluetooth_profile_manager_client->GetProfileServiceProvider(
503 FakeBluetoothProfileManagerClient::kRfcommUuid); 508 bluez::FakeBluetoothProfileManagerClient::kRfcommUuid);
504 EXPECT_TRUE(profile_service_provider != nullptr); 509 EXPECT_TRUE(profile_service_provider != nullptr);
505 510
506 // Make the adapter invisible, and fiddle with the profile fake to unregister 511 // Make the adapter invisible, and fiddle with the profile fake to unregister
507 // the profile since this doesn't happen automatically. 512 // the profile since this doesn't happen automatically.
508 fake_bluetooth_adapter_client->SetVisible(false); 513 fake_bluetooth_adapter_client->SetVisible(false);
509 514
510 message_loop_.RunUntilIdle(); 515 message_loop_.RunUntilIdle();
511 516
512 // Then make the adapter visible again. This should re-register the profile. 517 // Then make the adapter visible again. This should re-register the profile.
513 fake_bluetooth_adapter_client->SetVisible(true); 518 fake_bluetooth_adapter_client->SetVisible(true);
514 519
515 message_loop_.RunUntilIdle(); 520 message_loop_.RunUntilIdle();
516 521
517 profile_service_provider = 522 profile_service_provider =
518 fake_bluetooth_profile_manager_client->GetProfileServiceProvider( 523 fake_bluetooth_profile_manager_client->GetProfileServiceProvider(
519 FakeBluetoothProfileManagerClient::kRfcommUuid); 524 bluez::FakeBluetoothProfileManagerClient::kRfcommUuid);
520 EXPECT_TRUE(profile_service_provider != nullptr); 525 EXPECT_TRUE(profile_service_provider != nullptr);
521 526
522 // Cleanup the socket. 527 // Cleanup the socket.
523 socket->Disconnect( 528 socket->Disconnect(
524 base::Bind(&BluetoothSocketChromeOSTest::ImmediateSuccessCallback, 529 base::Bind(&BluetoothSocketChromeOSTest::ImmediateSuccessCallback,
525 base::Unretained(this))); 530 base::Unretained(this)));
526 531
527 message_loop_.RunUntilIdle(); 532 message_loop_.RunUntilIdle();
528 533
529 EXPECT_EQ(1U, success_callback_count_); 534 EXPECT_EQ(1U, success_callback_count_);
530 } 535 }
531 536
532 TEST_F(BluetoothSocketChromeOSTest, PairedConnectFails) { 537 TEST_F(BluetoothSocketChromeOSTest, PairedConnectFails) {
533 BluetoothDevice* device = adapter_->GetDevice( 538 BluetoothDevice* device = adapter_->GetDevice(
534 FakeBluetoothDeviceClient::kPairedUnconnectableDeviceAddress); 539 bluez::FakeBluetoothDeviceClient::kPairedUnconnectableDeviceAddress);
535 ASSERT_TRUE(device != nullptr); 540 ASSERT_TRUE(device != nullptr);
536 541
537 device->ConnectToService( 542 device->ConnectToService(
538 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 543 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
539 base::Bind(&BluetoothSocketChromeOSTest::ConnectToServiceSuccessCallback, 544 base::Bind(&BluetoothSocketChromeOSTest::ConnectToServiceSuccessCallback,
540 base::Unretained(this)), 545 base::Unretained(this)),
541 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 546 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
542 base::Unretained(this))); 547 base::Unretained(this)));
543 message_loop_.Run(); 548 message_loop_.Run();
544 549
545 EXPECT_EQ(0U, success_callback_count_); 550 EXPECT_EQ(0U, success_callback_count_);
546 EXPECT_EQ(1U, error_callback_count_); 551 EXPECT_EQ(1U, error_callback_count_);
547 EXPECT_TRUE(last_socket_.get() == nullptr); 552 EXPECT_TRUE(last_socket_.get() == nullptr);
548 553
549 device->ConnectToService( 554 device->ConnectToService(
550 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 555 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
551 base::Bind(&BluetoothSocketChromeOSTest::ConnectToServiceSuccessCallback, 556 base::Bind(&BluetoothSocketChromeOSTest::ConnectToServiceSuccessCallback,
552 base::Unretained(this)), 557 base::Unretained(this)),
553 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 558 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
554 base::Unretained(this))); 559 base::Unretained(this)));
555 message_loop_.Run(); 560 message_loop_.Run();
556 561
557 EXPECT_EQ(0U, success_callback_count_); 562 EXPECT_EQ(0U, success_callback_count_);
558 EXPECT_EQ(2U, error_callback_count_); 563 EXPECT_EQ(2U, error_callback_count_);
559 EXPECT_TRUE(last_socket_.get() == nullptr); 564 EXPECT_TRUE(last_socket_.get() == nullptr);
560 } 565 }
561 566
562 TEST_F(BluetoothSocketChromeOSTest, SocketListenTwice) { 567 TEST_F(BluetoothSocketChromeOSTest, SocketListenTwice) {
563 adapter_->CreateRfcommService( 568 adapter_->CreateRfcommService(
564 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 569 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
565 BluetoothAdapter::ServiceOptions(), 570 BluetoothAdapter::ServiceOptions(),
566 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback, 571 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback,
567 base::Unretained(this)), 572 base::Unretained(this)),
568 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 573 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
569 base::Unretained(this))); 574 base::Unretained(this)));
570 575
571 message_loop_.Run(); 576 message_loop_.Run();
572 577
573 EXPECT_EQ(1U, success_callback_count_); 578 EXPECT_EQ(1U, success_callback_count_);
574 EXPECT_EQ(0U, error_callback_count_); 579 EXPECT_EQ(0U, error_callback_count_);
(...skipping 12 matching lines...) Expand all
587 server_socket->Close(); 592 server_socket->Close();
588 593
589 server_socket = nullptr; 594 server_socket = nullptr;
590 595
591 message_loop_.RunUntilIdle(); 596 message_loop_.RunUntilIdle();
592 597
593 EXPECT_EQ(1U, success_callback_count_); 598 EXPECT_EQ(1U, success_callback_count_);
594 EXPECT_EQ(1U, error_callback_count_); 599 EXPECT_EQ(1U, error_callback_count_);
595 600
596 adapter_->CreateRfcommService( 601 adapter_->CreateRfcommService(
597 BluetoothUUID(FakeBluetoothProfileManagerClient::kRfcommUuid), 602 BluetoothUUID(bluez::FakeBluetoothProfileManagerClient::kRfcommUuid),
598 BluetoothAdapter::ServiceOptions(), 603 BluetoothAdapter::ServiceOptions(),
599 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback, 604 base::Bind(&BluetoothSocketChromeOSTest::CreateServiceSuccessCallback,
600 base::Unretained(this)), 605 base::Unretained(this)),
601 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback, 606 base::Bind(&BluetoothSocketChromeOSTest::ErrorCallback,
602 base::Unretained(this))); 607 base::Unretained(this)));
603 608
604 message_loop_.Run(); 609 message_loop_.Run();
605 610
606 EXPECT_EQ(2U, success_callback_count_); 611 EXPECT_EQ(2U, success_callback_count_);
607 EXPECT_EQ(1U, error_callback_count_); 612 EXPECT_EQ(1U, error_callback_count_);
(...skipping 12 matching lines...) Expand all
620 625
621 server_socket = nullptr; 626 server_socket = nullptr;
622 627
623 message_loop_.RunUntilIdle(); 628 message_loop_.RunUntilIdle();
624 629
625 EXPECT_EQ(2U, success_callback_count_); 630 EXPECT_EQ(2U, success_callback_count_);
626 EXPECT_EQ(2U, error_callback_count_); 631 EXPECT_EQ(2U, error_callback_count_);
627 } 632 }
628 633
629 } // namespace chromeos 634 } // namespace chromeos
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_socket_chromeos.cc ('k') | device/bluetooth/dbus/bluetooth_adapter_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698