| Index: chrome/browser/autocomplete/search_provider_unittest.cc
|
| diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
|
| index b32cadc4529b9c4abde30fa3df641b774bea2606..4aeb1c1051fe4a75bcf383d6840737b952d3ee0a 100644
|
| --- a/chrome/browser/autocomplete/search_provider_unittest.cc
|
| +++ b/chrome/browser/autocomplete/search_provider_unittest.cc
|
| @@ -31,7 +31,7 @@
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| -#include "content/public/test/test_browser_thread.h"
|
| +#include "content/public/test/test_browser_thread_bundle.h"
|
| #include "net/url_request/test_url_fetcher_factory.h"
|
| #include "net/url_request/url_request_status.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -78,10 +78,7 @@ class SearchProviderTest : public testing::Test,
|
| term1_(ASCIIToUTF16("term1")),
|
| keyword_t_url_(NULL),
|
| keyword_term_(ASCIIToUTF16("keyword")),
|
| - ui_thread_(content::BrowserThread::UI, &message_loop_),
|
| - io_thread_(content::BrowserThread::IO),
|
| - quit_when_done_(false) {
|
| - io_thread_.Start();
|
| + run_loop_(NULL) {
|
| }
|
|
|
| static void SetUpTestCase();
|
| @@ -117,9 +114,6 @@ class SearchProviderTest : public testing::Test,
|
| // If we're waiting for the provider to finish, this exits the message loop.
|
| virtual void OnProviderUpdate(bool updated_matches) OVERRIDE;
|
|
|
| - // Waits until the provider instantiates a URLFetcher and returns it.
|
| - net::TestURLFetcher* WaitUntilURLFetcherIsReady(int fetcher_id);
|
| -
|
| // Runs a nested message loop until provider_ is done. The message loop is
|
| // exited by way of OnProviderUpdate.
|
| void RunTillProviderDone();
|
| @@ -147,9 +141,7 @@ class SearchProviderTest : public testing::Test,
|
| const string16 keyword_term_;
|
| GURL keyword_url_;
|
|
|
| - base::MessageLoopForUI message_loop_;
|
| - content::TestBrowserThread ui_thread_;
|
| - content::TestBrowserThread io_thread_;
|
| + content::TestBrowserThreadBundle thread_bundle_;
|
|
|
| // URLFetcherFactory implementation registered.
|
| net::TestURLFetcherFactory test_factory_;
|
| @@ -160,8 +152,8 @@ class SearchProviderTest : public testing::Test,
|
| // The provider.
|
| scoped_refptr<SearchProvider> provider_;
|
|
|
| - // If true, OnProviderUpdate exits out of the current message loop.
|
| - bool quit_when_done_;
|
| + // If non-NULL, OnProviderUpdate quits the current |run_loop_|.
|
| + base::RunLoop* run_loop_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SearchProviderTest);
|
| };
|
| @@ -238,7 +230,7 @@ void SearchProviderTest::SetUp() {
|
| }
|
|
|
| void SearchProviderTest::TearDown() {
|
| - message_loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Shutdown the provider before the profile.
|
| provider_ = NULL;
|
| @@ -273,32 +265,19 @@ void SearchProviderTest::RunTest(TestData* cases,
|
| }
|
|
|
| void SearchProviderTest::OnProviderUpdate(bool updated_matches) {
|
| - if (quit_when_done_ && provider_->done()) {
|
| - quit_when_done_ = false;
|
| - message_loop_.Quit();
|
| + if (run_loop_ && provider_->done()) {
|
| + run_loop_->Quit();
|
| + run_loop_ = NULL;
|
| }
|
| }
|
|
|
| -net::TestURLFetcher* SearchProviderTest::WaitUntilURLFetcherIsReady(
|
| - int fetcher_id) {
|
| - net::TestURLFetcher* url_fetcher = test_factory_.GetFetcherByID(fetcher_id);
|
| - for (; !url_fetcher; url_fetcher = test_factory_.GetFetcherByID(fetcher_id))
|
| - message_loop_.RunUntilIdle();
|
| - return url_fetcher;
|
| -}
|
| -
|
| void SearchProviderTest::RunTillProviderDone() {
|
| if (provider_->done())
|
| return;
|
|
|
| - quit_when_done_ = true;
|
| -#if defined(OS_ANDROID)
|
| - // Android doesn't have Run(), only Start().
|
| - message_loop_.Start();
|
| -#else
|
| base::RunLoop run_loop;
|
| + run_loop_ = &run_loop;
|
| run_loop.Run();
|
| -#endif
|
| }
|
|
|
| void SearchProviderTest::QueryForInput(const string16& text,
|
| @@ -312,7 +291,7 @@ void SearchProviderTest::QueryForInput(const string16& text,
|
|
|
| // RunUntilIdle so that the task scheduled by SearchProvider to create the
|
| // URLFetchers runs.
|
| - message_loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| void SearchProviderTest::QueryForInputAndSetWYTMatch(
|
| @@ -372,8 +351,9 @@ bool SearchProviderTest::FindMatchWithDestination(const GURL& url,
|
| }
|
|
|
| void SearchProviderTest::FinishDefaultSuggestQuery() {
|
| - net::TestURLFetcher* default_fetcher = WaitUntilURLFetcherIsReady(
|
| - SearchProvider::kDefaultProviderURLFetcherID);
|
| + net::TestURLFetcher* default_fetcher =
|
| + test_factory_.GetFetcherByID(
|
| + SearchProvider::kDefaultProviderURLFetcherID);
|
| ASSERT_TRUE(default_fetcher);
|
|
|
| // Tell the SearchProvider the default suggest query is done.
|
| @@ -1041,8 +1021,9 @@ TEST_F(SearchProviderTest, DefaultFetcherSuggestRelevance) {
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
|
| QueryForInput(ASCIIToUTF16("a"), false, false);
|
| - net::TestURLFetcher* fetcher = WaitUntilURLFetcherIsReady(
|
| - SearchProvider::kDefaultProviderURLFetcherID);
|
| + net::TestURLFetcher* fetcher =
|
| + test_factory_.GetFetcherByID(
|
| + SearchProvider::kDefaultProviderURLFetcherID);
|
| ASSERT_TRUE(fetcher);
|
| fetcher->set_response_code(200);
|
| fetcher->SetResponseString(cases[i].json);
|
| @@ -1506,16 +1487,18 @@ TEST_F(SearchProviderTest, KeywordFetcherSuggestRelevance) {
|
| QueryForInput(ASCIIToUTF16("k a"), false, true);
|
|
|
| // Set up a default fetcher with no results.
|
| - net::TestURLFetcher* default_fetcher = WaitUntilURLFetcherIsReady(
|
| - SearchProvider::kDefaultProviderURLFetcherID);
|
| + net::TestURLFetcher* default_fetcher =
|
| + test_factory_.GetFetcherByID(
|
| + SearchProvider::kDefaultProviderURLFetcherID);
|
| ASSERT_TRUE(default_fetcher);
|
| default_fetcher->set_response_code(200);
|
| default_fetcher->delegate()->OnURLFetchComplete(default_fetcher);
|
| default_fetcher = NULL;
|
|
|
| // Set up a keyword fetcher with provided results.
|
| - net::TestURLFetcher* keyword_fetcher = WaitUntilURLFetcherIsReady(
|
| - SearchProvider::kKeywordProviderURLFetcherID);
|
| + net::TestURLFetcher* keyword_fetcher =
|
| + test_factory_.GetFetcherByID(
|
| + SearchProvider::kKeywordProviderURLFetcherID);
|
| ASSERT_TRUE(keyword_fetcher);
|
| keyword_fetcher->set_response_code(200);
|
| keyword_fetcher->SetResponseString(cases[i].json);
|
| @@ -1626,8 +1609,9 @@ TEST_F(SearchProviderTest, LocalAndRemoteRelevances) {
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
|
| QueryForInput(cases[i].input, false, false);
|
| - net::TestURLFetcher* fetcher = WaitUntilURLFetcherIsReady(
|
| - SearchProvider::kDefaultProviderURLFetcherID);
|
| + net::TestURLFetcher* fetcher =
|
| + test_factory_.GetFetcherByID(
|
| + SearchProvider::kDefaultProviderURLFetcherID);
|
| ASSERT_TRUE(fetcher);
|
| fetcher->set_response_code(200);
|
| fetcher->SetResponseString(cases[i].json);
|
| @@ -1726,8 +1710,9 @@ TEST_F(SearchProviderTest, DefaultProviderSuggestRelevanceScoringUrlInput) {
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
|
| QueryForInput(ASCIIToUTF16(cases[i].input), false, false);
|
| - net::TestURLFetcher* fetcher = WaitUntilURLFetcherIsReady(
|
| - SearchProvider::kDefaultProviderURLFetcherID);
|
| + net::TestURLFetcher* fetcher =
|
| + test_factory_.GetFetcherByID(
|
| + SearchProvider::kDefaultProviderURLFetcherID);
|
| ASSERT_TRUE(fetcher);
|
| fetcher->set_response_code(200);
|
| fetcher->SetResponseString(cases[i].json);
|
|
|