| 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; |
| 33 } | 34 } |
| 34 | 35 |
| 35 } // namespace | 36 } // namespace |
| 36 | 37 |
| 37 class VisitDatabaseTest : public PlatformTest, | 38 class VisitDatabaseTest : public PlatformTest, |
| 38 public URLDatabase, | 39 public URLDatabase, |
| 39 public VisitDatabase { | 40 public VisitDatabase { |
| 40 public: | 41 public: |
| 41 VisitDatabaseTest() { | 42 VisitDatabaseTest() { |
| 42 } | 43 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 // Make something in the database. | 141 // Make something in the database. |
| 141 VisitRow original(1, Time::Now(), 23, content::PageTransitionFromInt(0), 19); | 142 VisitRow original(1, Time::Now(), 23, content::PageTransitionFromInt(0), 19); |
| 142 AddVisit(&original, SOURCE_BROWSED); | 143 AddVisit(&original, SOURCE_BROWSED); |
| 143 | 144 |
| 144 // Mutate that row. | 145 // Mutate that row. |
| 145 VisitRow modification(original); | 146 VisitRow modification(original); |
| 146 modification.url_id = 2; | 147 modification.url_id = 2; |
| 147 modification.transition = content::PAGE_TRANSITION_TYPED; | 148 modification.transition = content::PAGE_TRANSITION_TYPED; |
| 148 modification.visit_time = Time::Now() + TimeDelta::FromDays(1); | 149 modification.visit_time = Time::Now() + TimeDelta::FromDays(1); |
| 149 modification.referring_visit = 9292; | 150 modification.referring_visit = 9292; |
| 151 modification.is_indexed = true; |
| 150 UpdateVisitRow(modification); | 152 UpdateVisitRow(modification); |
| 151 | 153 |
| 152 // Check that the mutated version was written. | 154 // Check that the mutated version was written. |
| 153 VisitRow final; | 155 VisitRow final; |
| 154 GetRowForVisit(original.visit_id, &final); | 156 GetRowForVisit(original.visit_id, &final); |
| 155 EXPECT_TRUE(IsVisitInfoEqual(modification, final)); | 157 EXPECT_TRUE(IsVisitInfoEqual(modification, final)); |
| 156 } | 158 } |
| 157 | 159 |
| 158 // TODO(brettw) write test for GetMostRecentVisitForURL! | 160 // TODO(brettw) write test for GetMostRecentVisitForURL! |
| 159 | 161 |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 ASSERT_EQ(1U, sources.size()); | 380 ASSERT_EQ(1U, sources.size()); |
| 379 EXPECT_EQ(SOURCE_SYNCED, sources[matches[0].visit_id]); | 381 EXPECT_EQ(SOURCE_SYNCED, sources[matches[0].visit_id]); |
| 380 | 382 |
| 381 ASSERT_TRUE(GetVisitsForURL(113, &matches)); | 383 ASSERT_TRUE(GetVisitsForURL(113, &matches)); |
| 382 ASSERT_EQ(1U, matches.size()); | 384 ASSERT_EQ(1U, matches.size()); |
| 383 GetVisitsSource(matches, &sources); | 385 GetVisitsSource(matches, &sources); |
| 384 ASSERT_EQ(1U, sources.size()); | 386 ASSERT_EQ(1U, sources.size()); |
| 385 EXPECT_EQ(SOURCE_EXTENSION, sources[matches[0].visit_id]); | 387 EXPECT_EQ(SOURCE_EXTENSION, sources[matches[0].visit_id]); |
| 386 } | 388 } |
| 387 | 389 |
| 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 |
| 388 } // namespace history | 417 } // namespace history |
| OLD | NEW |