| Index: chromeos/components/tether/tether_host_response_recorder_unittest.cc
|
| diff --git a/chromeos/components/tether/tether_host_response_recorder_unittest.cc b/chromeos/components/tether/tether_host_response_recorder_unittest.cc
|
| index e2208042355ca6795126177b5c658825d4ba2996..9e398a62a18422f308b454a87db3cef2b3f2562d 100644
|
| --- a/chromeos/components/tether/tether_host_response_recorder_unittest.cc
|
| +++ b/chromeos/components/tether/tether_host_response_recorder_unittest.cc
|
| @@ -12,6 +12,24 @@ namespace chromeos {
|
|
|
| namespace tether {
|
|
|
| +namespace {
|
| +
|
| +class TestObserver : public TetherHostResponseRecorder::Observer {
|
| + public:
|
| + TestObserver() : num_callbacks_(0) {}
|
| + ~TestObserver() {}
|
| +
|
| + uint32_t num_callbacks() { return num_callbacks_; }
|
| +
|
| + // TetherHostResponseRecorder::Observer:
|
| + void OnPreviouslyConnectedHostIdsChanged() override { num_callbacks_++; }
|
| +
|
| + private:
|
| + uint32_t num_callbacks_;
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| class TetherHostResponseRecorderTest : public testing::Test {
|
| protected:
|
| TetherHostResponseRecorderTest()
|
| @@ -23,11 +41,16 @@ class TetherHostResponseRecorderTest : public testing::Test {
|
|
|
| recorder_ =
|
| base::MakeUnique<TetherHostResponseRecorder>(pref_service_.get());
|
| +
|
| + test_observer_ = base::WrapUnique(new TestObserver());
|
| + recorder_->AddObserver(test_observer_.get());
|
| }
|
|
|
| const std::vector<cryptauth::RemoteDevice> test_devices_;
|
|
|
| std::unique_ptr<TestingPrefServiceSimple> pref_service_;
|
| + std::unique_ptr<TestObserver> test_observer_;
|
| +
|
| std::unique_ptr<TetherHostResponseRecorder> recorder_;
|
|
|
| private:
|
| @@ -58,21 +81,33 @@ TEST_F(TetherHostResponseRecorderTest, TestTetherAvailabilityResponses) {
|
| test_devices_[6].GetDeviceId(), test_devices_[4].GetDeviceId(),
|
| test_devices_[2].GetDeviceId(), test_devices_[0].GetDeviceId()}),
|
| recorder_->GetPreviouslyAvailableHostIds());
|
| +
|
| + EXPECT_EQ(0u, test_observer_->num_callbacks());
|
| }
|
|
|
| TEST_F(TetherHostResponseRecorderTest, TestConnectTetheringResponses) {
|
| // Receive TetherAvailabilityResponses from devices in the following order:
|
| // 0, 2, 4, 6, 8, 1, 3, 5, 7, 9
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]);
|
| + EXPECT_EQ(1u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[2]);
|
| + EXPECT_EQ(2u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[4]);
|
| + EXPECT_EQ(3u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[6]);
|
| + EXPECT_EQ(4u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[8]);
|
| + EXPECT_EQ(5u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[1]);
|
| + EXPECT_EQ(6u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[3]);
|
| + EXPECT_EQ(7u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[5]);
|
| + EXPECT_EQ(8u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[7]);
|
| + EXPECT_EQ(9u, test_observer_->num_callbacks());
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[9]);
|
| + EXPECT_EQ(10u, test_observer_->num_callbacks());
|
|
|
| // The order, from most recent to least recent, should be:
|
| // 9, 7, 5, 3, 1, 8, 6, 4, 2, 0
|
| @@ -84,6 +119,8 @@ TEST_F(TetherHostResponseRecorderTest, TestConnectTetheringResponses) {
|
| test_devices_[6].GetDeviceId(), test_devices_[4].GetDeviceId(),
|
| test_devices_[2].GetDeviceId(), test_devices_[0].GetDeviceId()}),
|
| recorder_->GetPreviouslyConnectedHostIds());
|
| +
|
| + EXPECT_EQ(10u, test_observer_->num_callbacks());
|
| }
|
|
|
| TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) {
|
| @@ -94,6 +131,7 @@ TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) {
|
|
|
| // Receive a ConnectTetheringResponse from device 2.
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[2]);
|
| + EXPECT_EQ(1u, test_observer_->num_callbacks());
|
|
|
| // Receive TetherAvailabilityResponses from devices 0, 1, and 3.
|
| recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]);
|
| @@ -102,6 +140,12 @@ TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) {
|
|
|
| // Receive a ConnectTetheringResponse from device 0.
|
| recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]);
|
| + EXPECT_EQ(2u, test_observer_->num_callbacks());
|
| +
|
| + // Receive another ConnectTetheringResponse from device 0. Since it was
|
| + // already in the front of the list, this should not trigger a callback.
|
| + recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]);
|
| + EXPECT_EQ(2u, test_observer_->num_callbacks());
|
|
|
| // The order for TetherAvailabilityResponses, from most recent to least
|
| // recent, should be:
|
| @@ -118,8 +162,10 @@ TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) {
|
| EXPECT_EQ((std::vector<std::string>{test_devices_[0].GetDeviceId(),
|
| test_devices_[2].GetDeviceId()}),
|
| recorder_->GetPreviouslyConnectedHostIds());
|
| +
|
| + EXPECT_EQ(2u, test_observer_->num_callbacks());
|
| }
|
|
|
| } // namespace tether
|
|
|
| -} // namespace cryptauth
|
| +} // namespace chromeos
|
|
|