| Index: chrome/browser/autocomplete/history_quick_provider_unittest.cc
|
| diff --git a/chrome/browser/autocomplete/history_quick_provider_unittest.cc b/chrome/browser/autocomplete/history_quick_provider_unittest.cc
|
| index acdf836e35d93e6c5097483edaa52beef07b16d1..95c61a872e1832b6e65b52d745145086124935f6 100644
|
| --- a/chrome/browser/autocomplete/history_quick_provider_unittest.cc
|
| +++ b/chrome/browser/autocomplete/history_quick_provider_unittest.cc
|
| @@ -208,10 +208,24 @@ class HistoryQuickProviderTest : public testing::Test {
|
| base::string16 expected_fill_into_edit,
|
| base::string16 autocompletion);
|
|
|
| + // TODO(shess): From history_service.h in reference to history_backend:
|
| + // > This class has most of the implementation and runs on the 'thread_'.
|
| + // > You MUST communicate with this class ONLY through the thread_'s
|
| + // > message_loop().
|
| + // Direct use of this object in tests is almost certainly not thread-safe.
|
| history::HistoryBackend* history_backend() {
|
| return history_service_->history_backend_.get();
|
| }
|
|
|
| + // Call history_backend()->GetURL(url, NULL) on the history thread, returning
|
| + // the result.
|
| + bool GetURLProxy(const GURL& url);
|
| +
|
| + // Background task posted by GetURLProxy().
|
| + static void GetURLTask(history::HistoryBackend* backend,
|
| + const GURL& url,
|
| + bool* result_storage);
|
| +
|
| base::MessageLoopForUI message_loop_;
|
| content::TestBrowserThread ui_thread_;
|
| content::TestBrowserThread file_thread_;
|
| @@ -394,6 +408,24 @@ void HistoryQuickProviderTest::RunTestWithCursor(
|
| EXPECT_EQ(expected_fill_into_edit, ac_matches_[0].fill_into_edit);
|
| }
|
|
|
| +bool HistoryQuickProviderTest::GetURLProxy(const GURL& url) {
|
| + bool result = false;
|
| + base::RunLoop runner;
|
| + history_service_->PostTaskAndReplyForTest(
|
| + base::Bind(&GetURLTask, base::Unretained(history_backend()),
|
| + url, &result),
|
| + runner.QuitClosure());
|
| + runner.Run();
|
| + return result;
|
| +}
|
| +
|
| +// static
|
| +void HistoryQuickProviderTest::GetURLTask(history::HistoryBackend* backend,
|
| + const GURL& url,
|
| + bool* result_storage) {
|
| + *result_storage = backend->GetURL(url, NULL);
|
| +}
|
| +
|
| TEST_F(HistoryQuickProviderTest, SimpleSingleMatch) {
|
| std::vector<std::string> expected_urls;
|
| expected_urls.push_back("http://slashdot.org/favorite_page.html");
|
| @@ -616,7 +648,7 @@ TEST_F(HistoryQuickProviderTest, DeleteMatch) {
|
| ASCIIToUTF16("slashdot.org/favorite_page.html"),
|
| ASCIIToUTF16(".org/favorite_page.html"));
|
| EXPECT_EQ(1U, ac_matches_.size());
|
| - EXPECT_TRUE(history_backend()->GetURL(test_url, NULL));
|
| + EXPECT_TRUE(GetURLProxy(test_url));
|
| provider_->DeleteMatch(ac_matches_[0]);
|
|
|
| // Check that the underlying URL is deleted from the history DB (this implies
|
| @@ -626,7 +658,7 @@ TEST_F(HistoryQuickProviderTest, DeleteMatch) {
|
| // To ensure that the deletion has been propagated everywhere before we start
|
| // verifying post-deletion states, first wait until we see the notification.
|
| WaitForURLsDeletedNotification(history_service_);
|
| - EXPECT_FALSE(history_backend()->GetURL(test_url, NULL));
|
| + EXPECT_FALSE(GetURLProxy(test_url));
|
|
|
| // Just to be on the safe side, explicitly verify that we have deleted enough
|
| // data so that we will not be serving the same result again.
|
|
|