| Index: chrome/browser/chromeos/login/login_utils_browsertest.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/login/login_utils_browsertest.cc (revision 111697)
|
| +++ chrome/browser/chromeos/login/login_utils_browsertest.cc (working copy)
|
| @@ -30,7 +30,6 @@
|
| #include "chrome/common/net/gaia/gaia_auth_consumer.h"
|
| #include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_pref_service.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| #include "content/public/common/url_fetcher_delegate.h"
|
| #include "content/test/test_browser_thread.h"
|
| #include "content/test/test_url_fetcher_factory.h"
|
| @@ -49,7 +48,6 @@
|
| using ::testing::Return;
|
| using ::testing::SetArgPointee;
|
| using ::testing::_;
|
| -using content::BrowserThread;
|
|
|
| const char kTrue[] = "true";
|
| const char kDomain[] = "domain.com";
|
| @@ -76,19 +74,20 @@
|
| arg0.Run(policy);
|
| }
|
|
|
| +// Subclass IOThread to expose set_message_loop.
|
| +class TestIOThread : public IOThread {
|
| + public:
|
| + explicit TestIOThread(PrefService* local_state)
|
| + : IOThread(local_state, NULL, NULL) {}
|
| +
|
| + using IOThread::set_message_loop;
|
| +};
|
| +
|
| template<typename TESTBASE>
|
| class LoginUtilsTestBase : public TESTBASE,
|
| public LoginUtils::Delegate,
|
| public LoginStatusConsumer {
|
| public:
|
| - // Initialization here is important. The UI thread gets the test's
|
| - // message loop, as does the file thread (which never actually gets
|
| - // started - so this is a way to fake multiple threads on a single
|
| - // test thread). The IO thread does not get the message loop set,
|
| - // and is never started. This is necessary so that we skip various
|
| - // bits of initialization that get posted to the IO thread. We do
|
| - // however, at one point in the test, temporarily set the message
|
| - // loop for the IO thread.
|
| LoginUtilsTestBase()
|
| : loop_(MessageLoop::TYPE_IO),
|
| browser_process_(
|
| @@ -96,8 +95,7 @@
|
| local_state_(browser_process_),
|
| ui_thread_(content::BrowserThread::UI, &loop_),
|
| file_thread_(content::BrowserThread::FILE, &loop_),
|
| - io_thread_(content::BrowserThread::IO),
|
| - io_thread_state_(local_state_.Get(), NULL, NULL),
|
| + io_thread_(local_state_.Get()),
|
| prepared_profile_(NULL) {}
|
|
|
| virtual void SetUp() OVERRIDE {
|
| @@ -113,7 +111,7 @@
|
|
|
| local_state_.Get()->RegisterStringPref(prefs::kApplicationLocale, "");
|
|
|
| - browser_process_->SetIOThread(&io_thread_state_);
|
| + browser_process_->SetIOThread(&io_thread_);
|
|
|
| DBusThreadManager::InitializeForTesting(&dbus_thread_manager_);
|
|
|
| @@ -171,16 +169,12 @@
|
| // g_browser_process->profile_manager() is valid during initialization.
|
| // Run a task on a temporary BrowserThread::IO that allows skipping
|
| // these routines.
|
| - //
|
| - // It is important to not have a fake message loop on the IO
|
| - // thread for the whole test, see comment on LoginUtilsTestBase
|
| - // constructor for details.
|
| - io_thread_.DeprecatedSetMessageLoop(&loop_);
|
| + io_thread_.set_message_loop(&loop_);
|
| loop_.PostTask(FROM_HERE,
|
| base::Bind(&LoginUtilsTestBase::TearDownOnIO,
|
| base::Unretained(this)));
|
| loop_.RunAllPending();
|
| - io_thread_.DeprecatedSetMessageLoop(NULL);
|
| + io_thread_.set_message_loop(NULL);
|
| }
|
|
|
| // These trigger some tasks that have to run while BrowserThread::UI
|
| @@ -311,8 +305,7 @@
|
|
|
| content::TestBrowserThread ui_thread_;
|
| content::TestBrowserThread file_thread_;
|
| - content::TestBrowserThread io_thread_;
|
| - IOThread io_thread_state_;
|
| + TestIOThread io_thread_;
|
|
|
| MockDBusThreadManager dbus_thread_manager_;
|
| TestURLFetcherFactory test_url_fetcher_factory_;
|
|
|