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

Side by Side Diff: components/precache/core/precache_database_unittest.cc

Issue 1551433002: Switch to standard integer types in components/, part 3 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "components/precache/core/precache_database.h" 5 #include "components/precache/core/precache_database.h"
6 6
7 #include <stdint.h>
8
7 #include <map> 9 #include <map>
8 10
9 #include "base/containers/hash_tables.h" 11 #include "base/containers/hash_tables.h"
10 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
11 #include "base/files/scoped_temp_dir.h" 13 #include "base/files/scoped_temp_dir.h"
12 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
13 #include "base/metrics/histogram_base.h" 15 #include "base/metrics/histogram_base.h"
14 #include "base/test/histogram_tester.h" 16 #include "base/test/histogram_tester.h"
15 #include "base/time/time.h" 17 #include "base/time/time.h"
16 #include "components/history/core/browser/history_constants.h" 18 #include "components/history/core/browser/history_constants.h"
17 #include "testing/gmock/include/gmock/gmock.h" 19 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
19 #include "url/gurl.h" 21 #include "url/gurl.h"
20 22
21 namespace { 23 namespace {
22 24
23 using ::testing::ContainerEq; 25 using ::testing::ContainerEq;
24 using ::testing::ElementsAre; 26 using ::testing::ElementsAre;
25 using base::Bucket; 27 using base::Bucket;
26 28
27 const GURL kURL("http://url.com"); 29 const GURL kURL("http://url.com");
28 const base::TimeDelta kLatency = base::TimeDelta::FromMilliseconds(5); 30 const base::TimeDelta kLatency = base::TimeDelta::FromMilliseconds(5);
29 const base::Time kFetchTime = base::Time() + base::TimeDelta::FromHours(1000); 31 const base::Time kFetchTime = base::Time() + base::TimeDelta::FromHours(1000);
30 const base::Time kOldFetchTime = kFetchTime - base::TimeDelta::FromDays(1); 32 const base::Time kOldFetchTime = kFetchTime - base::TimeDelta::FromDays(1);
31 const int64 kSize = 5000; 33 const int64_t kSize = 5000;
32 34
33 std::map<GURL, base::Time> BuildURLTableMap(const GURL& url, 35 std::map<GURL, base::Time> BuildURLTableMap(const GURL& url,
34 const base::Time& precache_time) { 36 const base::Time& precache_time) {
35 std::map<GURL, base::Time> url_table_map; 37 std::map<GURL, base::Time> url_table_map;
36 url_table_map[url] = precache_time; 38 url_table_map[url] = precache_time;
37 return url_table_map; 39 return url_table_map;
38 } 40 }
39 41
40 } // namespace 42 } // namespace
41 43
(...skipping 25 matching lines...) Expand all
67 69
68 PrecacheURLTable* precache_url_table() { 70 PrecacheURLTable* precache_url_table() {
69 return &precache_database_->precache_url_table_; 71 return &precache_database_->precache_url_table_;
70 } 72 }
71 73
72 // Convenience methods for recording different types of URL fetches. These 74 // Convenience methods for recording different types of URL fetches. These
73 // exist to improve the readability of the tests. 75 // exist to improve the readability of the tests.
74 void RecordPrecacheFromNetwork(const GURL& url, 76 void RecordPrecacheFromNetwork(const GURL& url,
75 base::TimeDelta latency, 77 base::TimeDelta latency,
76 const base::Time& fetch_time, 78 const base::Time& fetch_time,
77 int64 size); 79 int64_t size);
78 void RecordPrecacheFromCache(const GURL& url, const base::Time& fetch_time, 80 void RecordPrecacheFromCache(const GURL& url,
79 int64 size); 81 const base::Time& fetch_time,
82 int64_t size);
80 void RecordFetchFromNetwork(const GURL& url, 83 void RecordFetchFromNetwork(const GURL& url,
81 base::TimeDelta latency, 84 base::TimeDelta latency,
82 const base::Time& fetch_time, 85 const base::Time& fetch_time,
83 int64 size); 86 int64_t size);
84 void RecordFetchFromNetwork(const GURL& url, 87 void RecordFetchFromNetwork(const GURL& url,
85 base::TimeDelta latency, 88 base::TimeDelta latency,
86 const base::Time& fetch_time, 89 const base::Time& fetch_time,
87 int64 size, 90 int64_t size,
88 int host_rank); 91 int host_rank);
89 void RecordFetchFromNetworkCellular(const GURL& url, 92 void RecordFetchFromNetworkCellular(const GURL& url,
90 base::TimeDelta latency, 93 base::TimeDelta latency,
91 const base::Time& fetch_time, 94 const base::Time& fetch_time,
92 int64 size); 95 int64_t size);
93 void RecordFetchFromCache(const GURL& url, const base::Time& fetch_time, 96 void RecordFetchFromCache(const GURL& url,
94 int64 size); 97 const base::Time& fetch_time,
98 int64_t size);
95 void RecordFetchFromCacheCellular(const GURL& url, 99 void RecordFetchFromCacheCellular(const GURL& url,
96 const base::Time& fetch_time, int64 size); 100 const base::Time& fetch_time,
101 int64_t size);
97 102
98 // Must be declared first so that it is destroyed last. 103 // Must be declared first so that it is destroyed last.
99 base::ScopedTempDir scoped_temp_dir_; 104 base::ScopedTempDir scoped_temp_dir_;
100 105
101 // Having this MessageLoop member variable causes base::MessageLoop::current() 106 // Having this MessageLoop member variable causes base::MessageLoop::current()
102 // to be set properly. 107 // to be set properly.
103 base::MessageLoopForUI loop_; 108 base::MessageLoopForUI loop_;
104 109
105 scoped_refptr<PrecacheDatabase> precache_database_; 110 scoped_refptr<PrecacheDatabase> precache_database_;
106 base::HistogramTester histograms_; 111 base::HistogramTester histograms_;
107 base::HistogramTester::CountsMap expected_histogram_counts_; 112 base::HistogramTester::CountsMap expected_histogram_counts_;
108 113
109 void ExpectNewSample(const std::string& histogram_name, 114 void ExpectNewSample(const std::string& histogram_name,
110 base::HistogramBase::Sample sample) { 115 base::HistogramBase::Sample sample) {
111 histograms_.ExpectUniqueSample(histogram_name, sample, 1); 116 histograms_.ExpectUniqueSample(histogram_name, sample, 1);
112 expected_histogram_counts_[histogram_name]++; 117 expected_histogram_counts_[histogram_name]++;
113 } 118 }
114 119
115 void ExpectNoOtherSamples() { 120 void ExpectNoOtherSamples() {
116 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."), 121 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."),
117 ContainerEq(expected_histogram_counts_)); 122 ContainerEq(expected_histogram_counts_));
118 } 123 }
119 }; 124 };
120 125
121 void PrecacheDatabaseTest::RecordPrecacheFromNetwork( 126 void PrecacheDatabaseTest::RecordPrecacheFromNetwork(
122 const GURL& url, 127 const GURL& url,
123 base::TimeDelta latency, 128 base::TimeDelta latency,
124 const base::Time& fetch_time, 129 const base::Time& fetch_time,
125 int64 size) { 130 int64_t size) {
126 precache_database_->RecordURLPrefetch(url, latency, fetch_time, size, 131 precache_database_->RecordURLPrefetch(url, latency, fetch_time, size,
127 false /* was_cached */); 132 false /* was_cached */);
128 } 133 }
129 134
130 void PrecacheDatabaseTest::RecordPrecacheFromCache(const GURL& url, 135 void PrecacheDatabaseTest::RecordPrecacheFromCache(const GURL& url,
131 const base::Time& fetch_time, 136 const base::Time& fetch_time,
132 int64 size) { 137 int64_t size) {
133 precache_database_->RecordURLPrefetch(url, base::TimeDelta() /* latency */, 138 precache_database_->RecordURLPrefetch(url, base::TimeDelta() /* latency */,
134 fetch_time, size, 139 fetch_time, size,
135 true /* was_cached */); 140 true /* was_cached */);
136 } 141 }
137 142
138 void PrecacheDatabaseTest::RecordFetchFromNetwork(const GURL& url, 143 void PrecacheDatabaseTest::RecordFetchFromNetwork(const GURL& url,
139 base::TimeDelta latency, 144 base::TimeDelta latency,
140 const base::Time& fetch_time, 145 const base::Time& fetch_time,
141 int64 size) { 146 int64_t size) {
142 precache_database_->RecordURLNonPrefetch( 147 precache_database_->RecordURLNonPrefetch(
143 url, latency, fetch_time, size, false /* was_cached */, 148 url, latency, fetch_time, size, false /* was_cached */,
144 history::kMaxTopHosts, false /* is_connection_cellular */); 149 history::kMaxTopHosts, false /* is_connection_cellular */);
145 } 150 }
146 151
147 void PrecacheDatabaseTest::RecordFetchFromNetwork(const GURL& url, 152 void PrecacheDatabaseTest::RecordFetchFromNetwork(const GURL& url,
148 base::TimeDelta latency, 153 base::TimeDelta latency,
149 const base::Time& fetch_time, 154 const base::Time& fetch_time,
150 int64 size, 155 int64_t size,
151 int host_rank) { 156 int host_rank) {
152 precache_database_->RecordURLNonPrefetch(url, latency, fetch_time, size, 157 precache_database_->RecordURLNonPrefetch(url, latency, fetch_time, size,
153 false /* was_cached */, host_rank, 158 false /* was_cached */, host_rank,
154 false /* is_connection_cellular */); 159 false /* is_connection_cellular */);
155 } 160 }
156 161
157 void PrecacheDatabaseTest::RecordFetchFromNetworkCellular( 162 void PrecacheDatabaseTest::RecordFetchFromNetworkCellular(
158 const GURL& url, 163 const GURL& url,
159 base::TimeDelta latency, 164 base::TimeDelta latency,
160 const base::Time& fetch_time, 165 const base::Time& fetch_time,
161 int64 size) { 166 int64_t size) {
162 precache_database_->RecordURLNonPrefetch( 167 precache_database_->RecordURLNonPrefetch(
163 url, latency, fetch_time, size, false /* was_cached */, 168 url, latency, fetch_time, size, false /* was_cached */,
164 history::kMaxTopHosts, true /* is_connection_cellular */); 169 history::kMaxTopHosts, true /* is_connection_cellular */);
165 } 170 }
166 171
167 void PrecacheDatabaseTest::RecordFetchFromCache(const GURL& url, 172 void PrecacheDatabaseTest::RecordFetchFromCache(const GURL& url,
168 const base::Time& fetch_time, 173 const base::Time& fetch_time,
169 int64 size) { 174 int64_t size) {
170 precache_database_->RecordURLNonPrefetch( 175 precache_database_->RecordURLNonPrefetch(
171 url, base::TimeDelta() /* latency */, fetch_time, size, 176 url, base::TimeDelta() /* latency */, fetch_time, size,
172 true /* was_cached */, history::kMaxTopHosts, 177 true /* was_cached */, history::kMaxTopHosts,
173 false /* is_connection_cellular */); 178 false /* is_connection_cellular */);
174 } 179 }
175 180
176 void PrecacheDatabaseTest::RecordFetchFromCacheCellular( 181 void PrecacheDatabaseTest::RecordFetchFromCacheCellular(
177 const GURL& url, const base::Time& fetch_time, int64 size) { 182 const GURL& url,
183 const base::Time& fetch_time,
184 int64_t size) {
178 precache_database_->RecordURLNonPrefetch( 185 precache_database_->RecordURLNonPrefetch(
179 url, base::TimeDelta() /* latency */, fetch_time, size, 186 url, base::TimeDelta() /* latency */, fetch_time, size,
180 true /* was_cached */, history::kMaxTopHosts, 187 true /* was_cached */, history::kMaxTopHosts,
181 true /* is_connection_cellular */); 188 true /* is_connection_cellular */);
182 } 189 }
183 190
184 namespace { 191 namespace {
185 192
186 TEST_F(PrecacheDatabaseTest, PrecacheOverNetwork) { 193 TEST_F(PrecacheDatabaseTest, PrecacheOverNetwork) {
187 RecordPrecacheFromNetwork(kURL, kLatency, kFetchTime, kSize); 194 RecordPrecacheFromNetwork(kURL, kLatency, kFetchTime, kSize);
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 precache_url_table()->AddURL(GURL("http://old-precache.com"), k59DaysAgo); 318 precache_url_table()->AddURL(GURL("http://old-precache.com"), k59DaysAgo);
312 319
313 precache_database_->DeleteExpiredPrecacheHistory(kToday); 320 precache_database_->DeleteExpiredPrecacheHistory(kToday);
314 321
315 EXPECT_EQ(BuildURLTableMap(GURL("http://old-precache.com"), k59DaysAgo), 322 EXPECT_EQ(BuildURLTableMap(GURL("http://old-precache.com"), k59DaysAgo),
316 GetActualURLTableMap()); 323 GetActualURLTableMap());
317 } 324 }
318 325
319 TEST_F(PrecacheDatabaseTest, SampleInteraction) { 326 TEST_F(PrecacheDatabaseTest, SampleInteraction) {
320 const GURL kURL1("http://url1.com"); 327 const GURL kURL1("http://url1.com");
321 const int64 kSize1 = 1; 328 const int64_t kSize1 = 1;
322 const GURL kURL2("http://url2.com"); 329 const GURL kURL2("http://url2.com");
323 const int64 kSize2 = 2; 330 const int64_t kSize2 = 2;
324 const GURL kURL3("http://url3.com"); 331 const GURL kURL3("http://url3.com");
325 const int64 kSize3 = 3; 332 const int64_t kSize3 = 3;
326 const GURL kURL4("http://url4.com"); 333 const GURL kURL4("http://url4.com");
327 const int64 kSize4 = 4; 334 const int64_t kSize4 = 4;
328 const GURL kURL5("http://url5.com"); 335 const GURL kURL5("http://url5.com");
329 const int64 kSize5 = 5; 336 const int64_t kSize5 = 5;
330 337
331 RecordPrecacheFromNetwork(kURL1, kLatency, kFetchTime, kSize1); 338 RecordPrecacheFromNetwork(kURL1, kLatency, kFetchTime, kSize1);
332 RecordPrecacheFromNetwork(kURL2, kLatency, kFetchTime, kSize2); 339 RecordPrecacheFromNetwork(kURL2, kLatency, kFetchTime, kSize2);
333 RecordPrecacheFromNetwork(kURL3, kLatency, kFetchTime, kSize3); 340 RecordPrecacheFromNetwork(kURL3, kLatency, kFetchTime, kSize3);
334 RecordPrecacheFromNetwork(kURL4, kLatency, kFetchTime, kSize4); 341 RecordPrecacheFromNetwork(kURL4, kLatency, kFetchTime, kSize4);
335 342
336 RecordFetchFromCacheCellular(kURL1, kFetchTime, kSize1); 343 RecordFetchFromCacheCellular(kURL1, kFetchTime, kSize1);
337 RecordFetchFromCacheCellular(kURL1, kFetchTime, kSize1); 344 RecordFetchFromCacheCellular(kURL1, kFetchTime, kSize1);
338 RecordFetchFromNetworkCellular(kURL2, kLatency, kFetchTime, kSize2); 345 RecordFetchFromNetworkCellular(kURL2, kLatency, kFetchTime, kSize2);
339 RecordFetchFromNetworkCellular(kURL5, kLatency, kFetchTime, kSize5); 346 RecordFetchFromNetworkCellular(kURL5, kLatency, kFetchTime, kSize5);
(...skipping 29 matching lines...) Expand all
369 EXPECT_THAT(histograms_.GetAllSamples("Precache.Saved"), 376 EXPECT_THAT(histograms_.GetAllSamples("Precache.Saved"),
370 ElementsAre(Bucket(kSize1, 1), Bucket(kSize3, 1))); 377 ElementsAre(Bucket(kSize1, 1), Bucket(kSize3, 1)));
371 378
372 EXPECT_THAT(histograms_.GetAllSamples("Precache.Saved.Cellular"), 379 EXPECT_THAT(histograms_.GetAllSamples("Precache.Saved.Cellular"),
373 ElementsAre(Bucket(kSize1, 1))); 380 ElementsAre(Bucket(kSize1, 1)));
374 } 381 }
375 382
376 } // namespace 383 } // namespace
377 384
378 } // namespace precache 385 } // namespace precache
OLDNEW
« no previous file with comments | « components/precache/core/precache_database.cc ('k') | components/precache/core/precache_fetcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698