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

Side by Side Diff: net/dns/mdns_cache_unittest.cc

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 | « net/dns/mapped_host_resolver_unittest.cc ('k') | net/dns/mdns_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "net/dns/mdns_cache.h"
6
5 #include <algorithm> 7 #include <algorithm>
8 #include <utility>
6 9
7 #include "base/bind.h" 10 #include "base/bind.h"
8 #include "net/dns/dns_response.h" 11 #include "net/dns/dns_response.h"
9 #include "net/dns/dns_test_util.h" 12 #include "net/dns/dns_test_util.h"
10 #include "net/dns/mdns_cache.h"
11 #include "net/dns/record_parsed.h" 13 #include "net/dns/record_parsed.h"
12 #include "net/dns/record_rdata.h" 14 #include "net/dns/record_rdata.h"
13 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
15 17
16 using ::testing::Return; 18 using ::testing::Return;
17 using ::testing::StrictMock; 19 using ::testing::StrictMock;
18 20
19 namespace net { 21 namespace net {
20 22
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 sizeof(dns_protocol::Header)); 122 sizeof(dns_protocol::Header));
121 parser.SkipQuestion(); 123 parser.SkipQuestion();
122 124
123 scoped_ptr<const RecordParsed> record1; 125 scoped_ptr<const RecordParsed> record1;
124 scoped_ptr<const RecordParsed> record2; 126 scoped_ptr<const RecordParsed> record2;
125 std::vector<const RecordParsed*> results; 127 std::vector<const RecordParsed*> results;
126 128
127 record1 = RecordParsed::CreateFrom(&parser, default_time_); 129 record1 = RecordParsed::CreateFrom(&parser, default_time_);
128 record2 = RecordParsed::CreateFrom(&parser, default_time_); 130 record2 = RecordParsed::CreateFrom(&parser, default_time_);
129 131
130 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record1.Pass())); 132 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
131 133
132 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record2.Pass())); 134 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record2)));
133 135
134 cache_.FindDnsRecords(ARecordRdata::kType, "ghs.l.google.com", &results, 136 cache_.FindDnsRecords(ARecordRdata::kType, "ghs.l.google.com", &results,
135 default_time_); 137 default_time_);
136 138
137 EXPECT_EQ(1u, results.size()); 139 EXPECT_EQ(1u, results.size());
138 EXPECT_EQ(default_time_, results.front()->time_created()); 140 EXPECT_EQ(default_time_, results.front()->time_created());
139 141
140 EXPECT_EQ("ghs.l.google.com", results.front()->name()); 142 EXPECT_EQ("ghs.l.google.com", results.front()->name());
141 143
142 results.clear(); 144 results.clear();
(...skipping 14 matching lines...) Expand all
157 std::vector<const RecordParsed*> results; 159 std::vector<const RecordParsed*> results;
158 const RecordParsed* record_to_be_deleted; 160 const RecordParsed* record_to_be_deleted;
159 161
160 record1 = RecordParsed::CreateFrom(&parser, default_time_); 162 record1 = RecordParsed::CreateFrom(&parser, default_time_);
161 base::TimeDelta ttl1 = base::TimeDelta::FromSeconds(record1->ttl()); 163 base::TimeDelta ttl1 = base::TimeDelta::FromSeconds(record1->ttl());
162 164
163 record2 = RecordParsed::CreateFrom(&parser, default_time_); 165 record2 = RecordParsed::CreateFrom(&parser, default_time_);
164 base::TimeDelta ttl2 = base::TimeDelta::FromSeconds(record2->ttl()); 166 base::TimeDelta ttl2 = base::TimeDelta::FromSeconds(record2->ttl());
165 record_to_be_deleted = record2.get(); 167 record_to_be_deleted = record2.get();
166 168
167 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record1.Pass())); 169 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
168 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record2.Pass())); 170 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record2)));
169 171
170 cache_.FindDnsRecords(ARecordRdata::kType, "ghs.l.google.com", &results, 172 cache_.FindDnsRecords(ARecordRdata::kType, "ghs.l.google.com", &results,
171 default_time_); 173 default_time_);
172 174
173 EXPECT_EQ(1u, results.size()); 175 EXPECT_EQ(1u, results.size());
174 176
175 EXPECT_EQ(default_time_ + ttl2, cache_.next_expiration()); 177 EXPECT_EQ(default_time_ + ttl2, cache_.next_expiration());
176 178
177 179
178 cache_.FindDnsRecords(ARecordRdata::kType, "ghs.l.google.com", &results, 180 cache_.FindDnsRecords(ARecordRdata::kType, "ghs.l.google.com", &results,
(...skipping 23 matching lines...) Expand all
202 sizeof(kTestResponsesDifferentAnswers), 204 sizeof(kTestResponsesDifferentAnswers),
203 0); 205 0);
204 206
205 scoped_ptr<const RecordParsed> record1; 207 scoped_ptr<const RecordParsed> record1;
206 scoped_ptr<const RecordParsed> record2; 208 scoped_ptr<const RecordParsed> record2;
207 std::vector<const RecordParsed*> results; 209 std::vector<const RecordParsed*> results;
208 210
209 record1 = RecordParsed::CreateFrom(&parser, default_time_); 211 record1 = RecordParsed::CreateFrom(&parser, default_time_);
210 record2 = RecordParsed::CreateFrom(&parser, default_time_); 212 record2 = RecordParsed::CreateFrom(&parser, default_time_);
211 213
212 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record1.Pass())); 214 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
213 EXPECT_EQ(MDnsCache::RecordChanged, 215 EXPECT_EQ(MDnsCache::RecordChanged,
214 cache_.UpdateDnsRecord(record2.Pass())); 216 cache_.UpdateDnsRecord(std::move(record2)));
215 } 217 }
216 218
217 // Test that a new record replacing an otherwise identical one already in the 219 // Test that a new record replacing an otherwise identical one already in the
218 // cache causes the cache to output a "no change" event. 220 // cache causes the cache to output a "no change" event.
219 TEST_F(MDnsCacheTest, RecordNoChange) { 221 TEST_F(MDnsCacheTest, RecordNoChange) {
220 DnsRecordParser parser(kTestResponsesSameAnswers, 222 DnsRecordParser parser(kTestResponsesSameAnswers,
221 sizeof(kTestResponsesSameAnswers), 223 sizeof(kTestResponsesSameAnswers),
222 0); 224 0);
223 225
224 scoped_ptr<const RecordParsed> record1; 226 scoped_ptr<const RecordParsed> record1;
225 scoped_ptr<const RecordParsed> record2; 227 scoped_ptr<const RecordParsed> record2;
226 std::vector<const RecordParsed*> results; 228 std::vector<const RecordParsed*> results;
227 229
228 record1 = RecordParsed::CreateFrom(&parser, default_time_); 230 record1 = RecordParsed::CreateFrom(&parser, default_time_);
229 record2 = RecordParsed::CreateFrom(&parser, default_time_ + 231 record2 = RecordParsed::CreateFrom(&parser, default_time_ +
230 base::TimeDelta::FromSeconds(1)); 232 base::TimeDelta::FromSeconds(1));
231 233
232 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record1.Pass())); 234 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
233 EXPECT_EQ(MDnsCache::NoChange, cache_.UpdateDnsRecord(record2.Pass())); 235 EXPECT_EQ(MDnsCache::NoChange, cache_.UpdateDnsRecord(std::move(record2)));
234 } 236 }
235 237
236 // Test that the next expiration time of the cache is updated properly on record 238 // Test that the next expiration time of the cache is updated properly on record
237 // insertion. 239 // insertion.
238 TEST_F(MDnsCacheTest, RecordPreemptExpirationTime) { 240 TEST_F(MDnsCacheTest, RecordPreemptExpirationTime) {
239 DnsRecordParser parser(kTestResponsesSameAnswers, 241 DnsRecordParser parser(kTestResponsesSameAnswers,
240 sizeof(kTestResponsesSameAnswers), 242 sizeof(kTestResponsesSameAnswers),
241 0); 243 0);
242 244
243 scoped_ptr<const RecordParsed> record1; 245 scoped_ptr<const RecordParsed> record1;
244 scoped_ptr<const RecordParsed> record2; 246 scoped_ptr<const RecordParsed> record2;
245 std::vector<const RecordParsed*> results; 247 std::vector<const RecordParsed*> results;
246 248
247 record1 = RecordParsed::CreateFrom(&parser, default_time_); 249 record1 = RecordParsed::CreateFrom(&parser, default_time_);
248 record2 = RecordParsed::CreateFrom(&parser, default_time_); 250 record2 = RecordParsed::CreateFrom(&parser, default_time_);
249 base::TimeDelta ttl1 = base::TimeDelta::FromSeconds(record1->ttl()); 251 base::TimeDelta ttl1 = base::TimeDelta::FromSeconds(record1->ttl());
250 base::TimeDelta ttl2 = base::TimeDelta::FromSeconds(record2->ttl()); 252 base::TimeDelta ttl2 = base::TimeDelta::FromSeconds(record2->ttl());
251 253
252 EXPECT_EQ(base::Time(), cache_.next_expiration()); 254 EXPECT_EQ(base::Time(), cache_.next_expiration());
253 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record2.Pass())); 255 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record2)));
254 EXPECT_EQ(default_time_ + ttl2, cache_.next_expiration()); 256 EXPECT_EQ(default_time_ + ttl2, cache_.next_expiration());
255 EXPECT_EQ(MDnsCache::NoChange, cache_.UpdateDnsRecord(record1.Pass())); 257 EXPECT_EQ(MDnsCache::NoChange, cache_.UpdateDnsRecord(std::move(record1)));
256 EXPECT_EQ(default_time_ + ttl1, cache_.next_expiration()); 258 EXPECT_EQ(default_time_ + ttl1, cache_.next_expiration());
257 } 259 }
258 260
259 // Test that the cache handles mDNS "goodbye" packets correctly, not adding the 261 // Test that the cache handles mDNS "goodbye" packets correctly, not adding the
260 // records to the cache if they are not already there, and eventually removing 262 // records to the cache if they are not already there, and eventually removing
261 // records from the cache if they are. 263 // records from the cache if they are.
262 TEST_F(MDnsCacheTest, GoodbyePacket) { 264 TEST_F(MDnsCacheTest, GoodbyePacket) {
263 DnsRecordParser parser(kTestResponsesGoodbyePacket, 265 DnsRecordParser parser(kTestResponsesGoodbyePacket,
264 sizeof(kTestResponsesGoodbyePacket), 266 sizeof(kTestResponsesGoodbyePacket),
265 0); 267 0);
266 268
267 scoped_ptr<const RecordParsed> record_goodbye; 269 scoped_ptr<const RecordParsed> record_goodbye;
268 scoped_ptr<const RecordParsed> record_hello; 270 scoped_ptr<const RecordParsed> record_hello;
269 scoped_ptr<const RecordParsed> record_goodbye2; 271 scoped_ptr<const RecordParsed> record_goodbye2;
270 std::vector<const RecordParsed*> results; 272 std::vector<const RecordParsed*> results;
271 273
272 record_goodbye = RecordParsed::CreateFrom(&parser, default_time_); 274 record_goodbye = RecordParsed::CreateFrom(&parser, default_time_);
273 record_hello = RecordParsed::CreateFrom(&parser, default_time_); 275 record_hello = RecordParsed::CreateFrom(&parser, default_time_);
274 parser = DnsRecordParser(kTestResponsesGoodbyePacket, 276 parser = DnsRecordParser(kTestResponsesGoodbyePacket,
275 sizeof(kTestResponsesGoodbyePacket), 277 sizeof(kTestResponsesGoodbyePacket),
276 0); 278 0);
277 record_goodbye2 = RecordParsed::CreateFrom(&parser, default_time_); 279 record_goodbye2 = RecordParsed::CreateFrom(&parser, default_time_);
278 280
279 base::TimeDelta ttl = base::TimeDelta::FromSeconds(record_hello->ttl()); 281 base::TimeDelta ttl = base::TimeDelta::FromSeconds(record_hello->ttl());
280 282
281 EXPECT_EQ(base::Time(), cache_.next_expiration()); 283 EXPECT_EQ(base::Time(), cache_.next_expiration());
282 EXPECT_EQ(MDnsCache::NoChange, cache_.UpdateDnsRecord(record_goodbye.Pass())); 284 EXPECT_EQ(MDnsCache::NoChange,
285 cache_.UpdateDnsRecord(std::move(record_goodbye)));
283 EXPECT_EQ(base::Time(), cache_.next_expiration()); 286 EXPECT_EQ(base::Time(), cache_.next_expiration());
284 EXPECT_EQ(MDnsCache::RecordAdded, 287 EXPECT_EQ(MDnsCache::RecordAdded,
285 cache_.UpdateDnsRecord(record_hello.Pass())); 288 cache_.UpdateDnsRecord(std::move(record_hello)));
286 EXPECT_EQ(default_time_ + ttl, cache_.next_expiration()); 289 EXPECT_EQ(default_time_ + ttl, cache_.next_expiration());
287 EXPECT_EQ(MDnsCache::NoChange, 290 EXPECT_EQ(MDnsCache::NoChange,
288 cache_.UpdateDnsRecord(record_goodbye2.Pass())); 291 cache_.UpdateDnsRecord(std::move(record_goodbye2)));
289 EXPECT_EQ(default_time_ + base::TimeDelta::FromSeconds(1), 292 EXPECT_EQ(default_time_ + base::TimeDelta::FromSeconds(1),
290 cache_.next_expiration()); 293 cache_.next_expiration());
291 } 294 }
292 295
293 TEST_F(MDnsCacheTest, AnyRRType) { 296 TEST_F(MDnsCacheTest, AnyRRType) {
294 DnsRecordParser parser(kTestResponseTwoRecords, 297 DnsRecordParser parser(kTestResponseTwoRecords,
295 sizeof(kTestResponseTwoRecords), 298 sizeof(kTestResponseTwoRecords),
296 0); 299 0);
297 300
298 scoped_ptr<const RecordParsed> record1; 301 scoped_ptr<const RecordParsed> record1;
299 scoped_ptr<const RecordParsed> record2; 302 scoped_ptr<const RecordParsed> record2;
300 std::vector<const RecordParsed*> results; 303 std::vector<const RecordParsed*> results;
301 304
302 record1 = RecordParsed::CreateFrom(&parser, default_time_); 305 record1 = RecordParsed::CreateFrom(&parser, default_time_);
303 record2 = RecordParsed::CreateFrom(&parser, default_time_); 306 record2 = RecordParsed::CreateFrom(&parser, default_time_);
304 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record1.Pass())); 307 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
305 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record2.Pass())); 308 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record2)));
306 309
307 cache_.FindDnsRecords(0, "ghs.l.google.com", &results, default_time_); 310 cache_.FindDnsRecords(0, "ghs.l.google.com", &results, default_time_);
308 311
309 EXPECT_EQ(2u, results.size()); 312 EXPECT_EQ(2u, results.size());
310 EXPECT_EQ(default_time_, results.front()->time_created()); 313 EXPECT_EQ(default_time_, results.front()->time_created());
311 314
312 EXPECT_EQ("ghs.l.google.com", results[0]->name()); 315 EXPECT_EQ("ghs.l.google.com", results[0]->name());
313 EXPECT_EQ("ghs.l.google.com", results[1]->name()); 316 EXPECT_EQ("ghs.l.google.com", results[1]->name());
314 EXPECT_EQ(dns_protocol::kTypeA, 317 EXPECT_EQ(dns_protocol::kTypeA,
315 std::min(results[0]->type(), results[1]->type())); 318 std::min(results[0]->type(), results[1]->type()));
316 EXPECT_EQ(dns_protocol::kTypeAAAA, 319 EXPECT_EQ(dns_protocol::kTypeAAAA,
317 std::max(results[0]->type(), results[1]->type())); 320 std::max(results[0]->type(), results[1]->type()));
318 } 321 }
319 322
320 TEST_F(MDnsCacheTest, RemoveRecord) { 323 TEST_F(MDnsCacheTest, RemoveRecord) {
321 DnsRecordParser parser(kT1ResponseDatagram, sizeof(kT1ResponseDatagram), 324 DnsRecordParser parser(kT1ResponseDatagram, sizeof(kT1ResponseDatagram),
322 sizeof(dns_protocol::Header)); 325 sizeof(dns_protocol::Header));
323 parser.SkipQuestion(); 326 parser.SkipQuestion();
324 327
325 scoped_ptr<const RecordParsed> record1; 328 scoped_ptr<const RecordParsed> record1;
326 std::vector<const RecordParsed*> results; 329 std::vector<const RecordParsed*> results;
327 330
328 record1 = RecordParsed::CreateFrom(&parser, default_time_); 331 record1 = RecordParsed::CreateFrom(&parser, default_time_);
329 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(record1.Pass())); 332 EXPECT_EQ(MDnsCache::RecordAdded, cache_.UpdateDnsRecord(std::move(record1)));
330 333
331 cache_.FindDnsRecords(dns_protocol::kTypeCNAME, "codereview.chromium.org", 334 cache_.FindDnsRecords(dns_protocol::kTypeCNAME, "codereview.chromium.org",
332 &results, default_time_); 335 &results, default_time_);
333 336
334 EXPECT_EQ(1u, results.size()); 337 EXPECT_EQ(1u, results.size());
335 338
336 scoped_ptr<const RecordParsed> record_out = 339 scoped_ptr<const RecordParsed> record_out =
337 cache_.RemoveRecord(results.front()); 340 cache_.RemoveRecord(results.front());
338 341
339 EXPECT_EQ(record_out.get(), results.front()); 342 EXPECT_EQ(record_out.get(), results.front());
340 343
341 cache_.FindDnsRecords(dns_protocol::kTypeCNAME, "codereview.chromium.org", 344 cache_.FindDnsRecords(dns_protocol::kTypeCNAME, "codereview.chromium.org",
342 &results, default_time_); 345 &results, default_time_);
343 346
344 EXPECT_EQ(0u, results.size()); 347 EXPECT_EQ(0u, results.size());
345 } 348 }
346 349
347 } // namespace net 350 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/mapped_host_resolver_unittest.cc ('k') | net/dns/mdns_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698