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

Side by Side Diff: chromeos/components/tether/tether_host_response_recorder_unittest.cc

Issue 2861443002: (Fix landed) Revert of [CrOS Tether] Create HostScanCache, which caches scan results and inserts... (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « chromeos/components/tether/tether_host_response_recorder.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/components/tether/tether_host_response_recorder.h" 5 #include "chromeos/components/tether/tether_host_response_recorder.h"
6 6
7 #include "components/cryptauth/remote_device_test_util.h" 7 #include "components/cryptauth/remote_device_test_util.h"
8 #include "components/prefs/testing_pref_service.h" 8 #include "components/prefs/testing_pref_service.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace chromeos { 11 namespace chromeos {
12 12
13 namespace tether { 13 namespace tether {
14 14
15 namespace {
16
17 class TestObserver : public TetherHostResponseRecorder::Observer {
18 public:
19 TestObserver() : num_callbacks_(0) {}
20 ~TestObserver() {}
21
22 uint32_t num_callbacks() { return num_callbacks_; }
23
24 // TetherHostResponseRecorder::Observer:
25 void OnPreviouslyConnectedHostIdsChanged() override { num_callbacks_++; }
26
27 private:
28 uint32_t num_callbacks_;
29 };
30
31 } // namespace
32
33 class TetherHostResponseRecorderTest : public testing::Test { 15 class TetherHostResponseRecorderTest : public testing::Test {
34 protected: 16 protected:
35 TetherHostResponseRecorderTest() 17 TetherHostResponseRecorderTest()
36 : test_devices_(cryptauth::GenerateTestRemoteDevices(10)) {} 18 : test_devices_(cryptauth::GenerateTestRemoteDevices(10)) {}
37 19
38 void SetUp() override { 20 void SetUp() override {
39 pref_service_ = base::MakeUnique<TestingPrefServiceSimple>(); 21 pref_service_ = base::MakeUnique<TestingPrefServiceSimple>();
40 TetherHostResponseRecorder::RegisterPrefs(pref_service_->registry()); 22 TetherHostResponseRecorder::RegisterPrefs(pref_service_->registry());
41 23
42 recorder_ = 24 recorder_ =
43 base::MakeUnique<TetherHostResponseRecorder>(pref_service_.get()); 25 base::MakeUnique<TetherHostResponseRecorder>(pref_service_.get());
44
45 test_observer_ = base::WrapUnique(new TestObserver());
46 recorder_->AddObserver(test_observer_.get());
47 } 26 }
48 27
49 const std::vector<cryptauth::RemoteDevice> test_devices_; 28 const std::vector<cryptauth::RemoteDevice> test_devices_;
50 29
51 std::unique_ptr<TestingPrefServiceSimple> pref_service_; 30 std::unique_ptr<TestingPrefServiceSimple> pref_service_;
52 std::unique_ptr<TestObserver> test_observer_;
53
54 std::unique_ptr<TetherHostResponseRecorder> recorder_; 31 std::unique_ptr<TetherHostResponseRecorder> recorder_;
55 32
56 private: 33 private:
57 DISALLOW_COPY_AND_ASSIGN(TetherHostResponseRecorderTest); 34 DISALLOW_COPY_AND_ASSIGN(TetherHostResponseRecorderTest);
58 }; 35 };
59 36
60 TEST_F(TetherHostResponseRecorderTest, TestTetherAvailabilityResponses) { 37 TEST_F(TetherHostResponseRecorderTest, TestTetherAvailabilityResponses) {
61 // Receive TetherAvailabilityResponses from devices in the following order: 38 // Receive TetherAvailabilityResponses from devices in the following order:
62 // 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 39 // 0, 2, 4, 6, 8, 1, 3, 5, 7, 9
63 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]); 40 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]);
(...skipping 10 matching lines...) Expand all
74 // The order, from most recent to least recent, should be: 51 // The order, from most recent to least recent, should be:
75 // 9, 7, 5, 3, 1, 8, 6, 4, 2, 0 52 // 9, 7, 5, 3, 1, 8, 6, 4, 2, 0
76 EXPECT_EQ( 53 EXPECT_EQ(
77 (std::vector<std::string>{ 54 (std::vector<std::string>{
78 test_devices_[9].GetDeviceId(), test_devices_[7].GetDeviceId(), 55 test_devices_[9].GetDeviceId(), test_devices_[7].GetDeviceId(),
79 test_devices_[5].GetDeviceId(), test_devices_[3].GetDeviceId(), 56 test_devices_[5].GetDeviceId(), test_devices_[3].GetDeviceId(),
80 test_devices_[1].GetDeviceId(), test_devices_[8].GetDeviceId(), 57 test_devices_[1].GetDeviceId(), test_devices_[8].GetDeviceId(),
81 test_devices_[6].GetDeviceId(), test_devices_[4].GetDeviceId(), 58 test_devices_[6].GetDeviceId(), test_devices_[4].GetDeviceId(),
82 test_devices_[2].GetDeviceId(), test_devices_[0].GetDeviceId()}), 59 test_devices_[2].GetDeviceId(), test_devices_[0].GetDeviceId()}),
83 recorder_->GetPreviouslyAvailableHostIds()); 60 recorder_->GetPreviouslyAvailableHostIds());
84
85 EXPECT_EQ(0u, test_observer_->num_callbacks());
86 } 61 }
87 62
88 TEST_F(TetherHostResponseRecorderTest, TestConnectTetheringResponses) { 63 TEST_F(TetherHostResponseRecorderTest, TestConnectTetheringResponses) {
89 // Receive TetherAvailabilityResponses from devices in the following order: 64 // Receive TetherAvailabilityResponses from devices in the following order:
90 // 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 65 // 0, 2, 4, 6, 8, 1, 3, 5, 7, 9
91 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]); 66 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]);
92 EXPECT_EQ(1u, test_observer_->num_callbacks());
93 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[2]); 67 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[2]);
94 EXPECT_EQ(2u, test_observer_->num_callbacks());
95 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[4]); 68 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[4]);
96 EXPECT_EQ(3u, test_observer_->num_callbacks());
97 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[6]); 69 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[6]);
98 EXPECT_EQ(4u, test_observer_->num_callbacks());
99 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[8]); 70 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[8]);
100 EXPECT_EQ(5u, test_observer_->num_callbacks());
101 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[1]); 71 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[1]);
102 EXPECT_EQ(6u, test_observer_->num_callbacks());
103 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[3]); 72 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[3]);
104 EXPECT_EQ(7u, test_observer_->num_callbacks());
105 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[5]); 73 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[5]);
106 EXPECT_EQ(8u, test_observer_->num_callbacks());
107 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[7]); 74 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[7]);
108 EXPECT_EQ(9u, test_observer_->num_callbacks());
109 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[9]); 75 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[9]);
110 EXPECT_EQ(10u, test_observer_->num_callbacks());
111 76
112 // The order, from most recent to least recent, should be: 77 // The order, from most recent to least recent, should be:
113 // 9, 7, 5, 3, 1, 8, 6, 4, 2, 0 78 // 9, 7, 5, 3, 1, 8, 6, 4, 2, 0
114 EXPECT_EQ( 79 EXPECT_EQ(
115 (std::vector<std::string>{ 80 (std::vector<std::string>{
116 test_devices_[9].GetDeviceId(), test_devices_[7].GetDeviceId(), 81 test_devices_[9].GetDeviceId(), test_devices_[7].GetDeviceId(),
117 test_devices_[5].GetDeviceId(), test_devices_[3].GetDeviceId(), 82 test_devices_[5].GetDeviceId(), test_devices_[3].GetDeviceId(),
118 test_devices_[1].GetDeviceId(), test_devices_[8].GetDeviceId(), 83 test_devices_[1].GetDeviceId(), test_devices_[8].GetDeviceId(),
119 test_devices_[6].GetDeviceId(), test_devices_[4].GetDeviceId(), 84 test_devices_[6].GetDeviceId(), test_devices_[4].GetDeviceId(),
120 test_devices_[2].GetDeviceId(), test_devices_[0].GetDeviceId()}), 85 test_devices_[2].GetDeviceId(), test_devices_[0].GetDeviceId()}),
121 recorder_->GetPreviouslyConnectedHostIds()); 86 recorder_->GetPreviouslyConnectedHostIds());
122
123 EXPECT_EQ(10u, test_observer_->num_callbacks());
124 } 87 }
125 88
126 TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) { 89 TEST_F(TetherHostResponseRecorderTest, TestBothResponseTypes) {
127 // Receive TetherAvailabilityResponses from devices 0, 1, and 2. 90 // Receive TetherAvailabilityResponses from devices 0, 1, and 2.
128 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]); 91 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]);
129 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[1]); 92 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[1]);
130 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[2]); 93 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[2]);
131 94
132 // Receive a ConnectTetheringResponse from device 2. 95 // Receive a ConnectTetheringResponse from device 2.
133 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[2]); 96 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[2]);
134 EXPECT_EQ(1u, test_observer_->num_callbacks());
135 97
136 // Receive TetherAvailabilityResponses from devices 0, 1, and 3. 98 // Receive TetherAvailabilityResponses from devices 0, 1, and 3.
137 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]); 99 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[0]);
138 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[1]); 100 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[1]);
139 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[3]); 101 recorder_->RecordSuccessfulTetherAvailabilityResponse(test_devices_[3]);
140 102
141 // Receive a ConnectTetheringResponse from device 0. 103 // Receive a ConnectTetheringResponse from device 0.
142 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]); 104 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]);
143 EXPECT_EQ(2u, test_observer_->num_callbacks());
144
145 // Receive another ConnectTetheringResponse from device 0. Since it was
146 // already in the front of the list, this should not trigger a callback.
147 recorder_->RecordSuccessfulConnectTetheringResponse(test_devices_[0]);
148 EXPECT_EQ(2u, test_observer_->num_callbacks());
149 105
150 // The order for TetherAvailabilityResponses, from most recent to least 106 // The order for TetherAvailabilityResponses, from most recent to least
151 // recent, should be: 107 // recent, should be:
152 // 3, 1, 0, 2 108 // 3, 1, 0, 2
153 EXPECT_EQ( 109 EXPECT_EQ(
154 (std::vector<std::string>{ 110 (std::vector<std::string>{
155 test_devices_[3].GetDeviceId(), test_devices_[1].GetDeviceId(), 111 test_devices_[3].GetDeviceId(), test_devices_[1].GetDeviceId(),
156 test_devices_[0].GetDeviceId(), test_devices_[2].GetDeviceId()}), 112 test_devices_[0].GetDeviceId(), test_devices_[2].GetDeviceId()}),
157 recorder_->GetPreviouslyAvailableHostIds()); 113 recorder_->GetPreviouslyAvailableHostIds());
158 114
159 // The order for ConnectTetheringResponses, from most recent to least 115 // The order for ConnectTetheringResponses, from most recent to least
160 // recent, should be: 116 // recent, should be:
161 // 0, 2 117 // 0, 2
162 EXPECT_EQ((std::vector<std::string>{test_devices_[0].GetDeviceId(), 118 EXPECT_EQ((std::vector<std::string>{test_devices_[0].GetDeviceId(),
163 test_devices_[2].GetDeviceId()}), 119 test_devices_[2].GetDeviceId()}),
164 recorder_->GetPreviouslyConnectedHostIds()); 120 recorder_->GetPreviouslyConnectedHostIds());
165
166 EXPECT_EQ(2u, test_observer_->num_callbacks());
167 } 121 }
168 122
169 } // namespace tether 123 } // namespace tether
170 124
171 } // namespace chromeos 125 } // namespace cryptauth
OLDNEW
« no previous file with comments | « chromeos/components/tether/tether_host_response_recorder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698