| Index: chromeos/components/tether/ble_scanner_unittest.cc
|
| diff --git a/chromeos/components/tether/ble_scanner_unittest.cc b/chromeos/components/tether/ble_scanner_unittest.cc
|
| index 79ce95d70922a6ff52139859930fe884704951db..e9ef84e4ce86233e1097b792569c98a095c4b350 100644
|
| --- a/chromeos/components/tether/ble_scanner_unittest.cc
|
| +++ b/chromeos/components/tether/ble_scanner_unittest.cc
|
| @@ -130,48 +130,19 @@ std::vector<cryptauth::BeaconSeed> CreateFakeBeaconSeeds() {
|
|
|
| class BleScannerTest : public testing::Test {
|
| protected:
|
| - class TestDelegate : public BleScanner::Delegate {
|
| + class TestServiceDataProvider : public BleScanner::ServiceDataProvider {
|
| public:
|
| - TestDelegate()
|
| - : is_bluetooth_adapter_available_(true),
|
| - last_get_adapter_callback_(nullptr) {}
|
| + TestServiceDataProvider() {}
|
|
|
| - ~TestDelegate() override {}
|
| -
|
| - bool IsBluetoothAdapterAvailable() const override {
|
| - return is_bluetooth_adapter_available_;
|
| - }
|
| -
|
| - void set_is_bluetooth_adapter_available(
|
| - bool is_bluetooth_adapter_available) {
|
| - is_bluetooth_adapter_available_ = is_bluetooth_adapter_available;
|
| - }
|
| -
|
| - void GetAdapter(const device::BluetoothAdapterFactory::AdapterCallback&
|
| - callback) override {
|
| - last_get_adapter_callback_ = callback;
|
| - }
|
| -
|
| - const device::BluetoothAdapterFactory::AdapterCallback
|
| - last_get_adapter_callback() {
|
| - return last_get_adapter_callback_;
|
| - }
|
| + ~TestServiceDataProvider() override {}
|
|
|
| + // ServiceDataProvider:
|
| const std::vector<uint8_t>* GetServiceDataForUUID(
|
| - const device::BluetoothUUID& service_uuid,
|
| device::BluetoothDevice* bluetooth_device) override {
|
| - if (device::BluetoothUUID(kAdvertisingServiceUuid) == service_uuid) {
|
| - return reinterpret_cast<MockBluetoothDeviceWithServiceData*>(
|
| - bluetooth_device)
|
| - ->service_data();
|
| - }
|
| -
|
| - return nullptr;
|
| + return reinterpret_cast<MockBluetoothDeviceWithServiceData*>(
|
| + bluetooth_device)
|
| + ->service_data();
|
| }
|
| -
|
| - private:
|
| - bool is_bluetooth_adapter_available_;
|
| - device::BluetoothAdapterFactory::AdapterCallback last_get_adapter_callback_;
|
| };
|
|
|
| BleScannerTest()
|
| @@ -179,9 +150,7 @@ class BleScannerTest : public testing::Test {
|
| test_beacon_seeds_(CreateFakeBeaconSeeds()) {}
|
|
|
| void SetUp() override {
|
| - test_delegate_ = new TestDelegate();
|
| - EXPECT_TRUE(test_delegate_->IsBluetoothAdapterAvailable());
|
| - EXPECT_FALSE(test_delegate_->last_get_adapter_callback());
|
| + test_service_data_provider_ = new TestServiceDataProvider();
|
|
|
| mock_eid_generator_ = base::MakeUnique<cryptauth::MockEidGenerator>();
|
| mock_eid_generator_->set_background_scan_filter(
|
| @@ -208,8 +177,8 @@ class BleScannerTest : public testing::Test {
|
| mock_discovery_session_ = nullptr;
|
|
|
| ble_scanner_ = base::WrapUnique(new BleScanner(
|
| - base::WrapUnique(test_delegate_), mock_eid_generator_.get(),
|
| - mock_local_device_data_provider_.get()));
|
| + base::WrapUnique(test_service_data_provider_), mock_adapter_,
|
| + mock_eid_generator_.get(), mock_local_device_data_provider_.get()));
|
|
|
| mock_observer_ = base::MakeUnique<MockBleScannerObserver>();
|
| ble_scanner_->AddObserver(mock_observer_.get());
|
| @@ -227,25 +196,6 @@ class BleScannerTest : public testing::Test {
|
| stored_discovery_errback_ = errback;
|
| }
|
|
|
| - void InvokeAdapterCallback() {
|
| - const device::BluetoothAdapterFactory::AdapterCallback
|
| - last_get_adapter_callback = test_delegate_->last_get_adapter_callback();
|
| - ASSERT_TRUE(last_get_adapter_callback);
|
| -
|
| - // Because the adapter has just been initialized, the discovery session
|
| - // should not have been started yet.
|
| - EXPECT_FALSE(stored_discovery_filter_);
|
| - EXPECT_TRUE(stored_discovery_callback_.is_null());
|
| - EXPECT_TRUE(stored_discovery_errback_.is_null());
|
| -
|
| - EXPECT_CALL(*mock_adapter_, AddObserver(ble_scanner_.get()));
|
| - last_get_adapter_callback.Run(mock_adapter_);
|
| -
|
| - // Once the adapter callback is returned, a discovery session should be
|
| - // started via that adapter.
|
| - AssertDiscoverySessionRequested();
|
| - }
|
| -
|
| void AssertDiscoverySessionRequested() {
|
| // First, ensure that the correct discovery filter was passed.
|
| EXPECT_TRUE(stored_discovery_filter_);
|
| @@ -272,7 +222,7 @@ class BleScannerTest : public testing::Test {
|
|
|
| std::unique_ptr<MockBleScannerObserver> mock_observer_;
|
|
|
| - TestDelegate* test_delegate_;
|
| + TestServiceDataProvider* test_service_data_provider_;
|
| std::unique_ptr<cryptauth::MockEidGenerator> mock_eid_generator_;
|
| std::unique_ptr<MockLocalDeviceDataProvider> mock_local_device_data_provider_;
|
|
|
| @@ -289,21 +239,11 @@ class BleScannerTest : public testing::Test {
|
| DISALLOW_COPY_AND_ASSIGN(BleScannerTest);
|
| };
|
|
|
| -TEST_F(BleScannerTest, TestNoBluetoothAdapter) {
|
| - test_delegate_->set_is_bluetooth_adapter_available(false);
|
| - EXPECT_FALSE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| - EXPECT_FALSE(
|
| - ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| - EXPECT_FALSE(test_delegate_->last_get_adapter_callback());
|
| - EXPECT_FALSE(mock_observer_->GetNumCalls());
|
| -}
|
| -
|
| TEST_F(BleScannerTest, TestNoLocalBeaconSeeds) {
|
| mock_local_device_data_provider_->SetBeaconSeeds(nullptr);
|
| EXPECT_FALSE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_FALSE(
|
| ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| - EXPECT_FALSE(test_delegate_->last_get_adapter_callback());
|
| EXPECT_FALSE(mock_observer_->GetNumCalls());
|
| }
|
|
|
| @@ -312,14 +252,12 @@ TEST_F(BleScannerTest, TestNoBackgroundScanFilter) {
|
| EXPECT_FALSE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_FALSE(
|
| ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| - EXPECT_FALSE(test_delegate_->last_get_adapter_callback());
|
| EXPECT_FALSE(mock_observer_->GetNumCalls());
|
| }
|
|
|
| TEST_F(BleScannerTest, TestAdapterDoesNotInitialize) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| - EXPECT_TRUE(test_delegate_->last_get_adapter_callback());
|
|
|
| // Do not call the last GetAdapter() callback. The device should still be able
|
| // to be unregistered.
|
| @@ -334,7 +272,6 @@ TEST_F(BleScannerTest, TestAdapterDoesNotInitialize_MultipleDevicesRegistered) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[1]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[1].GetDeviceId()));
|
| - EXPECT_TRUE(test_delegate_->last_get_adapter_callback());
|
|
|
| // Do not call the last GetAdapter() callback. The devices should still be
|
| // able to be unregistered.
|
| @@ -351,7 +288,7 @@ TEST_F(BleScannerTest, TestDiscoverySessionFailsToStart) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| stored_discovery_errback_.Run();
|
|
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| @@ -363,7 +300,7 @@ TEST_F(BleScannerTest, TestDiscoveryStartsButNoDevicesFound) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| // No devices found.
|
| @@ -379,7 +316,7 @@ TEST_F(BleScannerTest, TestDiscovery_NoServiceData) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| // Device with no service data connected. Service data is required to identify
|
| @@ -398,7 +335,7 @@ TEST_F(BleScannerTest, TestDiscovery_ServiceDataTooShort) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| // Device with short service data connected. Service data of at least 4 bytes
|
| @@ -418,7 +355,7 @@ TEST_F(BleScannerTest, TestDiscovery_LocalDeviceDataCannotBeFetched) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| // Device with valid service data connected, but the local device data
|
| @@ -441,7 +378,7 @@ TEST_F(BleScannerTest, TestDiscovery_ScanSuccessfulButNoRegisteredDevice) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| // Device with valid service data connected, but there was no registered
|
| @@ -466,7 +403,7 @@ TEST_F(BleScannerTest, TestDiscovery_Success) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| // Registered device connects.
|
| @@ -495,7 +432,7 @@ TEST_F(BleScannerTest, TestDiscovery_MultipleObservers) {
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
|
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
| InvokeDiscoveryStartedCallback();
|
|
|
| MockBluetoothDeviceWithServiceData mock_bluetooth_device(
|
| @@ -586,7 +523,7 @@ TEST_F(BleScannerTest, TestAdapterPoweredChanged) {
|
|
|
| EXPECT_TRUE(ble_scanner_->RegisterScanFilterForDevice(test_devices_[0]));
|
| EXPECT_TRUE(ble_scanner_->IsDeviceRegistered(test_devices_[0].GetDeviceId()));
|
| - InvokeAdapterCallback();
|
| + AssertDiscoverySessionRequested();
|
|
|
| // The discovery session should have been requested but not yet initialized.
|
| EXPECT_TRUE(stored_discovery_filter_.get());
|
|
|