OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 } | 78 } |
79 | 79 |
80 // Acts like a synchronous call to history's QueryHistory. | 80 // Acts like a synchronous call to history's QueryHistory. |
81 void QueryHistory(const std::string& text_query, | 81 void QueryHistory(const std::string& text_query, |
82 const QueryOptions& options, | 82 const QueryOptions& options, |
83 QueryResults* results) { | 83 QueryResults* results) { |
84 history_->QueryHistory( | 84 history_->QueryHistory( |
85 UTF8ToUTF16(text_query), options, &consumer_, | 85 UTF8ToUTF16(text_query), options, &consumer_, |
86 base::Bind(&HistoryQueryTest::QueryHistoryComplete, | 86 base::Bind(&HistoryQueryTest::QueryHistoryComplete, |
87 base::Unretained(this))); | 87 base::Unretained(this))); |
88 MessageLoop::current()->Run(); // Will go until ...Complete calls Quit. | 88 // Will go until ...Complete calls Quit. |
| 89 base::MessageLoop::current()->Run(); |
89 results->Swap(&last_query_results_); | 90 results->Swap(&last_query_results_); |
90 } | 91 } |
91 | 92 |
92 // Test paging through results, with a fixed number of results per page. | 93 // Test paging through results, with a fixed number of results per page. |
93 // Defined here so code can be shared for the FTS version and the non-FTS | 94 // Defined here so code can be shared for the FTS version and the non-FTS |
94 // version. | 95 // version. |
95 void TestPaging(const std::string& query_text, | 96 void TestPaging(const std::string& query_text, |
96 const int* expected_results, | 97 const int* expected_results, |
97 int results_length) { | 98 int results_length) { |
98 ASSERT_TRUE(history_.get()); | 99 ASSERT_TRUE(history_.get()); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 Time now = Time::Now().LocalMidnight(); | 176 Time now = Time::Now().LocalMidnight(); |
176 for (size_t i = 0; i < arraysize(test_entries); i++) { | 177 for (size_t i = 0; i < arraysize(test_entries); i++) { |
177 test_entries[i].time = | 178 test_entries[i].time = |
178 now - (test_entries[i].days_ago * TimeDelta::FromDays(1)); | 179 now - (test_entries[i].days_ago * TimeDelta::FromDays(1)); |
179 AddEntryToHistory(test_entries[i]); | 180 AddEntryToHistory(test_entries[i]); |
180 } | 181 } |
181 } | 182 } |
182 | 183 |
183 virtual void TearDown() { | 184 virtual void TearDown() { |
184 if (history_) { | 185 if (history_) { |
185 history_->SetOnBackendDestroyTask(MessageLoop::QuitClosure()); | 186 history_->SetOnBackendDestroyTask(base::MessageLoop::QuitClosure()); |
186 history_->Cleanup(); | 187 history_->Cleanup(); |
187 history_.reset(); | 188 history_.reset(); |
188 MessageLoop::current()->Run(); // Wait for the other thread. | 189 base::MessageLoop::current()->Run(); // Wait for the other thread. |
189 } | 190 } |
190 } | 191 } |
191 | 192 |
192 void QueryHistoryComplete(HistoryService::Handle, QueryResults* results) { | 193 void QueryHistoryComplete(HistoryService::Handle, QueryResults* results) { |
193 results->Swap(&last_query_results_); | 194 results->Swap(&last_query_results_); |
194 MessageLoop::current()->Quit(); // Will return out to QueryHistory. | 195 base::MessageLoop::current()->Quit(); // Will return out to QueryHistory. |
195 } | 196 } |
196 | 197 |
197 base::ScopedTempDir temp_dir_; | 198 base::ScopedTempDir temp_dir_; |
198 | 199 |
199 MessageLoop message_loop_; | 200 base::MessageLoop message_loop_; |
200 | 201 |
201 base::FilePath history_dir_; | 202 base::FilePath history_dir_; |
202 | 203 |
203 CancelableRequestConsumer consumer_; | 204 CancelableRequestConsumer consumer_; |
204 | 205 |
205 // The QueryHistoryComplete callback will put the results here so QueryHistory | 206 // The QueryHistoryComplete callback will put the results here so QueryHistory |
206 // can return them. | 207 // can return them. |
207 QueryResults last_query_results_; | 208 QueryResults last_query_results_; |
208 | 209 |
209 DISALLOW_COPY_AND_ASSIGN(HistoryQueryTest); | 210 DISALLOW_COPY_AND_ASSIGN(HistoryQueryTest); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
473 | 474 |
474 TEST_F(HistoryQueryTest, FTSPaging) { | 475 TEST_F(HistoryQueryTest, FTSPaging) { |
475 // Since results are fetched 1 and 2 at a time, entry #0 and #6 will not | 476 // Since results are fetched 1 and 2 at a time, entry #0 and #6 will not |
476 // be de-duplicated. Entry #4 does not contain the text "title", so it | 477 // be de-duplicated. Entry #4 does not contain the text "title", so it |
477 // shouldn't appear. | 478 // shouldn't appear. |
478 int expected_results[] = { 2, 3, 1, 7, 6, 5 }; | 479 int expected_results[] = { 2, 3, 1, 7, 6, 5 }; |
479 TestPaging("title", expected_results, arraysize(expected_results)); | 480 TestPaging("title", expected_results, arraysize(expected_results)); |
480 } | 481 } |
481 | 482 |
482 } // namespace history | 483 } // namespace history |
OLD | NEW |