| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <set> | 5 #include <set> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 namespace history { | 22 namespace history { |
| 23 | 23 |
| 24 namespace { | 24 namespace { |
| 25 | 25 |
| 26 bool IsVisitInfoEqual(const VisitRow& a, | 26 bool IsVisitInfoEqual(const VisitRow& a, |
| 27 const VisitRow& b) { | 27 const VisitRow& b) { |
| 28 return a.visit_id == b.visit_id && | 28 return a.visit_id == b.visit_id && |
| 29 a.url_id == b.url_id && | 29 a.url_id == b.url_id && |
| 30 a.visit_time == b.visit_time && | 30 a.visit_time == b.visit_time && |
| 31 a.referring_visit == b.referring_visit && | 31 a.referring_visit == b.referring_visit && |
| 32 a.transition == b.transition && | 32 a.transition == b.transition; |
| 33 a.is_indexed == b.is_indexed; | |
| 34 } | 33 } |
| 35 | 34 |
| 36 } // namespace | 35 } // namespace |
| 37 | 36 |
| 38 class VisitDatabaseTest : public PlatformTest, | 37 class VisitDatabaseTest : public PlatformTest, |
| 39 public URLDatabase, | 38 public URLDatabase, |
| 40 public VisitDatabase { | 39 public VisitDatabase { |
| 41 public: | 40 public: |
| 42 VisitDatabaseTest() { | 41 VisitDatabaseTest() { |
| 43 } | 42 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 // Make something in the database. | 140 // Make something in the database. |
| 142 VisitRow original(1, Time::Now(), 23, content::PageTransitionFromInt(0), 19); | 141 VisitRow original(1, Time::Now(), 23, content::PageTransitionFromInt(0), 19); |
| 143 AddVisit(&original, SOURCE_BROWSED); | 142 AddVisit(&original, SOURCE_BROWSED); |
| 144 | 143 |
| 145 // Mutate that row. | 144 // Mutate that row. |
| 146 VisitRow modification(original); | 145 VisitRow modification(original); |
| 147 modification.url_id = 2; | 146 modification.url_id = 2; |
| 148 modification.transition = content::PAGE_TRANSITION_TYPED; | 147 modification.transition = content::PAGE_TRANSITION_TYPED; |
| 149 modification.visit_time = Time::Now() + TimeDelta::FromDays(1); | 148 modification.visit_time = Time::Now() + TimeDelta::FromDays(1); |
| 150 modification.referring_visit = 9292; | 149 modification.referring_visit = 9292; |
| 151 modification.is_indexed = true; | |
| 152 UpdateVisitRow(modification); | 150 UpdateVisitRow(modification); |
| 153 | 151 |
| 154 // Check that the mutated version was written. | 152 // Check that the mutated version was written. |
| 155 VisitRow final; | 153 VisitRow final; |
| 156 GetRowForVisit(original.visit_id, &final); | 154 GetRowForVisit(original.visit_id, &final); |
| 157 EXPECT_TRUE(IsVisitInfoEqual(modification, final)); | 155 EXPECT_TRUE(IsVisitInfoEqual(modification, final)); |
| 158 } | 156 } |
| 159 | 157 |
| 160 // TODO(brettw) write test for GetMostRecentVisitForURL! | 158 // TODO(brettw) write test for GetMostRecentVisitForURL! |
| 161 | 159 |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 ASSERT_EQ(1U, sources.size()); | 378 ASSERT_EQ(1U, sources.size()); |
| 381 EXPECT_EQ(SOURCE_SYNCED, sources[matches[0].visit_id]); | 379 EXPECT_EQ(SOURCE_SYNCED, sources[matches[0].visit_id]); |
| 382 | 380 |
| 383 ASSERT_TRUE(GetVisitsForURL(113, &matches)); | 381 ASSERT_TRUE(GetVisitsForURL(113, &matches)); |
| 384 ASSERT_EQ(1U, matches.size()); | 382 ASSERT_EQ(1U, matches.size()); |
| 385 GetVisitsSource(matches, &sources); | 383 GetVisitsSource(matches, &sources); |
| 386 ASSERT_EQ(1U, sources.size()); | 384 ASSERT_EQ(1U, sources.size()); |
| 387 EXPECT_EQ(SOURCE_EXTENSION, sources[matches[0].visit_id]); | 385 EXPECT_EQ(SOURCE_EXTENSION, sources[matches[0].visit_id]); |
| 388 } | 386 } |
| 389 | 387 |
| 390 TEST_F(VisitDatabaseTest, GetIndexedVisits) { | |
| 391 // Add non-indexed visits. | |
| 392 int url_id = 111; | |
| 393 VisitRow visit_info1( | |
| 394 url_id, Time::Now(), 0, content::PAGE_TRANSITION_LINK, 0); | |
| 395 ASSERT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED)); | |
| 396 | |
| 397 VisitRow visit_info2( | |
| 398 url_id, Time::Now(), 0, content::PAGE_TRANSITION_TYPED, 0); | |
| 399 ASSERT_TRUE(AddVisit(&visit_info2, SOURCE_SYNCED)); | |
| 400 | |
| 401 std::vector<VisitRow> visits; | |
| 402 EXPECT_TRUE(GetVisitsForURL(url_id, &visits)); | |
| 403 EXPECT_EQ(static_cast<size_t>(2), visits.size()); | |
| 404 EXPECT_TRUE(GetIndexedVisitsForURL(url_id, &visits)); | |
| 405 EXPECT_EQ(static_cast<size_t>(0), visits.size()); | |
| 406 | |
| 407 VisitRow visit_info3( | |
| 408 url_id, Time::Now(), 2, content::PAGE_TRANSITION_TYPED, 0); | |
| 409 visit_info3.is_indexed = true; | |
| 410 ASSERT_TRUE(AddVisit(&visit_info3, SOURCE_SYNCED)); | |
| 411 EXPECT_TRUE(GetVisitsForURL(url_id, &visits)); | |
| 412 EXPECT_EQ(static_cast<size_t>(3), visits.size()); | |
| 413 EXPECT_TRUE(GetIndexedVisitsForURL(url_id, &visits)); | |
| 414 EXPECT_EQ(static_cast<size_t>(1), visits.size()); | |
| 415 } | |
| 416 | |
| 417 } // namespace history | 388 } // namespace history |
| OLD | NEW |