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

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: Addressed nits Created 4 years, 3 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[kReffererHostFoo] = PrecacheReferrerHostEntry(
64 foo_id, kReffererHostFoo, kManifestIdFoo, kTimeFoo);
65 expected_entries[kReffererHostBar] = PrecacheReferrerHostEntry(
66 bar_id, kReffererHostBar, kManifestIdBar, kTimeBar);
67 EXPECT_THAT(expected_entries,
68 ::testing::ContainerEq(
69 precache_referrer_host_table_->GetAllDataForTesting()));
70 }
71
72 TEST_F(PrecacheReferrerHostTableTest, UpdateReferrerHost) {
73 const base::Time kTimeFoo = base::Time::FromInternalValue(100);
74 const base::Time kTimeBar = base::Time::FromInternalValue(200);
75 std::map<std::string, PrecacheReferrerHostEntry> expected_entries;
76
77 // Add new referrer hosts.
78 int64_t foo_id = precache_referrer_host_table_->UpdateReferrerHost(
79 kReffererHostFoo, kManifestIdFoo, kTimeFoo);
80 int64_t bar_id = precache_referrer_host_table_->UpdateReferrerHost(
81 kReffererHostBar, kManifestIdBar, kTimeBar);
82
83 EXPECT_NE(-1, foo_id);
84 EXPECT_NE(-1, bar_id);
85
86 expected_entries[kReffererHostFoo] = PrecacheReferrerHostEntry(
87 foo_id, kReffererHostFoo, kManifestIdFoo, kTimeFoo);
88 expected_entries[kReffererHostBar] = PrecacheReferrerHostEntry(
89 bar_id, kReffererHostBar, kManifestIdBar, kTimeBar);
90 EXPECT_THAT(expected_entries,
91 ::testing::ContainerEq(
92 precache_referrer_host_table_->GetAllDataForTesting()));
93
94 // Updating referrer hosts should return the same ID.
95 EXPECT_EQ(foo_id, precache_referrer_host_table_->UpdateReferrerHost(
96 kReffererHostFoo, kManifestIdFoo, kTimeFoo));
97 EXPECT_EQ(bar_id, precache_referrer_host_table_->UpdateReferrerHost(
98 kReffererHostBar, kManifestIdBar, kTimeBar));
99 EXPECT_THAT(expected_entries,
100 ::testing::ContainerEq(
101 precache_referrer_host_table_->GetAllDataForTesting()));
102 }
103
104 TEST_F(PrecacheReferrerHostTableTest, DeleteAll) {
105 const base::Time kTimeFoo = base::Time::FromInternalValue(100);
106 const base::Time kTimeBar = base::Time::FromInternalValue(200);
107 std::map<std::string, PrecacheReferrerHostEntry> expected_entries;
108
109 // Add new referrer hosts.
110 int64_t foo_id = precache_referrer_host_table_->UpdateReferrerHost(
111 kReffererHostFoo, kManifestIdFoo, kTimeFoo);
112 int64_t bar_id = precache_referrer_host_table_->UpdateReferrerHost(
113 kReffererHostBar, kManifestIdBar, kTimeBar);
114
115 EXPECT_NE(-1, foo_id);
116 EXPECT_NE(-1, bar_id);
117
118 expected_entries[kReffererHostFoo] = PrecacheReferrerHostEntry(
119 foo_id, kReffererHostFoo, kManifestIdFoo, kTimeFoo);
120 expected_entries[kReffererHostBar] = PrecacheReferrerHostEntry(
121 bar_id, kReffererHostBar, kManifestIdBar, kTimeBar);
122 EXPECT_THAT(expected_entries,
123 ::testing::ContainerEq(
124 precache_referrer_host_table_->GetAllDataForTesting()));
125
126 precache_referrer_host_table_->DeleteAll();
127
128 EXPECT_EQ(0UL, precache_referrer_host_table_->GetAllDataForTesting().size());
129 }
130
131 TEST_F(PrecacheReferrerHostTableTest, DeleteAllEntriesBefore) {
132 const base::Time kOldTime = base::Time::FromInternalValue(10);
133 const base::Time kBeforeTime = base::Time::FromInternalValue(20);
134 const base::Time kEndTime = base::Time::FromInternalValue(30);
135 const base::Time kAfterTime = base::Time::FromInternalValue(40);
136
137 precache_referrer_host_table_->UpdateReferrerHost("old.com", 1, kOldTime);
138 precache_referrer_host_table_->UpdateReferrerHost("before.com", 2,
139 kBeforeTime);
140 precache_referrer_host_table_->UpdateReferrerHost("end.com", 3, kEndTime);
141 precache_referrer_host_table_->UpdateReferrerHost("after.com", 4, kAfterTime);
142
143 precache_referrer_host_table_->DeleteAllEntriesBefore(kEndTime);
144
145 const auto actual_entries =
146 precache_referrer_host_table_->GetAllDataForTesting();
147 EXPECT_EQ(2UL, actual_entries.size());
148 EXPECT_NE(actual_entries.end(), actual_entries.find("end.com"));
149 EXPECT_NE(actual_entries.end(), actual_entries.find("after.com"));
150 }
151
152 } // namespace
153
154 } // namespace precache
OLDNEW
« no previous file with comments | « components/precache/core/precache_referrer_host_table.cc ('k') | components/precache/core/precache_session_table_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698