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

Side by Side Diff: chrome/browser/android/history_report/delta_file_backend_leveldb_unittest.cc

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 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
OLDNEW
(Empty)
1 // Copyright 2015 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 "chrome/browser/android/history_report/delta_file_backend_leveldb.h"
6
7 #include <vector>
8
9 #include "base/files/file_path.h"
10 #include "base/files/scoped_temp_dir.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "chrome/browser/android/history_report/delta_file_commons.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "url/gurl.h"
15
16 namespace history_report {
17
18 class DeltaFileBackendTest : public testing::Test {
19 public:
20 DeltaFileBackendTest() {}
21 ~DeltaFileBackendTest() override {}
22
23 protected:
24 void SetUp() override {
25 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
26 backend_.reset(new DeltaFileBackend(temp_dir_.path()));
27 }
28
29 scoped_ptr<DeltaFileBackend> backend_;
30
31 private:
32 base::ScopedTempDir temp_dir_;
33
34 DISALLOW_COPY_AND_ASSIGN(DeltaFileBackendTest);
35 };
36
37 TEST_F(DeltaFileBackendTest, AddPage) {
38 GURL test_url("test.org");
39 backend_->PageAdded(test_url);
40 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
41 backend_->Query(0, 10);
42 EXPECT_TRUE(result.get() != NULL);
43 EXPECT_EQ(1u, result->size());
44 DeltaFileEntryWithData data = (*result)[0];
45 EXPECT_EQ(1, data.SeqNo());
46 EXPECT_EQ(data.Type(), "add");
47 EXPECT_EQ(data.Url(), test_url.spec());
48 }
49
50 TEST_F(DeltaFileBackendTest, DelPage) {
51 GURL test_url("test.org");
52 backend_->PageDeleted(test_url);
53 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
54 backend_->Query(0, 10);
55 EXPECT_TRUE(result.get() != NULL);
56 EXPECT_EQ(1u, result->size());
57 DeltaFileEntryWithData data = (*result)[0];
58 EXPECT_EQ(1, data.SeqNo());
59 EXPECT_EQ(data.Type(), "del");
60 EXPECT_EQ(data.Url(), test_url.spec());
61 }
62
63 TEST_F(DeltaFileBackendTest, Recreate) {
64 GURL test_url("test.org");
65 // Adding 5 deletion entries for test.org
66 backend_->PageDeleted(test_url);
67 backend_->PageDeleted(test_url);
68 backend_->PageDeleted(test_url);
69 backend_->PageDeleted(test_url);
70 backend_->PageDeleted(test_url);
71
72 std::vector<std::string> urls;
73 urls.push_back("test.org");
74 urls.push_back("test2.org");
75 EXPECT_TRUE(backend_->Recreate(urls));
76 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
77 backend_->Query(0, 10);
78 EXPECT_TRUE(result.get() != NULL);
79 EXPECT_EQ(2u, result->size());
80 DeltaFileEntryWithData data = (*result)[0];
81 EXPECT_EQ(1, data.SeqNo());
82 EXPECT_EQ(data.Type(), "add");
83 EXPECT_EQ(data.Url(), "test.org");
84 DeltaFileEntryWithData data2 = (*result)[1];
85 EXPECT_EQ(2, data2.SeqNo());
86 EXPECT_EQ(data2.Type(), "add");
87 EXPECT_EQ(data2.Url(), "test2.org");
88 }
89
90 TEST_F(DeltaFileBackendTest, Clear) {
91 GURL test_url("test.org");
92 // Adding 5 deletion entries for test.org
93 backend_->PageDeleted(test_url);
94 backend_->PageDeleted(test_url);
95 backend_->PageDeleted(test_url);
96 backend_->PageDeleted(test_url);
97 backend_->PageDeleted(test_url);
98 backend_->Clear();
99
100 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
101 backend_->Query(0, 10);
102 EXPECT_TRUE(result.get() != NULL);
103 EXPECT_EQ(0u, result->size());
104 }
105
106 TEST_F(DeltaFileBackendTest, QueryStart) {
107 GURL test_url("test.org");
108 // Adding 5 deletion entries for test.org
109 backend_->PageDeleted(test_url);
110 backend_->PageDeleted(test_url);
111 backend_->PageDeleted(test_url);
112 backend_->PageDeleted(test_url);
113 backend_->PageDeleted(test_url);
114
115 // Skip first entry (start with sequence number == 2).
116 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
117 backend_->Query(1, 10);
118 EXPECT_TRUE(result.get() != NULL);
119 EXPECT_EQ(4u, result->size());
120 DeltaFileEntryWithData data = (*result)[0];
121 // Check that first result is the second entry we added.
122 EXPECT_EQ(2, data.SeqNo());
123 EXPECT_EQ(data.Type(), "del");
124 EXPECT_EQ(data.Url(), test_url.spec());
125 }
126
127 TEST_F(DeltaFileBackendTest, QueryLimit) {
128 GURL test_url("test.org");
129 // Adding 5 deletion entries for test.org
130 backend_->PageDeleted(test_url);
131 backend_->PageDeleted(test_url);
132 backend_->PageDeleted(test_url);
133 backend_->PageDeleted(test_url);
134 backend_->PageDeleted(test_url);
135
136 // Query for up to 3 results.
137 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
138 backend_->Query(0, 3);
139 EXPECT_TRUE(result.get() != NULL);
140 // Check that we got exactly 3 results
141 EXPECT_EQ(3u, result->size());
142 // Verify that first result is an entry we added first.
143 DeltaFileEntryWithData data = (*result)[0];
144 EXPECT_EQ(1, data.SeqNo());
145 EXPECT_EQ(data.Type(), "del");
146 EXPECT_EQ(data.Url(), test_url.spec());
147 }
148
149 TEST_F(DeltaFileBackendTest, Trim) {
150 GURL test_url("test.org");
151 // Adding 5 deletion entries for test.org
152 backend_->PageDeleted(test_url);
153 backend_->PageDeleted(test_url);
154 backend_->PageDeleted(test_url);
155 backend_->PageDeleted(test_url);
156 backend_->PageDeleted(test_url);
157 // Trim all entries with sequence number <= 3.
158 int64 max_seq_no = backend_->Trim(3);
159 EXPECT_EQ(5, max_seq_no);
160 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
161 backend_->Query(0, 10);
162 EXPECT_TRUE(result.get() != NULL);
163 EXPECT_EQ(2u, result->size());
164 DeltaFileEntryWithData data = (*result)[0];
165 // First entry in delta file should now have sequence number == 4 because
166 // entries with smaller sequence numbers were deleted.
167 EXPECT_EQ(4, data.SeqNo());
168 EXPECT_EQ(data.Type(), "del");
169 EXPECT_EQ(data.Url(), test_url.spec());
170 }
171
172 TEST_F(DeltaFileBackendTest, TrimLowerBoundEqualToMaxSeqNo) {
173 GURL test_url("test.org");
174 // Adding 5 deletion entries for test.org
175 backend_->PageDeleted(test_url);
176 backend_->PageDeleted(test_url);
177 backend_->PageDeleted(test_url);
178 backend_->PageDeleted(test_url);
179 backend_->PageDeleted(test_url);
180 // Trim all entries with sequence number <= 5 but leave at least one entry
181 // in delta file.
182 int64 max_seq_no = backend_->Trim(5);
183 EXPECT_EQ(5, max_seq_no);
184 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
185 backend_->Query(0, 10);
186 EXPECT_TRUE(result.get() != NULL);
187 EXPECT_EQ(1u, result->size());
188 DeltaFileEntryWithData data = (*result)[0];
189 // All entries but last were removed.
190 EXPECT_EQ(5, data.SeqNo());
191 EXPECT_EQ(data.Type(), "del");
192 EXPECT_EQ(data.Url(), test_url.spec());
193 }
194
195 TEST_F(DeltaFileBackendTest, TrimLowerBoundGreaterThanMaxSeqNo) {
196 GURL test_url("test.org");
197 // Adding 5 deletion entries for test.org
198 backend_->PageDeleted(test_url);
199 backend_->PageDeleted(test_url);
200 backend_->PageDeleted(test_url);
201 backend_->PageDeleted(test_url);
202 backend_->PageDeleted(test_url);
203 // Trim all entries with sequence number <= 6 but leave at least one entry
204 // in delta file.
205 int64 max_seq_no = backend_->Trim(6);
206 EXPECT_EQ(5, max_seq_no);
207 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
208 backend_->Query(0, 10);
209 EXPECT_TRUE(result.get() != NULL);
210 EXPECT_EQ(1u, result->size());
211 DeltaFileEntryWithData data = (*result)[0];
212 // All entries but last were removed.
213 EXPECT_EQ(5, data.SeqNo());
214 EXPECT_EQ(data.Type(), "del");
215 EXPECT_EQ(data.Url(), test_url.spec());
216 }
217
218 TEST_F(DeltaFileBackendTest, TrimDeltaFileWithSingleEntry) {
219 GURL test_url("test.org");
220 backend_->PageDeleted(test_url);
221 // Trim all entries with sequence number <= 1 but leave at least one entry
222 // in delta file. Should not remove any entries since there's only one
223 // in delta file.
224 int64 max_seq_no = backend_->Trim(1);
225 EXPECT_EQ(1, max_seq_no);
226 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
227 backend_->Query(0, 10);
228 EXPECT_TRUE(result.get() != NULL);
229 EXPECT_EQ(1u, result->size());
230 DeltaFileEntryWithData data = (*result)[0];
231 // No entries removed because there was only one.
232 EXPECT_EQ(1, data.SeqNo());
233 EXPECT_EQ(data.Type(), "del");
234 EXPECT_EQ(data.Url(), test_url.spec());
235 }
236
237 TEST_F(DeltaFileBackendTest, LevelDbComparator) {
238 GURL test_url("test.org");
239 // Adding 50 deletion entries for test.org
240 for (int i = 0; i < 50; i++) {
241 backend_->PageDeleted(test_url);
242 }
243
244 // Skip first entry (start with sequence number == 2).
245 scoped_ptr<std::vector<DeltaFileEntryWithData> > result =
246 backend_->Query(1, 100);
247 EXPECT_TRUE(result.get() != NULL);
248 EXPECT_EQ(49u, result->size());
249 for (int i = 0; i < 49; i++) {
250 DeltaFileEntryWithData data = (*result)[i];
251 // +2 because we skipped first entry and
252 // sequence number starts with 1 not with 0.
253 EXPECT_EQ(i + 2, data.SeqNo());
254 EXPECT_EQ(data.Type(), "del");
255 EXPECT_EQ(data.Url(), test_url.spec());
256 }
257 }
258
259 } // namespace history_report
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698