| 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()); | 
| } | 
|  | 
|  |