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 // History unit tests come in two flavors: | 5 // History unit tests come in two flavors: |
6 // | 6 // |
7 // 1. The more complicated style is that the unit test creates a full history | 7 // 1. The more complicated style is that the unit test creates a full history |
8 // service. This spawns a background thread for the history backend, and | 8 // service. This spawns a background thread for the history backend, and |
9 // all communication is asynchronous. This is useful for testing more | 9 // all communication is asynchronous. This is useful for testing more |
10 // complicated things or end-to-end behavior. | 10 // complicated things or end-to-end behavior. |
(...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1112 URLRow query_url_row_; | 1112 URLRow query_url_row_; |
1113 VisitVector query_url_visits_; | 1113 VisitVector query_url_visits_; |
1114 }; | 1114 }; |
1115 | 1115 |
1116 TEST_F(HistoryTest, AddPage) { | 1116 TEST_F(HistoryTest, AddPage) { |
1117 ASSERT_TRUE(history_service_.get()); | 1117 ASSERT_TRUE(history_service_.get()); |
1118 // Add the page once from a child frame. | 1118 // Add the page once from a child frame. |
1119 const GURL test_url("http://www.google.com/"); | 1119 const GURL test_url("http://www.google.com/"); |
1120 history_service_->AddPage(test_url, base::Time::Now(), NULL, 0, GURL(), | 1120 history_service_->AddPage(test_url, base::Time::Now(), NULL, 0, GURL(), |
1121 history::RedirectList(), | 1121 history::RedirectList(), |
1122 content::PAGE_TRANSITION_MANUAL_SUBFRAME, | 1122 ui::PAGE_TRANSITION_MANUAL_SUBFRAME, |
1123 history::SOURCE_BROWSED, false); | 1123 history::SOURCE_BROWSED, false); |
1124 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1124 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1125 EXPECT_EQ(1, query_url_row_.visit_count()); | 1125 EXPECT_EQ(1, query_url_row_.visit_count()); |
1126 EXPECT_EQ(0, query_url_row_.typed_count()); | 1126 EXPECT_EQ(0, query_url_row_.typed_count()); |
1127 EXPECT_TRUE(query_url_row_.hidden()); // Hidden because of child frame. | 1127 EXPECT_TRUE(query_url_row_.hidden()); // Hidden because of child frame. |
1128 | 1128 |
1129 // Add the page once from the main frame (should unhide it). | 1129 // Add the page once from the main frame (should unhide it). |
1130 history_service_->AddPage(test_url, base::Time::Now(), NULL, 0, GURL(), | 1130 history_service_->AddPage(test_url, base::Time::Now(), NULL, 0, GURL(), |
1131 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1131 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1132 history::SOURCE_BROWSED, false); | 1132 history::SOURCE_BROWSED, false); |
1133 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1133 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1134 EXPECT_EQ(2, query_url_row_.visit_count()); // Added twice. | 1134 EXPECT_EQ(2, query_url_row_.visit_count()); // Added twice. |
1135 EXPECT_EQ(0, query_url_row_.typed_count()); // Never typed. | 1135 EXPECT_EQ(0, query_url_row_.typed_count()); // Never typed. |
1136 EXPECT_FALSE(query_url_row_.hidden()); // Because loaded in main frame. | 1136 EXPECT_FALSE(query_url_row_.hidden()); // Because loaded in main frame. |
1137 } | 1137 } |
1138 | 1138 |
1139 TEST_F(HistoryTest, AddRedirect) { | 1139 TEST_F(HistoryTest, AddRedirect) { |
1140 ASSERT_TRUE(history_service_.get()); | 1140 ASSERT_TRUE(history_service_.get()); |
1141 const char* first_sequence[] = { | 1141 const char* first_sequence[] = { |
1142 "http://first.page.com/", | 1142 "http://first.page.com/", |
1143 "http://second.page.com/"}; | 1143 "http://second.page.com/"}; |
1144 int first_count = arraysize(first_sequence); | 1144 int first_count = arraysize(first_sequence); |
1145 history::RedirectList first_redirects; | 1145 history::RedirectList first_redirects; |
1146 for (int i = 0; i < first_count; i++) | 1146 for (int i = 0; i < first_count; i++) |
1147 first_redirects.push_back(GURL(first_sequence[i])); | 1147 first_redirects.push_back(GURL(first_sequence[i])); |
1148 | 1148 |
1149 // Add the sequence of pages as a server with no referrer. Note that we need | 1149 // Add the sequence of pages as a server with no referrer. Note that we need |
1150 // to have a non-NULL page ID scope. | 1150 // to have a non-NULL page ID scope. |
1151 history_service_->AddPage( | 1151 history_service_->AddPage( |
1152 first_redirects.back(), base::Time::Now(), | 1152 first_redirects.back(), base::Time::Now(), |
1153 reinterpret_cast<ContextID>(1), 0, GURL(), first_redirects, | 1153 reinterpret_cast<ContextID>(1), 0, GURL(), first_redirects, |
1154 content::PAGE_TRANSITION_LINK, history::SOURCE_BROWSED, true); | 1154 ui::PAGE_TRANSITION_LINK, history::SOURCE_BROWSED, true); |
1155 | 1155 |
1156 // The first page should be added once with a link visit type (because we set | 1156 // The first page should be added once with a link visit type (because we set |
1157 // LINK when we added the original URL, and a referrer of nowhere (0). | 1157 // LINK when we added the original URL, and a referrer of nowhere (0). |
1158 EXPECT_TRUE(QueryURL(history_service_.get(), first_redirects[0])); | 1158 EXPECT_TRUE(QueryURL(history_service_.get(), first_redirects[0])); |
1159 EXPECT_EQ(1, query_url_row_.visit_count()); | 1159 EXPECT_EQ(1, query_url_row_.visit_count()); |
1160 ASSERT_EQ(1U, query_url_visits_.size()); | 1160 ASSERT_EQ(1U, query_url_visits_.size()); |
1161 int64 first_visit = query_url_visits_[0].visit_id; | 1161 int64 first_visit = query_url_visits_[0].visit_id; |
1162 EXPECT_EQ(content::PAGE_TRANSITION_LINK | | 1162 EXPECT_EQ(ui::PAGE_TRANSITION_LINK | |
1163 content::PAGE_TRANSITION_CHAIN_START, | 1163 ui::PAGE_TRANSITION_CHAIN_START, |
1164 query_url_visits_[0].transition); | 1164 query_url_visits_[0].transition); |
1165 EXPECT_EQ(0, query_url_visits_[0].referring_visit); // No referrer. | 1165 EXPECT_EQ(0, query_url_visits_[0].referring_visit); // No referrer. |
1166 | 1166 |
1167 // The second page should be a server redirect type with a referrer of the | 1167 // The second page should be a server redirect type with a referrer of the |
1168 // first page. | 1168 // first page. |
1169 EXPECT_TRUE(QueryURL(history_service_.get(), first_redirects[1])); | 1169 EXPECT_TRUE(QueryURL(history_service_.get(), first_redirects[1])); |
1170 EXPECT_EQ(1, query_url_row_.visit_count()); | 1170 EXPECT_EQ(1, query_url_row_.visit_count()); |
1171 ASSERT_EQ(1U, query_url_visits_.size()); | 1171 ASSERT_EQ(1U, query_url_visits_.size()); |
1172 int64 second_visit = query_url_visits_[0].visit_id; | 1172 int64 second_visit = query_url_visits_[0].visit_id; |
1173 EXPECT_EQ(content::PAGE_TRANSITION_SERVER_REDIRECT | | 1173 EXPECT_EQ(ui::PAGE_TRANSITION_SERVER_REDIRECT | |
1174 content::PAGE_TRANSITION_CHAIN_END, | 1174 ui::PAGE_TRANSITION_CHAIN_END, |
1175 query_url_visits_[0].transition); | 1175 query_url_visits_[0].transition); |
1176 EXPECT_EQ(first_visit, query_url_visits_[0].referring_visit); | 1176 EXPECT_EQ(first_visit, query_url_visits_[0].referring_visit); |
1177 | 1177 |
1178 // Check that the redirect finding function successfully reports it. | 1178 // Check that the redirect finding function successfully reports it. |
1179 saved_redirects_.clear(); | 1179 saved_redirects_.clear(); |
1180 QueryRedirectsFrom(history_service_.get(), first_redirects[0]); | 1180 QueryRedirectsFrom(history_service_.get(), first_redirects[0]); |
1181 ASSERT_EQ(1U, saved_redirects_.size()); | 1181 ASSERT_EQ(1U, saved_redirects_.size()); |
1182 EXPECT_EQ(first_redirects[1], saved_redirects_[0]); | 1182 EXPECT_EQ(first_redirects[1], saved_redirects_[0]); |
1183 | 1183 |
1184 // Now add a client redirect from that second visit to a third, client | 1184 // Now add a client redirect from that second visit to a third, client |
1185 // redirects are tracked by the RenderView prior to updating history, | 1185 // redirects are tracked by the RenderView prior to updating history, |
1186 // so we pass in a CLIENT_REDIRECT qualifier to mock that behavior. | 1186 // so we pass in a CLIENT_REDIRECT qualifier to mock that behavior. |
1187 history::RedirectList second_redirects; | 1187 history::RedirectList second_redirects; |
1188 second_redirects.push_back(first_redirects[1]); | 1188 second_redirects.push_back(first_redirects[1]); |
1189 second_redirects.push_back(GURL("http://last.page.com/")); | 1189 second_redirects.push_back(GURL("http://last.page.com/")); |
1190 history_service_->AddPage(second_redirects[1], base::Time::Now(), | 1190 history_service_->AddPage(second_redirects[1], base::Time::Now(), |
1191 reinterpret_cast<ContextID>(1), 1, | 1191 reinterpret_cast<ContextID>(1), 1, |
1192 second_redirects[0], second_redirects, | 1192 second_redirects[0], second_redirects, |
1193 static_cast<content::PageTransition>( | 1193 ui::PageTransitionFromInt( |
1194 content::PAGE_TRANSITION_LINK | | 1194 ui::PAGE_TRANSITION_LINK | |
1195 content::PAGE_TRANSITION_CLIENT_REDIRECT), | 1195 ui::PAGE_TRANSITION_CLIENT_REDIRECT), |
1196 history::SOURCE_BROWSED, true); | 1196 history::SOURCE_BROWSED, true); |
1197 | 1197 |
1198 // The last page (source of the client redirect) should NOT have an | 1198 // The last page (source of the client redirect) should NOT have an |
1199 // additional visit added, because it was a client redirect (normally it | 1199 // additional visit added, because it was a client redirect (normally it |
1200 // would). We should only have 1 left over from the first sequence. | 1200 // would). We should only have 1 left over from the first sequence. |
1201 EXPECT_TRUE(QueryURL(history_service_.get(), second_redirects[0])); | 1201 EXPECT_TRUE(QueryURL(history_service_.get(), second_redirects[0])); |
1202 EXPECT_EQ(1, query_url_row_.visit_count()); | 1202 EXPECT_EQ(1, query_url_row_.visit_count()); |
1203 | 1203 |
1204 // The final page should be set as a client redirect from the previous visit. | 1204 // The final page should be set as a client redirect from the previous visit. |
1205 EXPECT_TRUE(QueryURL(history_service_.get(), second_redirects[1])); | 1205 EXPECT_TRUE(QueryURL(history_service_.get(), second_redirects[1])); |
1206 EXPECT_EQ(1, query_url_row_.visit_count()); | 1206 EXPECT_EQ(1, query_url_row_.visit_count()); |
1207 ASSERT_EQ(1U, query_url_visits_.size()); | 1207 ASSERT_EQ(1U, query_url_visits_.size()); |
1208 EXPECT_EQ(content::PAGE_TRANSITION_CLIENT_REDIRECT | | 1208 EXPECT_EQ(ui::PAGE_TRANSITION_CLIENT_REDIRECT | |
1209 content::PAGE_TRANSITION_CHAIN_END, | 1209 ui::PAGE_TRANSITION_CHAIN_END, |
1210 query_url_visits_[0].transition); | 1210 query_url_visits_[0].transition); |
1211 EXPECT_EQ(second_visit, query_url_visits_[0].referring_visit); | 1211 EXPECT_EQ(second_visit, query_url_visits_[0].referring_visit); |
1212 } | 1212 } |
1213 | 1213 |
1214 TEST_F(HistoryTest, MakeIntranetURLsTyped) { | 1214 TEST_F(HistoryTest, MakeIntranetURLsTyped) { |
1215 ASSERT_TRUE(history_service_.get()); | 1215 ASSERT_TRUE(history_service_.get()); |
1216 | 1216 |
1217 // Add a non-typed visit to an intranet URL on an unvisited host. This should | 1217 // Add a non-typed visit to an intranet URL on an unvisited host. This should |
1218 // get promoted to a typed visit. | 1218 // get promoted to a typed visit. |
1219 const GURL test_url("http://intranet_host/path"); | 1219 const GURL test_url("http://intranet_host/path"); |
1220 history_service_->AddPage( | 1220 history_service_->AddPage( |
1221 test_url, base::Time::Now(), NULL, 0, GURL(), | 1221 test_url, base::Time::Now(), NULL, 0, GURL(), |
1222 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1222 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1223 history::SOURCE_BROWSED, false); | 1223 history::SOURCE_BROWSED, false); |
1224 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1224 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1225 EXPECT_EQ(1, query_url_row_.visit_count()); | 1225 EXPECT_EQ(1, query_url_row_.visit_count()); |
1226 EXPECT_EQ(1, query_url_row_.typed_count()); | 1226 EXPECT_EQ(1, query_url_row_.typed_count()); |
1227 ASSERT_EQ(1U, query_url_visits_.size()); | 1227 ASSERT_EQ(1U, query_url_visits_.size()); |
1228 EXPECT_EQ(content::PAGE_TRANSITION_TYPED, | 1228 EXPECT_EQ(ui::PAGE_TRANSITION_TYPED, |
1229 content::PageTransitionStripQualifier(query_url_visits_[0].transition)); | 1229 ui::PageTransitionStripQualifier(query_url_visits_[0].transition)); |
1230 | 1230 |
1231 // Add more visits on the same host. None of these should be promoted since | 1231 // Add more visits on the same host. None of these should be promoted since |
1232 // there is already a typed visit. | 1232 // there is already a typed visit. |
1233 | 1233 |
1234 // Different path. | 1234 // Different path. |
1235 const GURL test_url2("http://intranet_host/different_path"); | 1235 const GURL test_url2("http://intranet_host/different_path"); |
1236 history_service_->AddPage( | 1236 history_service_->AddPage( |
1237 test_url2, base::Time::Now(), NULL, 0, GURL(), | 1237 test_url2, base::Time::Now(), NULL, 0, GURL(), |
1238 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1238 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1239 history::SOURCE_BROWSED, false); | 1239 history::SOURCE_BROWSED, false); |
1240 EXPECT_TRUE(QueryURL(history_service_.get(), test_url2)); | 1240 EXPECT_TRUE(QueryURL(history_service_.get(), test_url2)); |
1241 EXPECT_EQ(1, query_url_row_.visit_count()); | 1241 EXPECT_EQ(1, query_url_row_.visit_count()); |
1242 EXPECT_EQ(0, query_url_row_.typed_count()); | 1242 EXPECT_EQ(0, query_url_row_.typed_count()); |
1243 ASSERT_EQ(1U, query_url_visits_.size()); | 1243 ASSERT_EQ(1U, query_url_visits_.size()); |
1244 EXPECT_EQ(content::PAGE_TRANSITION_LINK, | 1244 EXPECT_EQ(ui::PAGE_TRANSITION_LINK, |
1245 content::PageTransitionStripQualifier(query_url_visits_[0].transition)); | 1245 ui::PageTransitionStripQualifier(query_url_visits_[0].transition)); |
1246 | 1246 |
1247 // No path. | 1247 // No path. |
1248 const GURL test_url3("http://intranet_host/"); | 1248 const GURL test_url3("http://intranet_host/"); |
1249 history_service_->AddPage( | 1249 history_service_->AddPage( |
1250 test_url3, base::Time::Now(), NULL, 0, GURL(), | 1250 test_url3, base::Time::Now(), NULL, 0, GURL(), |
1251 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1251 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1252 history::SOURCE_BROWSED, false); | 1252 history::SOURCE_BROWSED, false); |
1253 EXPECT_TRUE(QueryURL(history_service_.get(), test_url3)); | 1253 EXPECT_TRUE(QueryURL(history_service_.get(), test_url3)); |
1254 EXPECT_EQ(1, query_url_row_.visit_count()); | 1254 EXPECT_EQ(1, query_url_row_.visit_count()); |
1255 EXPECT_EQ(0, query_url_row_.typed_count()); | 1255 EXPECT_EQ(0, query_url_row_.typed_count()); |
1256 ASSERT_EQ(1U, query_url_visits_.size()); | 1256 ASSERT_EQ(1U, query_url_visits_.size()); |
1257 EXPECT_EQ(content::PAGE_TRANSITION_LINK, | 1257 EXPECT_EQ(ui::PAGE_TRANSITION_LINK, |
1258 content::PageTransitionStripQualifier(query_url_visits_[0].transition)); | 1258 ui::PageTransitionStripQualifier(query_url_visits_[0].transition)); |
1259 | 1259 |
1260 // Different scheme. | 1260 // Different scheme. |
1261 const GURL test_url4("https://intranet_host/"); | 1261 const GURL test_url4("https://intranet_host/"); |
1262 history_service_->AddPage( | 1262 history_service_->AddPage( |
1263 test_url4, base::Time::Now(), NULL, 0, GURL(), | 1263 test_url4, base::Time::Now(), NULL, 0, GURL(), |
1264 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1264 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1265 history::SOURCE_BROWSED, false); | 1265 history::SOURCE_BROWSED, false); |
1266 EXPECT_TRUE(QueryURL(history_service_.get(), test_url4)); | 1266 EXPECT_TRUE(QueryURL(history_service_.get(), test_url4)); |
1267 EXPECT_EQ(1, query_url_row_.visit_count()); | 1267 EXPECT_EQ(1, query_url_row_.visit_count()); |
1268 EXPECT_EQ(0, query_url_row_.typed_count()); | 1268 EXPECT_EQ(0, query_url_row_.typed_count()); |
1269 ASSERT_EQ(1U, query_url_visits_.size()); | 1269 ASSERT_EQ(1U, query_url_visits_.size()); |
1270 EXPECT_EQ(content::PAGE_TRANSITION_LINK, | 1270 EXPECT_EQ(ui::PAGE_TRANSITION_LINK, |
1271 content::PageTransitionStripQualifier(query_url_visits_[0].transition)); | 1271 ui::PageTransitionStripQualifier(query_url_visits_[0].transition)); |
1272 | 1272 |
1273 // Different transition. | 1273 // Different transition. |
1274 const GURL test_url5("http://intranet_host/another_path"); | 1274 const GURL test_url5("http://intranet_host/another_path"); |
1275 history_service_->AddPage( | 1275 history_service_->AddPage( |
1276 test_url5, base::Time::Now(), NULL, 0, GURL(), | 1276 test_url5, base::Time::Now(), NULL, 0, GURL(), |
1277 history::RedirectList(), | 1277 history::RedirectList(), |
1278 content::PAGE_TRANSITION_AUTO_BOOKMARK, | 1278 ui::PAGE_TRANSITION_AUTO_BOOKMARK, |
1279 history::SOURCE_BROWSED, false); | 1279 history::SOURCE_BROWSED, false); |
1280 EXPECT_TRUE(QueryURL(history_service_.get(), test_url5)); | 1280 EXPECT_TRUE(QueryURL(history_service_.get(), test_url5)); |
1281 EXPECT_EQ(1, query_url_row_.visit_count()); | 1281 EXPECT_EQ(1, query_url_row_.visit_count()); |
1282 EXPECT_EQ(0, query_url_row_.typed_count()); | 1282 EXPECT_EQ(0, query_url_row_.typed_count()); |
1283 ASSERT_EQ(1U, query_url_visits_.size()); | 1283 ASSERT_EQ(1U, query_url_visits_.size()); |
1284 EXPECT_EQ(content::PAGE_TRANSITION_AUTO_BOOKMARK, | 1284 EXPECT_EQ(ui::PAGE_TRANSITION_AUTO_BOOKMARK, |
1285 content::PageTransitionStripQualifier(query_url_visits_[0].transition)); | 1285 ui::PageTransitionStripQualifier(query_url_visits_[0].transition)); |
1286 | 1286 |
1287 // Original URL. | 1287 // Original URL. |
1288 history_service_->AddPage( | 1288 history_service_->AddPage( |
1289 test_url, base::Time::Now(), NULL, 0, GURL(), | 1289 test_url, base::Time::Now(), NULL, 0, GURL(), |
1290 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1290 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1291 history::SOURCE_BROWSED, false); | 1291 history::SOURCE_BROWSED, false); |
1292 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1292 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1293 EXPECT_EQ(2, query_url_row_.visit_count()); | 1293 EXPECT_EQ(2, query_url_row_.visit_count()); |
1294 EXPECT_EQ(1, query_url_row_.typed_count()); | 1294 EXPECT_EQ(1, query_url_row_.typed_count()); |
1295 ASSERT_EQ(2U, query_url_visits_.size()); | 1295 ASSERT_EQ(2U, query_url_visits_.size()); |
1296 EXPECT_EQ(content::PAGE_TRANSITION_LINK, | 1296 EXPECT_EQ(ui::PAGE_TRANSITION_LINK, |
1297 content::PageTransitionStripQualifier(query_url_visits_[1].transition)); | 1297 ui::PageTransitionStripQualifier(query_url_visits_[1].transition)); |
1298 } | 1298 } |
1299 | 1299 |
1300 TEST_F(HistoryTest, Typed) { | 1300 TEST_F(HistoryTest, Typed) { |
1301 const ContextID context_id = reinterpret_cast<ContextID>(1); | 1301 const ContextID context_id = reinterpret_cast<ContextID>(1); |
1302 | 1302 |
1303 ASSERT_TRUE(history_service_.get()); | 1303 ASSERT_TRUE(history_service_.get()); |
1304 | 1304 |
1305 // Add the page once as typed. | 1305 // Add the page once as typed. |
1306 const GURL test_url("http://www.google.com/"); | 1306 const GURL test_url("http://www.google.com/"); |
1307 history_service_->AddPage( | 1307 history_service_->AddPage( |
1308 test_url, base::Time::Now(), context_id, 0, GURL(), | 1308 test_url, base::Time::Now(), context_id, 0, GURL(), |
1309 history::RedirectList(), content::PAGE_TRANSITION_TYPED, | 1309 history::RedirectList(), ui::PAGE_TRANSITION_TYPED, |
1310 history::SOURCE_BROWSED, false); | 1310 history::SOURCE_BROWSED, false); |
1311 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1311 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1312 | 1312 |
1313 // We should have the same typed & visit count. | 1313 // We should have the same typed & visit count. |
1314 EXPECT_EQ(1, query_url_row_.visit_count()); | 1314 EXPECT_EQ(1, query_url_row_.visit_count()); |
1315 EXPECT_EQ(1, query_url_row_.typed_count()); | 1315 EXPECT_EQ(1, query_url_row_.typed_count()); |
1316 | 1316 |
1317 // Add the page again not typed. | 1317 // Add the page again not typed. |
1318 history_service_->AddPage( | 1318 history_service_->AddPage( |
1319 test_url, base::Time::Now(), context_id, 0, GURL(), | 1319 test_url, base::Time::Now(), context_id, 0, GURL(), |
1320 history::RedirectList(), content::PAGE_TRANSITION_LINK, | 1320 history::RedirectList(), ui::PAGE_TRANSITION_LINK, |
1321 history::SOURCE_BROWSED, false); | 1321 history::SOURCE_BROWSED, false); |
1322 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1322 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1323 | 1323 |
1324 // The second time should not have updated the typed count. | 1324 // The second time should not have updated the typed count. |
1325 EXPECT_EQ(2, query_url_row_.visit_count()); | 1325 EXPECT_EQ(2, query_url_row_.visit_count()); |
1326 EXPECT_EQ(1, query_url_row_.typed_count()); | 1326 EXPECT_EQ(1, query_url_row_.typed_count()); |
1327 | 1327 |
1328 // Add the page again as a generated URL. | 1328 // Add the page again as a generated URL. |
1329 history_service_->AddPage( | 1329 history_service_->AddPage( |
1330 test_url, base::Time::Now(), context_id, 0, GURL(), | 1330 test_url, base::Time::Now(), context_id, 0, GURL(), |
1331 history::RedirectList(), content::PAGE_TRANSITION_GENERATED, | 1331 history::RedirectList(), ui::PAGE_TRANSITION_GENERATED, |
1332 history::SOURCE_BROWSED, false); | 1332 history::SOURCE_BROWSED, false); |
1333 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1333 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1334 | 1334 |
1335 // This should have worked like a link click. | 1335 // This should have worked like a link click. |
1336 EXPECT_EQ(3, query_url_row_.visit_count()); | 1336 EXPECT_EQ(3, query_url_row_.visit_count()); |
1337 EXPECT_EQ(1, query_url_row_.typed_count()); | 1337 EXPECT_EQ(1, query_url_row_.typed_count()); |
1338 | 1338 |
1339 // Add the page again as a reload. | 1339 // Add the page again as a reload. |
1340 history_service_->AddPage( | 1340 history_service_->AddPage( |
1341 test_url, base::Time::Now(), context_id, 0, GURL(), | 1341 test_url, base::Time::Now(), context_id, 0, GURL(), |
1342 history::RedirectList(), content::PAGE_TRANSITION_RELOAD, | 1342 history::RedirectList(), ui::PAGE_TRANSITION_RELOAD, |
1343 history::SOURCE_BROWSED, false); | 1343 history::SOURCE_BROWSED, false); |
1344 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1344 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1345 | 1345 |
1346 // This should not have incremented any visit counts. | 1346 // This should not have incremented any visit counts. |
1347 EXPECT_EQ(3, query_url_row_.visit_count()); | 1347 EXPECT_EQ(3, query_url_row_.visit_count()); |
1348 EXPECT_EQ(1, query_url_row_.typed_count()); | 1348 EXPECT_EQ(1, query_url_row_.typed_count()); |
1349 } | 1349 } |
1350 | 1350 |
1351 TEST_F(HistoryTest, SetTitle) { | 1351 TEST_F(HistoryTest, SetTitle) { |
1352 ASSERT_TRUE(history_service_.get()); | 1352 ASSERT_TRUE(history_service_.get()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1384 const GURL url1("http://www.google.com/url1/"); | 1384 const GURL url1("http://www.google.com/url1/"); |
1385 const GURL url2("http://www.google.com/url2/"); | 1385 const GURL url2("http://www.google.com/url2/"); |
1386 const GURL url3("http://www.google.com/url3/"); | 1386 const GURL url3("http://www.google.com/url3/"); |
1387 const GURL url4("http://www.google.com/url4/"); | 1387 const GURL url4("http://www.google.com/url4/"); |
1388 | 1388 |
1389 const ContextID context_id = reinterpret_cast<ContextID>(1); | 1389 const ContextID context_id = reinterpret_cast<ContextID>(1); |
1390 | 1390 |
1391 // Add two pages. | 1391 // Add two pages. |
1392 history_service_->AddPage( | 1392 history_service_->AddPage( |
1393 url0, base::Time::Now(), context_id, 0, GURL(), | 1393 url0, base::Time::Now(), context_id, 0, GURL(), |
1394 history::RedirectList(), content::PAGE_TRANSITION_TYPED, | 1394 history::RedirectList(), ui::PAGE_TRANSITION_TYPED, |
1395 history::SOURCE_BROWSED, false); | 1395 history::SOURCE_BROWSED, false); |
1396 history_service_->AddPage( | 1396 history_service_->AddPage( |
1397 url1, base::Time::Now(), context_id, 0, GURL(), | 1397 url1, base::Time::Now(), context_id, 0, GURL(), |
1398 history::RedirectList(), content::PAGE_TRANSITION_TYPED, | 1398 history::RedirectList(), ui::PAGE_TRANSITION_TYPED, |
1399 history::SOURCE_BROWSED, false); | 1399 history::SOURCE_BROWSED, false); |
1400 history_service_->QueryMostVisitedURLs( | 1400 history_service_->QueryMostVisitedURLs( |
1401 20, | 1401 20, |
1402 90, | 1402 90, |
1403 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, | 1403 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, |
1404 base::Unretained(this)), | 1404 base::Unretained(this)), |
1405 &tracker_); | 1405 &tracker_); |
1406 base::MessageLoop::current()->Run(); | 1406 base::MessageLoop::current()->Run(); |
1407 | 1407 |
1408 EXPECT_EQ(2U, most_visited_urls_.size()); | 1408 EXPECT_EQ(2U, most_visited_urls_.size()); |
1409 EXPECT_EQ(url0, most_visited_urls_[0].url); | 1409 EXPECT_EQ(url0, most_visited_urls_[0].url); |
1410 EXPECT_EQ(url1, most_visited_urls_[1].url); | 1410 EXPECT_EQ(url1, most_visited_urls_[1].url); |
1411 | 1411 |
1412 // Add another page. | 1412 // Add another page. |
1413 history_service_->AddPage( | 1413 history_service_->AddPage( |
1414 url2, base::Time::Now(), context_id, 0, GURL(), | 1414 url2, base::Time::Now(), context_id, 0, GURL(), |
1415 history::RedirectList(), content::PAGE_TRANSITION_TYPED, | 1415 history::RedirectList(), ui::PAGE_TRANSITION_TYPED, |
1416 history::SOURCE_BROWSED, false); | 1416 history::SOURCE_BROWSED, false); |
1417 history_service_->QueryMostVisitedURLs( | 1417 history_service_->QueryMostVisitedURLs( |
1418 20, | 1418 20, |
1419 90, | 1419 90, |
1420 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, | 1420 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, |
1421 base::Unretained(this)), | 1421 base::Unretained(this)), |
1422 &tracker_); | 1422 &tracker_); |
1423 base::MessageLoop::current()->Run(); | 1423 base::MessageLoop::current()->Run(); |
1424 | 1424 |
1425 EXPECT_EQ(3U, most_visited_urls_.size()); | 1425 EXPECT_EQ(3U, most_visited_urls_.size()); |
1426 EXPECT_EQ(url0, most_visited_urls_[0].url); | 1426 EXPECT_EQ(url0, most_visited_urls_[0].url); |
1427 EXPECT_EQ(url1, most_visited_urls_[1].url); | 1427 EXPECT_EQ(url1, most_visited_urls_[1].url); |
1428 EXPECT_EQ(url2, most_visited_urls_[2].url); | 1428 EXPECT_EQ(url2, most_visited_urls_[2].url); |
1429 | 1429 |
1430 // Revisit url2, making it the top URL. | 1430 // Revisit url2, making it the top URL. |
1431 history_service_->AddPage( | 1431 history_service_->AddPage( |
1432 url2, base::Time::Now(), context_id, 0, GURL(), | 1432 url2, base::Time::Now(), context_id, 0, GURL(), |
1433 history::RedirectList(), content::PAGE_TRANSITION_TYPED, | 1433 history::RedirectList(), ui::PAGE_TRANSITION_TYPED, |
1434 history::SOURCE_BROWSED, false); | 1434 history::SOURCE_BROWSED, false); |
1435 history_service_->QueryMostVisitedURLs( | 1435 history_service_->QueryMostVisitedURLs( |
1436 20, | 1436 20, |
1437 90, | 1437 90, |
1438 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, | 1438 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, |
1439 base::Unretained(this)), | 1439 base::Unretained(this)), |
1440 &tracker_); | 1440 &tracker_); |
1441 base::MessageLoop::current()->Run(); | 1441 base::MessageLoop::current()->Run(); |
1442 | 1442 |
1443 EXPECT_EQ(3U, most_visited_urls_.size()); | 1443 EXPECT_EQ(3U, most_visited_urls_.size()); |
1444 EXPECT_EQ(url2, most_visited_urls_[0].url); | 1444 EXPECT_EQ(url2, most_visited_urls_[0].url); |
1445 EXPECT_EQ(url0, most_visited_urls_[1].url); | 1445 EXPECT_EQ(url0, most_visited_urls_[1].url); |
1446 EXPECT_EQ(url1, most_visited_urls_[2].url); | 1446 EXPECT_EQ(url1, most_visited_urls_[2].url); |
1447 | 1447 |
1448 // Revisit url1, making it the top URL. | 1448 // Revisit url1, making it the top URL. |
1449 history_service_->AddPage( | 1449 history_service_->AddPage( |
1450 url1, base::Time::Now(), context_id, 0, GURL(), | 1450 url1, base::Time::Now(), context_id, 0, GURL(), |
1451 history::RedirectList(), content::PAGE_TRANSITION_TYPED, | 1451 history::RedirectList(), ui::PAGE_TRANSITION_TYPED, |
1452 history::SOURCE_BROWSED, false); | 1452 history::SOURCE_BROWSED, false); |
1453 history_service_->QueryMostVisitedURLs( | 1453 history_service_->QueryMostVisitedURLs( |
1454 20, | 1454 20, |
1455 90, | 1455 90, |
1456 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, | 1456 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, |
1457 base::Unretained(this)), | 1457 base::Unretained(this)), |
1458 &tracker_); | 1458 &tracker_); |
1459 base::MessageLoop::current()->Run(); | 1459 base::MessageLoop::current()->Run(); |
1460 | 1460 |
1461 EXPECT_EQ(3U, most_visited_urls_.size()); | 1461 EXPECT_EQ(3U, most_visited_urls_.size()); |
1462 EXPECT_EQ(url1, most_visited_urls_[0].url); | 1462 EXPECT_EQ(url1, most_visited_urls_[0].url); |
1463 EXPECT_EQ(url2, most_visited_urls_[1].url); | 1463 EXPECT_EQ(url2, most_visited_urls_[1].url); |
1464 EXPECT_EQ(url0, most_visited_urls_[2].url); | 1464 EXPECT_EQ(url0, most_visited_urls_[2].url); |
1465 | 1465 |
1466 // Redirects | 1466 // Redirects |
1467 history::RedirectList redirects; | 1467 history::RedirectList redirects; |
1468 redirects.push_back(url3); | 1468 redirects.push_back(url3); |
1469 redirects.push_back(url4); | 1469 redirects.push_back(url4); |
1470 | 1470 |
1471 // Visit url4 using redirects. | 1471 // Visit url4 using redirects. |
1472 history_service_->AddPage( | 1472 history_service_->AddPage( |
1473 url4, base::Time::Now(), context_id, 0, GURL(), | 1473 url4, base::Time::Now(), context_id, 0, GURL(), |
1474 redirects, content::PAGE_TRANSITION_TYPED, | 1474 redirects, ui::PAGE_TRANSITION_TYPED, |
1475 history::SOURCE_BROWSED, false); | 1475 history::SOURCE_BROWSED, false); |
1476 history_service_->QueryMostVisitedURLs( | 1476 history_service_->QueryMostVisitedURLs( |
1477 20, | 1477 20, |
1478 90, | 1478 90, |
1479 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, | 1479 base::Bind(&HistoryTest::OnMostVisitedURLsAvailable, |
1480 base::Unretained(this)), | 1480 base::Unretained(this)), |
1481 &tracker_); | 1481 &tracker_); |
1482 base::MessageLoop::current()->Run(); | 1482 base::MessageLoop::current()->Run(); |
1483 | 1483 |
1484 EXPECT_EQ(4U, most_visited_urls_.size()); | 1484 EXPECT_EQ(4U, most_visited_urls_.size()); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1569 // returned for the second time. | 1569 // returned for the second time. |
1570 TEST_F(HistoryTest, ProcessLocalDeleteDirectiveSyncOnline) { | 1570 TEST_F(HistoryTest, ProcessLocalDeleteDirectiveSyncOnline) { |
1571 ASSERT_TRUE(history_service_.get()); | 1571 ASSERT_TRUE(history_service_.get()); |
1572 | 1572 |
1573 const GURL test_url("http://www.google.com/"); | 1573 const GURL test_url("http://www.google.com/"); |
1574 for (int64 i = 1; i <= 10; ++i) { | 1574 for (int64 i = 1; i <= 10; ++i) { |
1575 base::Time t = | 1575 base::Time t = |
1576 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); | 1576 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); |
1577 history_service_->AddPage(test_url, t, NULL, 0, GURL(), | 1577 history_service_->AddPage(test_url, t, NULL, 0, GURL(), |
1578 history::RedirectList(), | 1578 history::RedirectList(), |
1579 content::PAGE_TRANSITION_LINK, | 1579 ui::PAGE_TRANSITION_LINK, |
1580 history::SOURCE_BROWSED, false); | 1580 history::SOURCE_BROWSED, false); |
1581 } | 1581 } |
1582 | 1582 |
1583 sync_pb::HistoryDeleteDirectiveSpecifics delete_directive; | 1583 sync_pb::HistoryDeleteDirectiveSpecifics delete_directive; |
1584 sync_pb::GlobalIdDirective* global_id_directive = | 1584 sync_pb::GlobalIdDirective* global_id_directive = |
1585 delete_directive.mutable_global_id_directive(); | 1585 delete_directive.mutable_global_id_directive(); |
1586 global_id_directive->add_global_id( | 1586 global_id_directive->add_global_id( |
1587 (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1)) | 1587 (base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(1)) |
1588 .ToInternalValue()); | 1588 .ToInternalValue()); |
1589 | 1589 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1634 // including ones that don't exist. The expected entries should be | 1634 // including ones that don't exist. The expected entries should be |
1635 // deleted. | 1635 // deleted. |
1636 TEST_F(HistoryTest, ProcessGlobalIdDeleteDirective) { | 1636 TEST_F(HistoryTest, ProcessGlobalIdDeleteDirective) { |
1637 ASSERT_TRUE(history_service_.get()); | 1637 ASSERT_TRUE(history_service_.get()); |
1638 const GURL test_url("http://www.google.com/"); | 1638 const GURL test_url("http://www.google.com/"); |
1639 for (int64 i = 1; i <= 20; i++) { | 1639 for (int64 i = 1; i <= 20; i++) { |
1640 base::Time t = | 1640 base::Time t = |
1641 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); | 1641 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); |
1642 history_service_->AddPage(test_url, t, NULL, 0, GURL(), | 1642 history_service_->AddPage(test_url, t, NULL, 0, GURL(), |
1643 history::RedirectList(), | 1643 history::RedirectList(), |
1644 content::PAGE_TRANSITION_LINK, | 1644 ui::PAGE_TRANSITION_LINK, |
1645 history::SOURCE_BROWSED, false); | 1645 history::SOURCE_BROWSED, false); |
1646 } | 1646 } |
1647 | 1647 |
1648 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1648 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1649 EXPECT_EQ(20, query_url_row_.visit_count()); | 1649 EXPECT_EQ(20, query_url_row_.visit_count()); |
1650 | 1650 |
1651 syncer::SyncDataList directives; | 1651 syncer::SyncDataList directives; |
1652 // 1st directive. | 1652 // 1st directive. |
1653 sync_pb::EntitySpecifics entity_specs; | 1653 sync_pb::EntitySpecifics entity_specs; |
1654 sync_pb::GlobalIdDirective* global_id_directive = | 1654 sync_pb::GlobalIdDirective* global_id_directive = |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1725 // Create delete directives for time ranges. The expected entries should be | 1725 // Create delete directives for time ranges. The expected entries should be |
1726 // deleted. | 1726 // deleted. |
1727 TEST_F(HistoryTest, ProcessTimeRangeDeleteDirective) { | 1727 TEST_F(HistoryTest, ProcessTimeRangeDeleteDirective) { |
1728 ASSERT_TRUE(history_service_.get()); | 1728 ASSERT_TRUE(history_service_.get()); |
1729 const GURL test_url("http://www.google.com/"); | 1729 const GURL test_url("http://www.google.com/"); |
1730 for (int64 i = 1; i <= 10; ++i) { | 1730 for (int64 i = 1; i <= 10; ++i) { |
1731 base::Time t = | 1731 base::Time t = |
1732 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); | 1732 base::Time::UnixEpoch() + base::TimeDelta::FromMicroseconds(i); |
1733 history_service_->AddPage(test_url, t, NULL, 0, GURL(), | 1733 history_service_->AddPage(test_url, t, NULL, 0, GURL(), |
1734 history::RedirectList(), | 1734 history::RedirectList(), |
1735 content::PAGE_TRANSITION_LINK, | 1735 ui::PAGE_TRANSITION_LINK, |
1736 history::SOURCE_BROWSED, false); | 1736 history::SOURCE_BROWSED, false); |
1737 } | 1737 } |
1738 | 1738 |
1739 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); | 1739 EXPECT_TRUE(QueryURL(history_service_.get(), test_url)); |
1740 EXPECT_EQ(10, query_url_row_.visit_count()); | 1740 EXPECT_EQ(10, query_url_row_.visit_count()); |
1741 | 1741 |
1742 syncer::SyncDataList directives; | 1742 syncer::SyncDataList directives; |
1743 // 1st directive. | 1743 // 1st directive. |
1744 sync_pb::EntitySpecifics entity_specs; | 1744 sync_pb::EntitySpecifics entity_specs; |
1745 sync_pb::TimeRangeDirective* time_range_directive = | 1745 sync_pb::TimeRangeDirective* time_range_directive = |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1866 std::vector<PageUsageData*> results; | 1866 std::vector<PageUsageData*> results; |
1867 db_->QuerySegmentUsage(segment_time, 10, &results); | 1867 db_->QuerySegmentUsage(segment_time, 10, &results); |
1868 ASSERT_EQ(1u, results.size()); | 1868 ASSERT_EQ(1u, results.size()); |
1869 EXPECT_EQ(url, results[0]->GetURL()); | 1869 EXPECT_EQ(url, results[0]->GetURL()); |
1870 EXPECT_EQ(segment_id, results[0]->GetID()); | 1870 EXPECT_EQ(segment_id, results[0]->GetID()); |
1871 EXPECT_EQ(title, results[0]->GetTitle()); | 1871 EXPECT_EQ(title, results[0]->GetTitle()); |
1872 STLDeleteElements(&results); | 1872 STLDeleteElements(&results); |
1873 } | 1873 } |
1874 | 1874 |
1875 } // namespace history | 1875 } // namespace history |
OLD | NEW |