| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <memory> |
| 5 #include <string> | 6 #include <string> |
| 7 #include <vector> |
| 6 | 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/ptr_util.h" |
| 8 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
| 9 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/test/test_simple_task_runner.h" | 13 #include "base/test/test_simple_task_runner.h" |
| 11 #include "device/bluetooth/bluetooth_adapter.h" | 14 #include "device/bluetooth/bluetooth_adapter.h" |
| 12 #include "device/bluetooth/bluetooth_adapter_win.h" | 15 #include "device/bluetooth/bluetooth_adapter_win.h" |
| 13 #include "device/bluetooth/bluetooth_device.h" | 16 #include "device/bluetooth/bluetooth_device.h" |
| 14 #include "device/bluetooth/bluetooth_discovery_session_outcome.h" | 17 #include "device/bluetooth/bluetooth_discovery_session_outcome.h" |
| 15 #include "device/bluetooth/bluetooth_task_manager_win.h" | 18 #include "device/bluetooth/bluetooth_task_manager_win.h" |
| 16 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" | 19 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 DiscoverySessionErrorCallback()); | 430 DiscoverySessionErrorCallback()); |
| 428 ui_task_runner_->ClearPendingTasks(); | 431 ui_task_runner_->ClearPendingTasks(); |
| 429 adapter_win_->DiscoveryStarted(false); | 432 adapter_win_->DiscoveryStarted(false); |
| 430 ui_task_runner_->RunPendingTasks(); | 433 ui_task_runner_->RunPendingTasks(); |
| 431 EXPECT_EQ(1, num_start_discovery_error_callbacks_); | 434 EXPECT_EQ(1, num_start_discovery_error_callbacks_); |
| 432 EXPECT_EQ(1, num_stop_discovery_callbacks_); | 435 EXPECT_EQ(1, num_stop_discovery_callbacks_); |
| 433 EXPECT_EQ(0, observer_.discovering_changed_count()); | 436 EXPECT_EQ(0, observer_.discovering_changed_count()); |
| 434 } | 437 } |
| 435 | 438 |
| 436 TEST_F(BluetoothAdapterWinTest, DevicesPolled) { | 439 TEST_F(BluetoothAdapterWinTest, DevicesPolled) { |
| 437 BluetoothTaskManagerWin::DeviceState* android_phone_state = | 440 std::vector<std::unique_ptr<BluetoothTaskManagerWin::DeviceState>> devices; |
| 438 new BluetoothTaskManagerWin::DeviceState(); | 441 devices.push_back(base::MakeUnique<BluetoothTaskManagerWin::DeviceState>()); |
| 442 devices.push_back(base::MakeUnique<BluetoothTaskManagerWin::DeviceState>()); |
| 443 devices.push_back(base::MakeUnique<BluetoothTaskManagerWin::DeviceState>()); |
| 444 |
| 445 BluetoothTaskManagerWin::DeviceState* android_phone_state = devices[0].get(); |
| 446 BluetoothTaskManagerWin::DeviceState* laptop_state = devices[1].get(); |
| 447 BluetoothTaskManagerWin::DeviceState* iphone_state = devices[2].get(); |
| 439 MakeDeviceState("phone", "A1:B2:C3:D4:E5:E0", android_phone_state); | 448 MakeDeviceState("phone", "A1:B2:C3:D4:E5:E0", android_phone_state); |
| 440 BluetoothTaskManagerWin::DeviceState* laptop_state = | |
| 441 new BluetoothTaskManagerWin::DeviceState(); | |
| 442 MakeDeviceState("laptop", "A1:B2:C3:D4:E5:E1", laptop_state); | 449 MakeDeviceState("laptop", "A1:B2:C3:D4:E5:E1", laptop_state); |
| 443 BluetoothTaskManagerWin::DeviceState* iphone_state = | |
| 444 new BluetoothTaskManagerWin::DeviceState(); | |
| 445 MakeDeviceState("phone", "A1:B2:C3:D4:E5:E2", iphone_state); | 450 MakeDeviceState("phone", "A1:B2:C3:D4:E5:E2", iphone_state); |
| 446 ScopedVector<BluetoothTaskManagerWin::DeviceState> devices; | |
| 447 devices.push_back(android_phone_state); | |
| 448 devices.push_back(laptop_state); | |
| 449 devices.push_back(iphone_state); | |
| 450 | 451 |
| 451 // Add 3 devices | 452 // Add 3 devices |
| 452 observer_.Reset(); | 453 observer_.Reset(); |
| 453 adapter_win_->DevicesPolled(devices); | 454 adapter_win_->DevicesPolled(devices); |
| 454 EXPECT_EQ(3, observer_.device_added_count()); | 455 EXPECT_EQ(3, observer_.device_added_count()); |
| 455 EXPECT_EQ(0, observer_.device_removed_count()); | 456 EXPECT_EQ(0, observer_.device_removed_count()); |
| 456 EXPECT_EQ(0, observer_.device_changed_count()); | 457 EXPECT_EQ(0, observer_.device_changed_count()); |
| 457 | 458 |
| 458 // Change a device name | 459 // Change a device name |
| 459 android_phone_state->name = std::string("phone2"); | 460 android_phone_state->name = std::string("phone2"); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 473 | 474 |
| 474 // Remove a device | 475 // Remove a device |
| 475 devices.erase(devices.begin()); | 476 devices.erase(devices.begin()); |
| 476 observer_.Reset(); | 477 observer_.Reset(); |
| 477 adapter_win_->DevicesPolled(devices); | 478 adapter_win_->DevicesPolled(devices); |
| 478 EXPECT_EQ(0, observer_.device_added_count()); | 479 EXPECT_EQ(0, observer_.device_added_count()); |
| 479 EXPECT_EQ(1, observer_.device_removed_count()); | 480 EXPECT_EQ(1, observer_.device_removed_count()); |
| 480 EXPECT_EQ(0, observer_.device_changed_count()); | 481 EXPECT_EQ(0, observer_.device_changed_count()); |
| 481 | 482 |
| 482 // Add a service | 483 // Add a service |
| 484 laptop_state->service_record_states.push_back( |
| 485 base::MakeUnique<BluetoothTaskManagerWin::ServiceRecordState>()); |
| 483 BluetoothTaskManagerWin::ServiceRecordState* audio_state = | 486 BluetoothTaskManagerWin::ServiceRecordState* audio_state = |
| 484 new BluetoothTaskManagerWin::ServiceRecordState(); | 487 laptop_state->service_record_states.back().get(); |
| 485 audio_state->name = kTestAudioSdpName; | 488 audio_state->name = kTestAudioSdpName; |
| 486 base::HexStringToBytes(kTestAudioSdpBytes, &audio_state->sdp_bytes); | 489 base::HexStringToBytes(kTestAudioSdpBytes, &audio_state->sdp_bytes); |
| 487 laptop_state->service_record_states.push_back(audio_state); | |
| 488 observer_.Reset(); | 490 observer_.Reset(); |
| 489 adapter_win_->DevicesPolled(devices); | 491 adapter_win_->DevicesPolled(devices); |
| 490 EXPECT_EQ(0, observer_.device_added_count()); | 492 EXPECT_EQ(0, observer_.device_added_count()); |
| 491 EXPECT_EQ(0, observer_.device_removed_count()); | 493 EXPECT_EQ(0, observer_.device_removed_count()); |
| 492 EXPECT_EQ(1, observer_.device_changed_count()); | 494 EXPECT_EQ(1, observer_.device_changed_count()); |
| 493 | 495 |
| 494 // Change a service | 496 // Change a service |
| 495 audio_state->name = kTestAudioSdpName2; | 497 audio_state->name = kTestAudioSdpName2; |
| 496 observer_.Reset(); | 498 observer_.Reset(); |
| 497 adapter_win_->DevicesPolled(devices); | 499 adapter_win_->DevicesPolled(devices); |
| 498 EXPECT_EQ(0, observer_.device_added_count()); | 500 EXPECT_EQ(0, observer_.device_added_count()); |
| 499 EXPECT_EQ(0, observer_.device_removed_count()); | 501 EXPECT_EQ(0, observer_.device_removed_count()); |
| 500 EXPECT_EQ(1, observer_.device_changed_count()); | 502 EXPECT_EQ(1, observer_.device_changed_count()); |
| 501 | 503 |
| 502 // Remove a service | 504 // Remove a service |
| 503 laptop_state->service_record_states.clear(); | 505 laptop_state->service_record_states.clear(); |
| 504 observer_.Reset(); | 506 observer_.Reset(); |
| 505 adapter_win_->DevicesPolled(devices); | 507 adapter_win_->DevicesPolled(devices); |
| 506 EXPECT_EQ(0, observer_.device_added_count()); | 508 EXPECT_EQ(0, observer_.device_added_count()); |
| 507 EXPECT_EQ(0, observer_.device_removed_count()); | 509 EXPECT_EQ(0, observer_.device_removed_count()); |
| 508 EXPECT_EQ(1, observer_.device_changed_count()); | 510 EXPECT_EQ(1, observer_.device_changed_count()); |
| 509 } | 511 } |
| 510 | 512 |
| 511 } // namespace device | 513 } // namespace device |
| OLD | NEW |