diff options
author | kaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-13 12:04:10 +0000 |
---|---|---|
committer | kaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-13 12:04:10 +0000 |
commit | 909f1f94d7415f95dc22416143d09333f40d58e6 (patch) | |
tree | c2468350bff6bda0b693950c187c7c562b752535 /base | |
parent | 2eaa168ec28dd5fc4855317e076d07f5657cfd11 (diff) | |
download | chromium_src-909f1f94d7415f95dc22416143d09333f40d58e6.zip chromium_src-909f1f94d7415f95dc22416143d09333f40d58e6.tar.gz chromium_src-909f1f94d7415f95dc22416143d09333f40d58e6.tar.bz2 |
Remove pref's dependency on test_browser_thread
BUG=155525
Review URL: https://chromiumcodereview.appspot.com/11570003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172867 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/prefs/DEPS | 1 | ||||
-rw-r--r-- | base/prefs/public/pref_member_unittest.cc | 65 |
2 files changed, 30 insertions, 36 deletions
diff --git a/base/prefs/DEPS b/base/prefs/DEPS index b217443..76b3e8d 100644 --- a/base/prefs/DEPS +++ b/base/prefs/DEPS @@ -1,6 +1,5 @@ specific_include_rules = { '.*_[a-z]+test\.cc': [ "!chrome/test/base/testing_pref_service.h", - "!content/public/test/test_browser_thread.h", ], } diff --git a/base/prefs/public/pref_member_unittest.cc b/base/prefs/public/pref_member_unittest.cc index a687dbc..4203db3a 100644 --- a/base/prefs/public/pref_member_unittest.cc +++ b/base/prefs/public/pref_member_unittest.cc @@ -6,12 +6,11 @@ #include "base/bind.h" #include "base/message_loop.h" +#include "base/synchronization/waitable_event.h" +#include "base/threading/thread.h" #include "chrome/test/base/testing_pref_service.h" -#include "content/public/test/test_browser_thread.h" #include "testing/gtest/include/gtest/gtest.h" -using content::BrowserThread; - namespace { const char kBoolPref[] = "bool"; @@ -32,45 +31,46 @@ void RegisterTestPrefs(PrefService* prefs) { PrefService::UNSYNCABLE_PREF); } -class GetPrefValueCallback - : public base::RefCountedThreadSafe<GetPrefValueCallback> { +class GetPrefValueHelper + : public base::RefCountedThreadSafe<GetPrefValueHelper> { public: - GetPrefValueCallback() : value_(false) {} + GetPrefValueHelper() : value_(false), pref_thread_("pref thread") { + pref_thread_.Start(); + } void Init(const char* pref_name, PrefService* prefs) { pref_.Init(pref_name, prefs); - pref_.MoveToThread( - BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); + pref_.MoveToThread(pref_thread_.message_loop_proxy()); } void Destroy() { pref_.Destroy(); } - bool FetchValue() { - if (!BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::Bind(&GetPrefValueCallback::GetPrefValueOnIOThread, this))) { - return false; - } - MessageLoop::current()->Run(); - return true; + void FetchValue() { + base::WaitableEvent event(true, false); + ASSERT_TRUE( + pref_thread_.message_loop_proxy()->PostTask( + FROM_HERE, + base::Bind(&GetPrefValueHelper::GetPrefValue, this, &event))); + event.Wait(); } bool value() { return value_; } private: - friend class base::RefCountedThreadSafe<GetPrefValueCallback>; - ~GetPrefValueCallback() {} + friend class base::RefCountedThreadSafe<GetPrefValueHelper>; + ~GetPrefValueHelper() {} - void GetPrefValueOnIOThread() { + void GetPrefValue(base::WaitableEvent* event) { value_ = pref_.GetValue(); - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - MessageLoop::QuitClosure()); + event->Signal(); } BooleanPrefMember pref_; bool value_; + + base::Thread pref_thread_; // The thread |pref_| runs on. }; class PrefMemberTestClass { @@ -297,25 +297,20 @@ TEST(PrefMemberTest, NoInit) { TEST(PrefMemberTest, MoveToThread) { TestingPrefService prefs; - scoped_refptr<GetPrefValueCallback> callback = - make_scoped_refptr(new GetPrefValueCallback()); - MessageLoop message_loop; - content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop); - content::TestBrowserThread io_thread(BrowserThread::IO); - ASSERT_TRUE(io_thread.Start()); + scoped_refptr<GetPrefValueHelper> helper(new GetPrefValueHelper()); RegisterTestPrefs(&prefs); - callback->Init(kBoolPref, &prefs); + helper->Init(kBoolPref, &prefs); - ASSERT_TRUE(callback->FetchValue()); - EXPECT_FALSE(callback->value()); + helper->FetchValue(); + EXPECT_FALSE(helper->value()); prefs.SetBoolean(kBoolPref, true); - ASSERT_TRUE(callback->FetchValue()); - EXPECT_TRUE(callback->value()); + helper->FetchValue(); + EXPECT_TRUE(helper->value()); - callback->Destroy(); + helper->Destroy(); - ASSERT_TRUE(callback->FetchValue()); - EXPECT_TRUE(callback->value()); + helper->FetchValue(); + EXPECT_TRUE(helper->value()); } |