| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/browser/ui/webui/browsing_history_handler.h" | 5 #include "chrome/browser/ui/webui/browsing_history_handler.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 } | 65 } |
| 66 | 66 |
| 67 // Returns true if |result| matches the test data given by |correct_result|, | 67 // Returns true if |result| matches the test data given by |correct_result|, |
| 68 // otherwise returns false. | 68 // otherwise returns false. |
| 69 bool ResultEquals( | 69 bool ResultEquals( |
| 70 const BrowsingHistoryHandler::HistoryEntry& result, | 70 const BrowsingHistoryHandler::HistoryEntry& result, |
| 71 const TestResult& correct_result) { | 71 const TestResult& correct_result) { |
| 72 base::Time correct_time = | 72 base::Time correct_time = |
| 73 baseline_time + base::TimeDelta::FromHours(correct_result.hour_offset); | 73 baseline_time + base::TimeDelta::FromHours(correct_result.hour_offset); |
| 74 | 74 |
| 75 return result.time == correct_time && result.url == GURL(correct_result.url); | 75 return result.time == correct_time && result.url == correct_result.url; |
| 76 } | 76 } |
| 77 | 77 |
| 78 void IgnoreBoolAndDoNothing(bool ignored_argument) {} | 78 void IgnoreBoolAndDoNothing(bool ignored_argument) {} |
| 79 | 79 |
| 80 class TestSyncService : public browser_sync::TestProfileSyncService { | 80 class TestSyncService : public browser_sync::TestProfileSyncService { |
| 81 public: | 81 public: |
| 82 explicit TestSyncService(Profile* profile) | 82 explicit TestSyncService(Profile* profile) |
| 83 : browser_sync::TestProfileSyncService( | 83 : browser_sync::TestProfileSyncService( |
| 84 CreateProfileSyncServiceParamsForTest(profile)), | 84 CreateProfileSyncServiceParamsForTest(profile)), |
| 85 sync_active_(true) {} | 85 sync_active_(true) {} |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 // Fails on Android. http://crbug.com/2345 | 182 // Fails on Android. http://crbug.com/2345 |
| 183 #if defined(OS_ANDROID) | 183 #if defined(OS_ANDROID) |
| 184 #define MAYBE_MergeDuplicateResults DISABLED_MergeDuplicateResults | 184 #define MAYBE_MergeDuplicateResults DISABLED_MergeDuplicateResults |
| 185 #else | 185 #else |
| 186 #define MAYBE_MergeDuplicateResults MergeDuplicateResults | 186 #define MAYBE_MergeDuplicateResults MergeDuplicateResults |
| 187 #endif | 187 #endif |
| 188 TEST_F(BrowsingHistoryHandlerTest, MAYBE_MergeDuplicateResults) { | 188 TEST_F(BrowsingHistoryHandlerTest, MAYBE_MergeDuplicateResults) { |
| 189 { | 189 { |
| 190 // Basic test that duplicates on the same day are removed. | 190 // Basic test that duplicates on the same day are removed. |
| 191 TestResult test_data[] = { | 191 TestResult test_data[] = { |
| 192 { "http://google.com", 0 }, | 192 { "http://google.com/", 0 }, |
| 193 { "http://google.de", 1 }, | 193 { "http://google.de/", 1 }, |
| 194 { "http://google.com", 2 }, | 194 { "http://google.com/", 2 }, |
| 195 { "http://google.com", 3 } // Most recent. | 195 { "http://google.com/", 3 } // Most recent. |
| 196 }; | 196 }; |
| 197 std::vector<BrowsingHistoryHandler::HistoryEntry> results; | 197 std::vector<BrowsingHistoryHandler::HistoryEntry> results; |
| 198 AddQueryResults(test_data, arraysize(test_data), &results); | 198 AddQueryResults(test_data, arraysize(test_data), &results); |
| 199 BrowsingHistoryHandler::MergeDuplicateResults(&results); | 199 BrowsingHistoryHandler::MergeDuplicateResults(&results); |
| 200 | 200 |
| 201 ASSERT_EQ(2U, results.size()); | 201 ASSERT_EQ(2U, results.size()); |
| 202 EXPECT_TRUE(ResultEquals(results[0], test_data[3])); | 202 EXPECT_TRUE(ResultEquals(results[0], test_data[3])); |
| 203 EXPECT_TRUE(ResultEquals(results[1], test_data[1])); | 203 EXPECT_TRUE(ResultEquals(results[1], test_data[1])); |
| 204 } | 204 } |
| 205 | 205 |
| 206 { | 206 { |
| 207 // Test that a duplicate URL on the next day is not removed. | 207 // Test that a duplicate URL on the next day is not removed. |
| 208 TestResult test_data[] = { | 208 TestResult test_data[] = { |
| 209 { "http://google.com", 0 }, | 209 { "http://google.com/", 0 }, |
| 210 { "http://google.com", 23 }, | 210 { "http://google.com/", 23 }, |
| 211 { "http://google.com", 24 }, // Most recent. | 211 { "http://google.com/", 24 }, // Most recent. |
| 212 }; | 212 }; |
| 213 std::vector<BrowsingHistoryHandler::HistoryEntry> results; | 213 std::vector<BrowsingHistoryHandler::HistoryEntry> results; |
| 214 AddQueryResults(test_data, arraysize(test_data), &results); | 214 AddQueryResults(test_data, arraysize(test_data), &results); |
| 215 BrowsingHistoryHandler::MergeDuplicateResults(&results); | 215 BrowsingHistoryHandler::MergeDuplicateResults(&results); |
| 216 | 216 |
| 217 ASSERT_EQ(2U, results.size()); | 217 ASSERT_EQ(2U, results.size()); |
| 218 EXPECT_TRUE(ResultEquals(results[0], test_data[2])); | 218 EXPECT_TRUE(ResultEquals(results[0], test_data[2])); |
| 219 EXPECT_TRUE(ResultEquals(results[1], test_data[1])); | 219 EXPECT_TRUE(ResultEquals(results[1], test_data[1])); |
| 220 } | 220 } |
| 221 | 221 |
| 222 { | 222 { |
| 223 // Test multiple duplicates across multiple days. | 223 // Test multiple duplicates across multiple days. |
| 224 TestResult test_data[] = { | 224 TestResult test_data[] = { |
| 225 // First day. | 225 // First day. |
| 226 { "http://google.de", 0 }, | 226 { "http://google.de/", 0 }, |
| 227 { "http://google.com", 1 }, | 227 { "http://google.com/", 1 }, |
| 228 { "http://google.de", 2 }, | 228 { "http://google.de/", 2 }, |
| 229 { "http://google.com", 3 }, | 229 { "http://google.com/", 3 }, |
| 230 | 230 |
| 231 // Second day. | 231 // Second day. |
| 232 { "http://google.de", 24 }, | 232 { "http://google.de/", 24 }, |
| 233 { "http://google.com", 25 }, | 233 { "http://google.com/", 25 }, |
| 234 { "http://google.de", 26 }, | 234 { "http://google.de/", 26 }, |
| 235 { "http://google.com", 27 }, // Most recent. | 235 { "http://google.com/", 27 }, // Most recent. |
| 236 }; | 236 }; |
| 237 std::vector<BrowsingHistoryHandler::HistoryEntry> results; | 237 std::vector<BrowsingHistoryHandler::HistoryEntry> results; |
| 238 AddQueryResults(test_data, arraysize(test_data), &results); | 238 AddQueryResults(test_data, arraysize(test_data), &results); |
| 239 BrowsingHistoryHandler::MergeDuplicateResults(&results); | 239 BrowsingHistoryHandler::MergeDuplicateResults(&results); |
| 240 | 240 |
| 241 ASSERT_EQ(4U, results.size()); | 241 ASSERT_EQ(4U, results.size()); |
| 242 EXPECT_TRUE(ResultEquals(results[0], test_data[7])); | 242 EXPECT_TRUE(ResultEquals(results[0], test_data[7])); |
| 243 EXPECT_TRUE(ResultEquals(results[1], test_data[6])); | 243 EXPECT_TRUE(ResultEquals(results[1], test_data[6])); |
| 244 EXPECT_TRUE(ResultEquals(results[2], test_data[3])); | 244 EXPECT_TRUE(ResultEquals(results[2], test_data[3])); |
| 245 EXPECT_TRUE(ResultEquals(results[3], test_data[2])); | 245 EXPECT_TRUE(ResultEquals(results[3], test_data[2])); |
| 246 } | 246 } |
| 247 | 247 |
| 248 { | 248 { |
| 249 // Test that timestamps for duplicates are properly saved. | 249 // Test that timestamps for duplicates are properly saved. |
| 250 TestResult test_data[] = { | 250 TestResult test_data[] = { |
| 251 { "http://google.com", 0 }, | 251 { "http://google.com/", 0 }, |
| 252 { "http://google.de", 1 }, | 252 { "http://google.de/", 1 }, |
| 253 { "http://google.com", 2 }, | 253 { "http://google.com/", 2 }, |
| 254 { "http://google.com", 3 } // Most recent. | 254 { "http://google.com/", 3 } // Most recent. |
| 255 }; | 255 }; |
| 256 std::vector<BrowsingHistoryHandler::HistoryEntry> results; | 256 std::vector<BrowsingHistoryHandler::HistoryEntry> results; |
| 257 AddQueryResults(test_data, arraysize(test_data), &results); | 257 AddQueryResults(test_data, arraysize(test_data), &results); |
| 258 BrowsingHistoryHandler::MergeDuplicateResults(&results); | 258 BrowsingHistoryHandler::MergeDuplicateResults(&results); |
| 259 | 259 |
| 260 ASSERT_EQ(2U, results.size()); | 260 ASSERT_EQ(2U, results.size()); |
| 261 EXPECT_TRUE(ResultEquals(results[0], test_data[3])); | 261 EXPECT_TRUE(ResultEquals(results[0], test_data[3])); |
| 262 EXPECT_TRUE(ResultEquals(results[1], test_data[1])); | 262 EXPECT_TRUE(ResultEquals(results[1], test_data[1])); |
| 263 EXPECT_EQ(3u, results[0].all_timestamps.size()); | 263 EXPECT_EQ(3u, results[0].all_timestamps.size()); |
| 264 EXPECT_EQ(1u, results[1].all_timestamps.size()); | 264 EXPECT_EQ(1u, results[1].all_timestamps.size()); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 const base::DictionaryValue* first_entry; | 361 const base::DictionaryValue* first_entry; |
| 362 ASSERT_TRUE(arg2->GetDictionary(0, &first_entry)); | 362 ASSERT_TRUE(arg2->GetDictionary(0, &first_entry)); |
| 363 | 363 |
| 364 base::string16 title; | 364 base::string16 title; |
| 365 ASSERT_TRUE(first_entry->GetString("title", &title)); | 365 ASSERT_TRUE(first_entry->GetString("title", &title)); |
| 366 | 366 |
| 367 ASSERT_EQ(0u, title.find(base::ASCIIToUTF16("http://loooo"))); | 367 ASSERT_EQ(0u, title.find(base::ASCIIToUTF16("http://loooo"))); |
| 368 EXPECT_EQ(300u, title.size()); | 368 EXPECT_EQ(300u, title.size()); |
| 369 } | 369 } |
| 370 #endif | 370 #endif |
| OLD | NEW |