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

Side by Side Diff: chrome/browser/history/visit_database_unittest.cc

Issue 8253002: Move PageTransition into content namespace. While I'm touching all these files, I've also updated... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/history/visit_database.cc ('k') | chrome/browser/importer/importer_host.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/file_path.h" 5 #include "base/file_path.h"
6 #include "base/file_util.h" 6 #include "base/file_util.h"
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/scoped_temp_dir.h" 8 #include "base/scoped_temp_dir.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "chrome/browser/history/url_database.h" 10 #include "chrome/browser/history/url_database.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 virtual sql::Connection& GetDB() { 62 virtual sql::Connection& GetDB() {
63 return db_; 63 return db_;
64 } 64 }
65 65
66 ScopedTempDir temp_dir_; 66 ScopedTempDir temp_dir_;
67 sql::Connection db_; 67 sql::Connection db_;
68 }; 68 };
69 69
70 TEST_F(VisitDatabaseTest, Add) { 70 TEST_F(VisitDatabaseTest, Add) {
71 // Add one visit. 71 // Add one visit.
72 VisitRow visit_info1(1, Time::Now(), 0, PageTransition::LINK, 0); 72 VisitRow visit_info1(1, Time::Now(), 0, content::PAGE_TRANSITION_LINK, 0);
73 EXPECT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED)); 73 EXPECT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED));
74 74
75 // Add second visit for the same page. 75 // Add second visit for the same page.
76 VisitRow visit_info2(visit_info1.url_id, 76 VisitRow visit_info2(visit_info1.url_id,
77 visit_info1.visit_time + TimeDelta::FromSeconds(1), 1, 77 visit_info1.visit_time + TimeDelta::FromSeconds(1), 1,
78 PageTransition::TYPED, 0); 78 content::PAGE_TRANSITION_TYPED, 0);
79 EXPECT_TRUE(AddVisit(&visit_info2, SOURCE_BROWSED)); 79 EXPECT_TRUE(AddVisit(&visit_info2, SOURCE_BROWSED));
80 80
81 // Add third visit for a different page. 81 // Add third visit for a different page.
82 VisitRow visit_info3(2, 82 VisitRow visit_info3(2,
83 visit_info1.visit_time + TimeDelta::FromSeconds(2), 0, 83 visit_info1.visit_time + TimeDelta::FromSeconds(2), 0,
84 PageTransition::LINK, 0); 84 content::PAGE_TRANSITION_LINK, 0);
85 EXPECT_TRUE(AddVisit(&visit_info3, SOURCE_BROWSED)); 85 EXPECT_TRUE(AddVisit(&visit_info3, SOURCE_BROWSED));
86 86
87 // Query the first two. 87 // Query the first two.
88 std::vector<VisitRow> matches; 88 std::vector<VisitRow> matches;
89 EXPECT_TRUE(GetVisitsForURL(visit_info1.url_id, &matches)); 89 EXPECT_TRUE(GetVisitsForURL(visit_info1.url_id, &matches));
90 EXPECT_EQ(static_cast<size_t>(2), matches.size()); 90 EXPECT_EQ(static_cast<size_t>(2), matches.size());
91 91
92 // Make sure we got both (order in result set is visit time). 92 // Make sure we got both (order in result set is visit time).
93 EXPECT_TRUE(IsVisitInfoEqual(matches[0], visit_info1) && 93 EXPECT_TRUE(IsVisitInfoEqual(matches[0], visit_info1) &&
94 IsVisitInfoEqual(matches[1], visit_info2)); 94 IsVisitInfoEqual(matches[1], visit_info2));
95 } 95 }
96 96
97 TEST_F(VisitDatabaseTest, Delete) { 97 TEST_F(VisitDatabaseTest, Delete) {
98 // Add three visits that form a chain of navigation, and then delete the 98 // Add three visits that form a chain of navigation, and then delete the
99 // middle one. We should be left with the outer two visits, and the chain 99 // middle one. We should be left with the outer two visits, and the chain
100 // should link them. 100 // should link them.
101 static const int kTime1 = 1000; 101 static const int kTime1 = 1000;
102 VisitRow visit_info1(1, Time::FromInternalValue(kTime1), 0, 102 VisitRow visit_info1(1, Time::FromInternalValue(kTime1), 0,
103 PageTransition::LINK, 0); 103 content::PAGE_TRANSITION_LINK, 0);
104 EXPECT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED)); 104 EXPECT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED));
105 105
106 static const int kTime2 = kTime1 + 1; 106 static const int kTime2 = kTime1 + 1;
107 VisitRow visit_info2(1, Time::FromInternalValue(kTime2), 107 VisitRow visit_info2(1, Time::FromInternalValue(kTime2),
108 visit_info1.visit_id, PageTransition::LINK, 0); 108 visit_info1.visit_id, content::PAGE_TRANSITION_LINK, 0);
109 EXPECT_TRUE(AddVisit(&visit_info2, SOURCE_BROWSED)); 109 EXPECT_TRUE(AddVisit(&visit_info2, SOURCE_BROWSED));
110 110
111 static const int kTime3 = kTime2 + 1; 111 static const int kTime3 = kTime2 + 1;
112 VisitRow visit_info3(1, Time::FromInternalValue(kTime3), 112 VisitRow visit_info3(1, Time::FromInternalValue(kTime3),
113 visit_info2.visit_id, PageTransition::LINK, 0); 113 visit_info2.visit_id, content::PAGE_TRANSITION_LINK, 0);
114 EXPECT_TRUE(AddVisit(&visit_info3, SOURCE_BROWSED)); 114 EXPECT_TRUE(AddVisit(&visit_info3, SOURCE_BROWSED));
115 115
116 // First make sure all the visits are there. 116 // First make sure all the visits are there.
117 std::vector<VisitRow> matches; 117 std::vector<VisitRow> matches;
118 EXPECT_TRUE(GetVisitsForURL(visit_info1.url_id, &matches)); 118 EXPECT_TRUE(GetVisitsForURL(visit_info1.url_id, &matches));
119 EXPECT_EQ(static_cast<size_t>(3), matches.size()); 119 EXPECT_EQ(static_cast<size_t>(3), matches.size());
120 EXPECT_TRUE(IsVisitInfoEqual(matches[0], visit_info1) && 120 EXPECT_TRUE(IsVisitInfoEqual(matches[0], visit_info1) &&
121 IsVisitInfoEqual(matches[1], visit_info2) && 121 IsVisitInfoEqual(matches[1], visit_info2) &&
122 IsVisitInfoEqual(matches[2], visit_info3)); 122 IsVisitInfoEqual(matches[2], visit_info3));
123 123
124 // Delete the middle one. 124 // Delete the middle one.
125 DeleteVisit(visit_info2); 125 DeleteVisit(visit_info2);
126 126
127 // The outer two should be left, and the last one should have the first as 127 // The outer two should be left, and the last one should have the first as
128 // the referrer. 128 // the referrer.
129 visit_info3.referring_visit = visit_info1.visit_id; 129 visit_info3.referring_visit = visit_info1.visit_id;
130 matches.clear(); 130 matches.clear();
131 EXPECT_TRUE(GetVisitsForURL(visit_info1.url_id, &matches)); 131 EXPECT_TRUE(GetVisitsForURL(visit_info1.url_id, &matches));
132 EXPECT_EQ(static_cast<size_t>(2), matches.size()); 132 EXPECT_EQ(static_cast<size_t>(2), matches.size());
133 EXPECT_TRUE(IsVisitInfoEqual(matches[0], visit_info1) && 133 EXPECT_TRUE(IsVisitInfoEqual(matches[0], visit_info1) &&
134 IsVisitInfoEqual(matches[1], visit_info3)); 134 IsVisitInfoEqual(matches[1], visit_info3));
135 } 135 }
136 136
137 TEST_F(VisitDatabaseTest, Update) { 137 TEST_F(VisitDatabaseTest, Update) {
138 // Make something in the database. 138 // Make something in the database.
139 VisitRow original(1, Time::Now(), 23, 22, 19); 139 VisitRow original(1, Time::Now(), 23, content::PageTransitionFromInt(0), 19);
140 AddVisit(&original, SOURCE_BROWSED); 140 AddVisit(&original, SOURCE_BROWSED);
141 141
142 // Mutate that row. 142 // Mutate that row.
143 VisitRow modification(original); 143 VisitRow modification(original);
144 modification.url_id = 2; 144 modification.url_id = 2;
145 modification.transition = PageTransition::TYPED; 145 modification.transition = content::PAGE_TRANSITION_TYPED;
146 modification.visit_time = Time::Now() + TimeDelta::FromDays(1); 146 modification.visit_time = Time::Now() + TimeDelta::FromDays(1);
147 modification.referring_visit = 9292; 147 modification.referring_visit = 9292;
148 modification.is_indexed = true; 148 modification.is_indexed = true;
149 UpdateVisitRow(modification); 149 UpdateVisitRow(modification);
150 150
151 // Check that the mutated version was written. 151 // Check that the mutated version was written.
152 VisitRow final; 152 VisitRow final;
153 GetRowForVisit(original.visit_id, &final); 153 GetRowForVisit(original.visit_id, &final);
154 EXPECT_TRUE(IsVisitInfoEqual(modification, final)); 154 EXPECT_TRUE(IsVisitInfoEqual(modification, final));
155 } 155 }
156 156
157 // TODO(brettw) write test for GetMostRecentVisitForURL! 157 // TODO(brettw) write test for GetMostRecentVisitForURL!
158 158
159 TEST_F(VisitDatabaseTest, GetVisibleVisitsInRange) { 159 TEST_F(VisitDatabaseTest, GetVisibleVisitsInRange) {
160 // Add one visit. 160 // Add one visit.
161 VisitRow visit_info1(1, Time::Now(), 0, 161 VisitRow visit_info1(1, Time::Now(), 0,
162 static_cast<PageTransition::Type>(PageTransition::LINK | 162 static_cast<content::PageTransition>(
163 PageTransition::CHAIN_START | 163 content::PAGE_TRANSITION_LINK |
164 PageTransition::CHAIN_END), 164 content::PAGE_TRANSITION_CHAIN_START |
165 content::PAGE_TRANSITION_CHAIN_END),
165 0); 166 0);
166 visit_info1.visit_id = 1; 167 visit_info1.visit_id = 1;
167 EXPECT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED)); 168 EXPECT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED));
168 169
169 // Add second visit for the same page. 170 // Add second visit for the same page.
170 VisitRow visit_info2(visit_info1.url_id, 171 VisitRow visit_info2(visit_info1.url_id,
171 visit_info1.visit_time + TimeDelta::FromSeconds(1), 1, 172 visit_info1.visit_time + TimeDelta::FromSeconds(1), 1,
172 static_cast<PageTransition::Type>(PageTransition::TYPED | 173 static_cast<content::PageTransition>(
173 PageTransition::CHAIN_START | 174 content::PAGE_TRANSITION_TYPED |
174 PageTransition::CHAIN_END), 175 content::PAGE_TRANSITION_CHAIN_START |
176 content::PAGE_TRANSITION_CHAIN_END),
175 0); 177 0);
176 visit_info2.visit_id = 2; 178 visit_info2.visit_id = 2;
177 EXPECT_TRUE(AddVisit(&visit_info2, SOURCE_BROWSED)); 179 EXPECT_TRUE(AddVisit(&visit_info2, SOURCE_BROWSED));
178 180
179 // Add third visit for a different page. 181 // Add third visit for a different page.
180 VisitRow visit_info3(2, 182 VisitRow visit_info3(2,
181 visit_info1.visit_time + TimeDelta::FromSeconds(2), 0, 183 visit_info1.visit_time + TimeDelta::FromSeconds(2), 0,
182 static_cast<PageTransition::Type>(PageTransition::LINK | 184 static_cast<content::PageTransition>(
183 PageTransition::CHAIN_START), 185 content::PAGE_TRANSITION_LINK |
186 content::PAGE_TRANSITION_CHAIN_START),
184 0); 187 0);
185 visit_info3.visit_id = 3; 188 visit_info3.visit_id = 3;
186 EXPECT_TRUE(AddVisit(&visit_info3, SOURCE_BROWSED)); 189 EXPECT_TRUE(AddVisit(&visit_info3, SOURCE_BROWSED));
187 190
188 // Add a redirect visit from the last page. 191 // Add a redirect visit from the last page.
189 VisitRow visit_info4(3, 192 VisitRow visit_info4(3,
190 visit_info1.visit_time + TimeDelta::FromSeconds(3), visit_info3.visit_id, 193 visit_info1.visit_time + TimeDelta::FromSeconds(3), visit_info3.visit_id,
191 static_cast<PageTransition::Type>(PageTransition::SERVER_REDIRECT | 194 static_cast<content::PageTransition>(
192 PageTransition::CHAIN_END), 195 content::PAGE_TRANSITION_SERVER_REDIRECT |
196 content::PAGE_TRANSITION_CHAIN_END),
193 0); 197 0);
194 visit_info4.visit_id = 4; 198 visit_info4.visit_id = 4;
195 EXPECT_TRUE(AddVisit(&visit_info4, SOURCE_BROWSED)); 199 EXPECT_TRUE(AddVisit(&visit_info4, SOURCE_BROWSED));
196 200
197 // Add a subframe visit. 201 // Add a subframe visit.
198 VisitRow visit_info5(4, 202 VisitRow visit_info5(4,
199 visit_info1.visit_time + TimeDelta::FromSeconds(4), visit_info4.visit_id, 203 visit_info1.visit_time + TimeDelta::FromSeconds(4), visit_info4.visit_id,
200 static_cast<PageTransition::Type>(PageTransition::AUTO_SUBFRAME | 204 static_cast<content::PageTransition>(
201 PageTransition::CHAIN_START | 205 content::PAGE_TRANSITION_AUTO_SUBFRAME |
202 PageTransition::CHAIN_END), 206 content::PAGE_TRANSITION_CHAIN_START |
207 content::PAGE_TRANSITION_CHAIN_END),
203 0); 208 0);
204 visit_info5.visit_id = 5; 209 visit_info5.visit_id = 5;
205 EXPECT_TRUE(AddVisit(&visit_info5, SOURCE_BROWSED)); 210 EXPECT_TRUE(AddVisit(&visit_info5, SOURCE_BROWSED));
206 211
207 // Query the visits for all time, we should not get the first (duplicate of 212 // Query the visits for all time, we should not get the first (duplicate of
208 // the second) or the redirect or subframe visits. 213 // the second) or the redirect or subframe visits.
209 VisitVector results; 214 VisitVector results;
210 GetVisibleVisitsInRange(Time(), Time(), 0, &results); 215 GetVisibleVisitsInRange(Time(), Time(), 0, &results);
211 ASSERT_EQ(static_cast<size_t>(2), results.size()); 216 ASSERT_EQ(static_cast<size_t>(2), results.size());
212 EXPECT_TRUE(IsVisitInfoEqual(results[0], visit_info4) && 217 EXPECT_TRUE(IsVisitInfoEqual(results[0], visit_info4) &&
213 IsVisitInfoEqual(results[1], visit_info2)); 218 IsVisitInfoEqual(results[1], visit_info2));
214 219
215 // Query a time range and make sure beginning is inclusive and ending is 220 // Query a time range and make sure beginning is inclusive and ending is
216 // exclusive. 221 // exclusive.
217 GetVisibleVisitsInRange(visit_info2.visit_time, visit_info4.visit_time, 0, 222 GetVisibleVisitsInRange(visit_info2.visit_time, visit_info4.visit_time, 0,
218 &results); 223 &results);
219 ASSERT_EQ(static_cast<size_t>(1), results.size()); 224 ASSERT_EQ(static_cast<size_t>(1), results.size());
220 EXPECT_TRUE(IsVisitInfoEqual(results[0], visit_info2)); 225 EXPECT_TRUE(IsVisitInfoEqual(results[0], visit_info2));
221 226
222 // Query for a max count and make sure we get only that number. 227 // Query for a max count and make sure we get only that number.
223 GetVisibleVisitsInRange(Time(), Time(), 1, &results); 228 GetVisibleVisitsInRange(Time(), Time(), 1, &results);
224 ASSERT_EQ(static_cast<size_t>(1), results.size()); 229 ASSERT_EQ(static_cast<size_t>(1), results.size());
225 EXPECT_TRUE(IsVisitInfoEqual(results[0], visit_info4)); 230 EXPECT_TRUE(IsVisitInfoEqual(results[0], visit_info4));
226 } 231 }
227 232
228 TEST_F(VisitDatabaseTest, VisitSource) { 233 TEST_F(VisitDatabaseTest, VisitSource) {
229 // Add visits. 234 // Add visits.
230 VisitRow visit_info1(111, Time::Now(), 0, PageTransition::LINK, 0); 235 VisitRow visit_info1(111, Time::Now(), 0, content::PAGE_TRANSITION_LINK, 0);
231 ASSERT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED)); 236 ASSERT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED));
232 237
233 VisitRow visit_info2(112, Time::Now(), 1, PageTransition::TYPED, 0); 238 VisitRow visit_info2(112, Time::Now(), 1, content::PAGE_TRANSITION_TYPED, 0);
234 ASSERT_TRUE(AddVisit(&visit_info2, SOURCE_SYNCED)); 239 ASSERT_TRUE(AddVisit(&visit_info2, SOURCE_SYNCED));
235 240
236 VisitRow visit_info3(113, Time::Now(), 0, PageTransition::TYPED, 0); 241 VisitRow visit_info3(113, Time::Now(), 0, content::PAGE_TRANSITION_TYPED, 0);
237 ASSERT_TRUE(AddVisit(&visit_info3, SOURCE_EXTENSION)); 242 ASSERT_TRUE(AddVisit(&visit_info3, SOURCE_EXTENSION));
238 243
239 // Query each visit. 244 // Query each visit.
240 std::vector<VisitRow> matches; 245 std::vector<VisitRow> matches;
241 ASSERT_TRUE(GetVisitsForURL(111, &matches)); 246 ASSERT_TRUE(GetVisitsForURL(111, &matches));
242 ASSERT_EQ(1U, matches.size()); 247 ASSERT_EQ(1U, matches.size());
243 VisitSourceMap sources; 248 VisitSourceMap sources;
244 GetVisitsSource(matches, &sources); 249 GetVisitsSource(matches, &sources);
245 EXPECT_EQ(0U, sources.size()); 250 EXPECT_EQ(0U, sources.size());
246 251
247 ASSERT_TRUE(GetVisitsForURL(112, &matches)); 252 ASSERT_TRUE(GetVisitsForURL(112, &matches));
248 ASSERT_EQ(1U, matches.size()); 253 ASSERT_EQ(1U, matches.size());
249 GetVisitsSource(matches, &sources); 254 GetVisitsSource(matches, &sources);
250 ASSERT_EQ(1U, sources.size()); 255 ASSERT_EQ(1U, sources.size());
251 EXPECT_EQ(SOURCE_SYNCED, sources[matches[0].visit_id]); 256 EXPECT_EQ(SOURCE_SYNCED, sources[matches[0].visit_id]);
252 257
253 ASSERT_TRUE(GetVisitsForURL(113, &matches)); 258 ASSERT_TRUE(GetVisitsForURL(113, &matches));
254 ASSERT_EQ(1U, matches.size()); 259 ASSERT_EQ(1U, matches.size());
255 GetVisitsSource(matches, &sources); 260 GetVisitsSource(matches, &sources);
256 ASSERT_EQ(1U, sources.size()); 261 ASSERT_EQ(1U, sources.size());
257 EXPECT_EQ(SOURCE_EXTENSION, sources[matches[0].visit_id]); 262 EXPECT_EQ(SOURCE_EXTENSION, sources[matches[0].visit_id]);
258 } 263 }
259 264
260 TEST_F(VisitDatabaseTest, GetIndexedVisits) { 265 TEST_F(VisitDatabaseTest, GetIndexedVisits) {
261 // Add non-indexed visits. 266 // Add non-indexed visits.
262 int url_id = 111; 267 int url_id = 111;
263 VisitRow visit_info1(url_id, Time::Now(), 0, PageTransition::LINK, 0); 268 VisitRow visit_info1(
269 url_id, Time::Now(), 0, content::PAGE_TRANSITION_LINK, 0);
264 ASSERT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED)); 270 ASSERT_TRUE(AddVisit(&visit_info1, SOURCE_BROWSED));
265 271
266 VisitRow visit_info2(url_id, Time::Now(), 0, PageTransition::TYPED, 0); 272 VisitRow visit_info2(
273 url_id, Time::Now(), 0, content::PAGE_TRANSITION_TYPED, 0);
267 ASSERT_TRUE(AddVisit(&visit_info2, SOURCE_SYNCED)); 274 ASSERT_TRUE(AddVisit(&visit_info2, SOURCE_SYNCED));
268 275
269 std::vector<VisitRow> visits; 276 std::vector<VisitRow> visits;
270 EXPECT_TRUE(GetVisitsForURL(url_id, &visits)); 277 EXPECT_TRUE(GetVisitsForURL(url_id, &visits));
271 EXPECT_EQ(static_cast<size_t>(2), visits.size()); 278 EXPECT_EQ(static_cast<size_t>(2), visits.size());
272 EXPECT_TRUE(GetIndexedVisitsForURL(url_id, &visits)); 279 EXPECT_TRUE(GetIndexedVisitsForURL(url_id, &visits));
273 EXPECT_EQ(static_cast<size_t>(0), visits.size()); 280 EXPECT_EQ(static_cast<size_t>(0), visits.size());
274 281
275 VisitRow visit_info3(url_id, Time::Now(), 2, PageTransition::TYPED, 0); 282 VisitRow visit_info3(
283 url_id, Time::Now(), 2, content::PAGE_TRANSITION_TYPED, 0);
276 visit_info3.is_indexed = true; 284 visit_info3.is_indexed = true;
277 ASSERT_TRUE(AddVisit(&visit_info3, SOURCE_SYNCED)); 285 ASSERT_TRUE(AddVisit(&visit_info3, SOURCE_SYNCED));
278 EXPECT_TRUE(GetVisitsForURL(url_id, &visits)); 286 EXPECT_TRUE(GetVisitsForURL(url_id, &visits));
279 EXPECT_EQ(static_cast<size_t>(3), visits.size()); 287 EXPECT_EQ(static_cast<size_t>(3), visits.size());
280 EXPECT_TRUE(GetIndexedVisitsForURL(url_id, &visits)); 288 EXPECT_TRUE(GetIndexedVisitsForURL(url_id, &visits));
281 EXPECT_EQ(static_cast<size_t>(1), visits.size()); 289 EXPECT_EQ(static_cast<size_t>(1), visits.size());
282 } 290 }
283 291
284 } // namespace history 292 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/visit_database.cc ('k') | chrome/browser/importer/importer_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698