| Index: chromeos/components/tether/ble_advertiser_unittest.cc
|
| diff --git a/chromeos/components/tether/ble_advertiser_unittest.cc b/chromeos/components/tether/ble_advertiser_unittest.cc
|
| index cbd4f4fc209403e7f848fe73c72f53b747f432ee..439afd3c1158de41f1b24de7661b5c30e7b366e0 100644
|
| --- a/chromeos/components/tether/ble_advertiser_unittest.cc
|
| +++ b/chromeos/components/tether/ble_advertiser_unittest.cc
|
| @@ -112,6 +112,29 @@ std::vector<cryptauth::BeaconSeed> CreateFakeBeaconSeedsForDevice(
|
|
|
| class BleAdvertiserTest : public testing::Test {
|
| protected:
|
| + class TestBleAdvertisementUnregisterHandler
|
| + : public BleAdvertiser::BleAdvertisementUnregisterHandler {
|
| + public:
|
| + TestBleAdvertisementUnregisterHandler()
|
| + : num_advertisements_unregistered_(0) {}
|
| + ~TestBleAdvertisementUnregisterHandler() {}
|
| +
|
| + size_t num_advertisements_unregistered() {
|
| + return num_advertisements_unregistered_;
|
| + }
|
| +
|
| + // BleAdvertiser::BleAdvertisementUnregisterHandler:
|
| + void OnAdvertisementUnregisterSuccess() override {
|
| + num_advertisements_unregistered_++;
|
| + }
|
| +
|
| + void OnAdvertisementUnregisterFailure(
|
| + device::BluetoothAdvertisement::ErrorCode error_code) override {}
|
| +
|
| + private:
|
| + size_t num_advertisements_unregistered_;
|
| + };
|
| +
|
| BleAdvertiserTest()
|
| : fake_devices_(cryptauth::GenerateTestRemoteDevices(3)),
|
| fake_advertisements_(GenerateFakeAdvertisements()) {}
|
| @@ -132,6 +155,8 @@ class BleAdvertiserTest : public testing::Test {
|
| .WillByDefault(
|
| Invoke(this, &BleAdvertiserTest::OnAdapterRegisterAdvertisement));
|
|
|
| + test_unregister_handler_ = new TestBleAdvertisementUnregisterHandler();
|
| +
|
| mock_eid_generator_ = base::MakeUnique<cryptauth::MockEidGenerator>();
|
|
|
| mock_seed_fetcher_ =
|
| @@ -154,7 +179,8 @@ class BleAdvertiserTest : public testing::Test {
|
| base::MakeUnique<std::string>(fake_public_key));
|
|
|
| ble_advertiser_ = base::WrapUnique(new BleAdvertiser(
|
| - mock_adapter_, mock_eid_generator_.get(), mock_seed_fetcher_.get(),
|
| + mock_adapter_, base::WrapUnique(test_unregister_handler_),
|
| + mock_eid_generator_.get(), mock_seed_fetcher_.get(),
|
| mock_local_data_provider_.get()));
|
| }
|
|
|
| @@ -232,6 +258,7 @@ class BleAdvertiserTest : public testing::Test {
|
|
|
| scoped_refptr<StrictMock<MockBluetoothAdapterWithAdvertisements>>
|
| mock_adapter_;
|
| + TestBleAdvertisementUnregisterHandler* test_unregister_handler_;
|
| std::unique_ptr<cryptauth::MockEidGenerator> mock_eid_generator_;
|
| std::unique_ptr<cryptauth::MockRemoteBeaconSeedFetcher> mock_seed_fetcher_;
|
| std::unique_ptr<MockLocalDeviceDataProvider> mock_local_data_provider_;
|
| @@ -348,6 +375,7 @@ TEST_F(BleAdvertiserTest, AdvertisementRegisteredSuccessfully) {
|
| // Now, unregister.
|
| EXPECT_TRUE(ble_advertiser_->StopAdvertisingToDevice(fake_devices_[0]));
|
| EXPECT_FALSE(individual_advertisements_.size());
|
| + EXPECT_EQ(1u, test_unregister_handler_->num_advertisements_unregistered());
|
| }
|
|
|
| TEST_F(BleAdvertiserTest, AdvertisementRegisteredSuccessfully_TwoDevices) {
|
| @@ -386,7 +414,11 @@ TEST_F(BleAdvertiserTest, AdvertisementRegisteredSuccessfully_TwoDevices) {
|
|
|
| // Now, unregister.
|
| EXPECT_TRUE(ble_advertiser_->StopAdvertisingToDevice(fake_devices_[0]));
|
| + EXPECT_EQ(1u, test_unregister_handler_->num_advertisements_unregistered());
|
| +
|
| EXPECT_TRUE(ble_advertiser_->StopAdvertisingToDevice(fake_devices_[1]));
|
| + EXPECT_EQ(2u, test_unregister_handler_->num_advertisements_unregistered());
|
| +
|
| EXPECT_FALSE(individual_advertisements_.size());
|
| }
|
|
|
| @@ -409,9 +441,14 @@ TEST_F(BleAdvertiserTest, TooManyDevicesRegistered) {
|
| // Should fail on the third device.
|
| EXPECT_FALSE(ble_advertiser_->StartAdvertisingToDevice(fake_devices_[2]));
|
|
|
| - // Now, unregister one; registering the third device should succeed at this
|
| - // point.
|
| + // Now, stop advertising to one; registering the third device should succeed
|
| + // at this point.
|
| EXPECT_TRUE(ble_advertiser_->StopAdvertisingToDevice(fake_devices_[0]));
|
| +
|
| + // Because the advertisement was never registered to begin with, it also
|
| + // should never have been unregistered.
|
| + EXPECT_EQ(0u, test_unregister_handler_->num_advertisements_unregistered());
|
| +
|
| EXPECT_TRUE(ble_advertiser_->StartAdvertisingToDevice(fake_devices_[2]));
|
| }
|
|
|
| @@ -475,6 +512,7 @@ TEST_F(BleAdvertiserTest, AdvertisementReleased) {
|
|
|
| // Now, unregister.
|
| EXPECT_TRUE(ble_advertiser_->StopAdvertisingToDevice(fake_devices_[0]));
|
| + EXPECT_EQ(1u, test_unregister_handler_->num_advertisements_unregistered());
|
| EXPECT_FALSE(individual_advertisements_.size());
|
| }
|
|
|
|
|