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

Unified Diff: chromeos/components/tether/ble_advertiser_unittest.cc

Issue 2782743002: [CrOS Tether] Ensure that BleAdvertiser explicitly calls Unregister() on all advertisements after t… (Closed)
Patch Set: Remove a few out of date comments. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/components/tether/ble_advertiser.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
}
« no previous file with comments | « chromeos/components/tether/ble_advertiser.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698