| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/android/history_report/delta_file_backend_leveldb.h" | 5 #include "chrome/browser/android/history_report/delta_file_backend_leveldb.h" |
| 6 | 6 |
| 7 #include <stdint.h> |
| 8 |
| 7 #include <vector> | 9 #include <vector> |
| 8 | 10 |
| 9 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 12 #include "base/files/scoped_temp_dir.h" |
| 13 #include "base/macros.h" |
| 11 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
| 12 #include "chrome/browser/android/history_report/delta_file_commons.h" | 15 #include "chrome/browser/android/history_report/delta_file_commons.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 14 #include "url/gurl.h" | 17 #include "url/gurl.h" |
| 15 | 18 |
| 16 namespace history_report { | 19 namespace history_report { |
| 17 | 20 |
| 18 class DeltaFileBackendTest : public testing::Test { | 21 class DeltaFileBackendTest : public testing::Test { |
| 19 public: | 22 public: |
| 20 DeltaFileBackendTest() {} | 23 DeltaFileBackendTest() {} |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 | 151 |
| 149 TEST_F(DeltaFileBackendTest, Trim) { | 152 TEST_F(DeltaFileBackendTest, Trim) { |
| 150 GURL test_url("test.org"); | 153 GURL test_url("test.org"); |
| 151 // Adding 5 deletion entries for test.org | 154 // Adding 5 deletion entries for test.org |
| 152 backend_->PageDeleted(test_url); | 155 backend_->PageDeleted(test_url); |
| 153 backend_->PageDeleted(test_url); | 156 backend_->PageDeleted(test_url); |
| 154 backend_->PageDeleted(test_url); | 157 backend_->PageDeleted(test_url); |
| 155 backend_->PageDeleted(test_url); | 158 backend_->PageDeleted(test_url); |
| 156 backend_->PageDeleted(test_url); | 159 backend_->PageDeleted(test_url); |
| 157 // Trim all entries with sequence number <= 3. | 160 // Trim all entries with sequence number <= 3. |
| 158 int64 max_seq_no = backend_->Trim(3); | 161 int64_t max_seq_no = backend_->Trim(3); |
| 159 EXPECT_EQ(5, max_seq_no); | 162 EXPECT_EQ(5, max_seq_no); |
| 160 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = | 163 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = |
| 161 backend_->Query(0, 10); | 164 backend_->Query(0, 10); |
| 162 EXPECT_TRUE(result.get() != NULL); | 165 EXPECT_TRUE(result.get() != NULL); |
| 163 EXPECT_EQ(2u, result->size()); | 166 EXPECT_EQ(2u, result->size()); |
| 164 DeltaFileEntryWithData data = (*result)[0]; | 167 DeltaFileEntryWithData data = (*result)[0]; |
| 165 // First entry in delta file should now have sequence number == 4 because | 168 // First entry in delta file should now have sequence number == 4 because |
| 166 // entries with smaller sequence numbers were deleted. | 169 // entries with smaller sequence numbers were deleted. |
| 167 EXPECT_EQ(4, data.SeqNo()); | 170 EXPECT_EQ(4, data.SeqNo()); |
| 168 EXPECT_EQ(data.Type(), "del"); | 171 EXPECT_EQ(data.Type(), "del"); |
| 169 EXPECT_EQ(data.Url(), test_url.spec()); | 172 EXPECT_EQ(data.Url(), test_url.spec()); |
| 170 } | 173 } |
| 171 | 174 |
| 172 TEST_F(DeltaFileBackendTest, TrimLowerBoundEqualToMaxSeqNo) { | 175 TEST_F(DeltaFileBackendTest, TrimLowerBoundEqualToMaxSeqNo) { |
| 173 GURL test_url("test.org"); | 176 GURL test_url("test.org"); |
| 174 // Adding 5 deletion entries for test.org | 177 // Adding 5 deletion entries for test.org |
| 175 backend_->PageDeleted(test_url); | 178 backend_->PageDeleted(test_url); |
| 176 backend_->PageDeleted(test_url); | 179 backend_->PageDeleted(test_url); |
| 177 backend_->PageDeleted(test_url); | 180 backend_->PageDeleted(test_url); |
| 178 backend_->PageDeleted(test_url); | 181 backend_->PageDeleted(test_url); |
| 179 backend_->PageDeleted(test_url); | 182 backend_->PageDeleted(test_url); |
| 180 // Trim all entries with sequence number <= 5 but leave at least one entry | 183 // Trim all entries with sequence number <= 5 but leave at least one entry |
| 181 // in delta file. | 184 // in delta file. |
| 182 int64 max_seq_no = backend_->Trim(5); | 185 int64_t max_seq_no = backend_->Trim(5); |
| 183 EXPECT_EQ(5, max_seq_no); | 186 EXPECT_EQ(5, max_seq_no); |
| 184 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = | 187 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = |
| 185 backend_->Query(0, 10); | 188 backend_->Query(0, 10); |
| 186 EXPECT_TRUE(result.get() != NULL); | 189 EXPECT_TRUE(result.get() != NULL); |
| 187 EXPECT_EQ(1u, result->size()); | 190 EXPECT_EQ(1u, result->size()); |
| 188 DeltaFileEntryWithData data = (*result)[0]; | 191 DeltaFileEntryWithData data = (*result)[0]; |
| 189 // All entries but last were removed. | 192 // All entries but last were removed. |
| 190 EXPECT_EQ(5, data.SeqNo()); | 193 EXPECT_EQ(5, data.SeqNo()); |
| 191 EXPECT_EQ(data.Type(), "del"); | 194 EXPECT_EQ(data.Type(), "del"); |
| 192 EXPECT_EQ(data.Url(), test_url.spec()); | 195 EXPECT_EQ(data.Url(), test_url.spec()); |
| 193 } | 196 } |
| 194 | 197 |
| 195 TEST_F(DeltaFileBackendTest, TrimLowerBoundGreaterThanMaxSeqNo) { | 198 TEST_F(DeltaFileBackendTest, TrimLowerBoundGreaterThanMaxSeqNo) { |
| 196 GURL test_url("test.org"); | 199 GURL test_url("test.org"); |
| 197 // Adding 5 deletion entries for test.org | 200 // Adding 5 deletion entries for test.org |
| 198 backend_->PageDeleted(test_url); | 201 backend_->PageDeleted(test_url); |
| 199 backend_->PageDeleted(test_url); | 202 backend_->PageDeleted(test_url); |
| 200 backend_->PageDeleted(test_url); | 203 backend_->PageDeleted(test_url); |
| 201 backend_->PageDeleted(test_url); | 204 backend_->PageDeleted(test_url); |
| 202 backend_->PageDeleted(test_url); | 205 backend_->PageDeleted(test_url); |
| 203 // Trim all entries with sequence number <= 6 but leave at least one entry | 206 // Trim all entries with sequence number <= 6 but leave at least one entry |
| 204 // in delta file. | 207 // in delta file. |
| 205 int64 max_seq_no = backend_->Trim(6); | 208 int64_t max_seq_no = backend_->Trim(6); |
| 206 EXPECT_EQ(5, max_seq_no); | 209 EXPECT_EQ(5, max_seq_no); |
| 207 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = | 210 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = |
| 208 backend_->Query(0, 10); | 211 backend_->Query(0, 10); |
| 209 EXPECT_TRUE(result.get() != NULL); | 212 EXPECT_TRUE(result.get() != NULL); |
| 210 EXPECT_EQ(1u, result->size()); | 213 EXPECT_EQ(1u, result->size()); |
| 211 DeltaFileEntryWithData data = (*result)[0]; | 214 DeltaFileEntryWithData data = (*result)[0]; |
| 212 // All entries but last were removed. | 215 // All entries but last were removed. |
| 213 EXPECT_EQ(5, data.SeqNo()); | 216 EXPECT_EQ(5, data.SeqNo()); |
| 214 EXPECT_EQ(data.Type(), "del"); | 217 EXPECT_EQ(data.Type(), "del"); |
| 215 EXPECT_EQ(data.Url(), test_url.spec()); | 218 EXPECT_EQ(data.Url(), test_url.spec()); |
| 216 } | 219 } |
| 217 | 220 |
| 218 TEST_F(DeltaFileBackendTest, TrimDeltaFileWithSingleEntry) { | 221 TEST_F(DeltaFileBackendTest, TrimDeltaFileWithSingleEntry) { |
| 219 GURL test_url("test.org"); | 222 GURL test_url("test.org"); |
| 220 backend_->PageDeleted(test_url); | 223 backend_->PageDeleted(test_url); |
| 221 // Trim all entries with sequence number <= 1 but leave at least one entry | 224 // 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 | 225 // in delta file. Should not remove any entries since there's only one |
| 223 // in delta file. | 226 // in delta file. |
| 224 int64 max_seq_no = backend_->Trim(1); | 227 int64_t max_seq_no = backend_->Trim(1); |
| 225 EXPECT_EQ(1, max_seq_no); | 228 EXPECT_EQ(1, max_seq_no); |
| 226 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = | 229 scoped_ptr<std::vector<DeltaFileEntryWithData> > result = |
| 227 backend_->Query(0, 10); | 230 backend_->Query(0, 10); |
| 228 EXPECT_TRUE(result.get() != NULL); | 231 EXPECT_TRUE(result.get() != NULL); |
| 229 EXPECT_EQ(1u, result->size()); | 232 EXPECT_EQ(1u, result->size()); |
| 230 DeltaFileEntryWithData data = (*result)[0]; | 233 DeltaFileEntryWithData data = (*result)[0]; |
| 231 // No entries removed because there was only one. | 234 // No entries removed because there was only one. |
| 232 EXPECT_EQ(1, data.SeqNo()); | 235 EXPECT_EQ(1, data.SeqNo()); |
| 233 EXPECT_EQ(data.Type(), "del"); | 236 EXPECT_EQ(data.Type(), "del"); |
| 234 EXPECT_EQ(data.Url(), test_url.spec()); | 237 EXPECT_EQ(data.Url(), test_url.spec()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 250 DeltaFileEntryWithData data = (*result)[i]; | 253 DeltaFileEntryWithData data = (*result)[i]; |
| 251 // +2 because we skipped first entry and | 254 // +2 because we skipped first entry and |
| 252 // sequence number starts with 1 not with 0. | 255 // sequence number starts with 1 not with 0. |
| 253 EXPECT_EQ(i + 2, data.SeqNo()); | 256 EXPECT_EQ(i + 2, data.SeqNo()); |
| 254 EXPECT_EQ(data.Type(), "del"); | 257 EXPECT_EQ(data.Type(), "del"); |
| 255 EXPECT_EQ(data.Url(), test_url.spec()); | 258 EXPECT_EQ(data.Url(), test_url.spec()); |
| 256 } | 259 } |
| 257 } | 260 } |
| 258 | 261 |
| 259 } // namespace history_report | 262 } // namespace history_report |
| OLD | NEW |