| 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 |