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

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

Issue 2229983002: Send the list of used and unused resources for precache (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added-test Created 4 years, 4 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/precache/core/precache_referrer_host_table.h"
6
7 #include <map>
8 #include <memory>
9
10 #include "base/compiler_specific.h"
11 #include "base/time/time.h"
12 #include "sql/connection.h"
13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace precache {
17
18 namespace {
19
20 const char* kReffererHostFoo = "foo.com";
21 const char* kReffererHostBar = "bar.com";
22 const int64_t kManifestIdFoo = 1001;
23 const int64_t kManifestIdBar = 1002;
24
25 class PrecacheReferrerHostTableTest : public testing::Test {
26 public:
27 PrecacheReferrerHostTableTest() {}
28 ~PrecacheReferrerHostTableTest() override {}
29
30 protected:
31 void SetUp() override {
32 precache_referrer_host_table_.reset(new PrecacheReferrerHostTable());
33 db_.reset(new sql::Connection());
34 ASSERT_TRUE(db_->OpenInMemory());
35 precache_referrer_host_table_->Init(db_.get());
36 }
37
38 std::unique_ptr<PrecacheReferrerHostTable> precache_referrer_host_table_;
39 std::unique_ptr<sql::Connection> db_;
40 };
41
42 TEST_F(PrecacheReferrerHostTableTest, GetReferrerHost) {
43 const base::Time kTimeFoo = base::Time::FromInternalValue(100);
44 const base::Time kTimeBar = base::Time::FromInternalValue(200);
45 std::map<std::string, PrecacheReferrerHostEntry> expected_entries;
46
47 // Add new referrer hosts.
48 int64_t foo_id = precache_referrer_host_table_->UpdateReferrerHost(
49 kReffererHostFoo, kManifestIdFoo, kTimeFoo);
50 int64_t bar_id = precache_referrer_host_table_->UpdateReferrerHost(
51 kReffererHostBar, kManifestIdBar, kTimeBar);
52
53 EXPECT_NE(-1, foo_id);
54 EXPECT_NE(-1, bar_id);
55
56 EXPECT_EQ(PrecacheReferrerHostEntry(foo_id, kReffererHostFoo, kManifestIdFoo,
57 kTimeFoo),
58 precache_referrer_host_table_->GetReferrerHost(kReffererHostFoo));
59 EXPECT_EQ(PrecacheReferrerHostEntry(bar_id, kReffererHostBar, kManifestIdBar,
60 kTimeBar),
61 precache_referrer_host_table_->GetReferrerHost(kReffererHostBar));
62
63 expected_entries.emplace(kReffererHostFoo,
64 PrecacheReferrerHostEntry(foo_id, kReffererHostFoo,
65 kManifestIdFoo, kTimeFoo));
66 expected_entries.emplace(kReffererHostBar,
67 PrecacheReferrerHostEntry(bar_id, kReffererHostBar,
68 kManifestIdBar, kTimeBar));
69 EXPECT_THAT(expected_entries,
70 ::testing::ContainerEq(
71 precache_referrer_host_table_->GetAllDataForTesting()));
72 }
73
74 TEST_F(PrecacheReferrerHostTableTest, UpdateReferrerHost) {
75 const base::Time kTimeFoo = base::Time::FromInternalValue(100);
76 const base::Time kTimeBar = base::Time::FromInternalValue(200);
77 std::map<std::string, PrecacheReferrerHostEntry> expected_entries;
78
79 // Add new referrer hosts.
80 int64_t foo_id = precache_referrer_host_table_->UpdateReferrerHost(
81 kReffererHostFoo, kManifestIdFoo, kTimeFoo);
82 int64_t bar_id = precache_referrer_host_table_->UpdateReferrerHost(
83 kReffererHostBar, kManifestIdBar, kTimeBar);
84
85 EXPECT_NE(-1, foo_id);
86 EXPECT_NE(-1, bar_id);
87
88 expected_entries.emplace(kReffererHostFoo,
89 PrecacheReferrerHostEntry(foo_id, kReffererHostFoo,
90 kManifestIdFoo, kTimeFoo));
91 expected_entries.emplace(kReffererHostBar,
92 PrecacheReferrerHostEntry(bar_id, kReffererHostBar,
93 kManifestIdBar, kTimeBar));
94 EXPECT_THAT(expected_entries,
95 ::testing::ContainerEq(
96 precache_referrer_host_table_->GetAllDataForTesting()));
97
98 // Updating referrer hosts should return the same ID.
99 EXPECT_EQ(foo_id, precache_referrer_host_table_->UpdateReferrerHost(
100 kReffererHostFoo, kManifestIdFoo, kTimeFoo));
101 EXPECT_EQ(bar_id, precache_referrer_host_table_->UpdateReferrerHost(
102 kReffererHostBar, kManifestIdBar, kTimeBar));
103 EXPECT_THAT(expected_entries,
104 ::testing::ContainerEq(
105 precache_referrer_host_table_->GetAllDataForTesting()));
106 }
107
108 TEST_F(PrecacheReferrerHostTableTest, DeleteAll) {
109 const base::Time kTimeFoo = base::Time::FromInternalValue(100);
110 const base::Time kTimeBar = base::Time::FromInternalValue(200);
111 std::map<std::string, PrecacheReferrerHostEntry> expected_entries;
112
113 // Add new referrer hosts.
114 int64_t foo_id = precache_referrer_host_table_->UpdateReferrerHost(
115 kReffererHostFoo, kManifestIdFoo, kTimeFoo);
116 int64_t bar_id = precache_referrer_host_table_->UpdateReferrerHost(
117 kReffererHostBar, kManifestIdBar, kTimeBar);
118
119 EXPECT_NE(-1, foo_id);
120 EXPECT_NE(-1, bar_id);
121
122 expected_entries.emplace(kReffererHostFoo,
123 PrecacheReferrerHostEntry(foo_id, kReffererHostFoo,
124 kManifestIdFoo, kTimeFoo));
125 expected_entries.emplace(kReffererHostBar,
126 PrecacheReferrerHostEntry(bar_id, kReffererHostBar,
127 kManifestIdBar, kTimeBar));
128 EXPECT_THAT(expected_entries,
129 ::testing::ContainerEq(
130 precache_referrer_host_table_->GetAllDataForTesting()));
131
132 precache_referrer_host_table_->DeleteAll();
133
134 EXPECT_EQ(0UL, precache_referrer_host_table_->GetAllDataForTesting().size());
135 }
136
137 TEST_F(PrecacheReferrerHostTableTest, DeleteAllEntriesBefore) {
138 const base::Time kOldTime = base::Time::FromInternalValue(10);
139 const base::Time kBeforeTime = base::Time::FromInternalValue(20);
140 const base::Time kEndTime = base::Time::FromInternalValue(30);
141 const base::Time kAfterTime = base::Time::FromInternalValue(40);
142
143 precache_referrer_host_table_->UpdateReferrerHost("old.com", 1, kOldTime);
144 precache_referrer_host_table_->UpdateReferrerHost("before.com", 2,
145 kBeforeTime);
146 precache_referrer_host_table_->UpdateReferrerHost("end.com", 3, kEndTime);
147 precache_referrer_host_table_->UpdateReferrerHost("after.com", 4, kAfterTime);
148
149 precache_referrer_host_table_->DeleteAllEntriesBefore(kEndTime);
150
151 const auto actual_entries =
152 precache_referrer_host_table_->GetAllDataForTesting();
153 EXPECT_EQ(2UL, actual_entries.size());
154 EXPECT_NE(actual_entries.end(), actual_entries.find("end.com"));
155 EXPECT_NE(actual_entries.end(), actual_entries.find("after.com"));
156 }
157
158 } // namespace
159
160 } // namespace precache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698