summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-13 12:04:10 +0000
committerkaiwang@chromium.org <kaiwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-13 12:04:10 +0000
commit909f1f94d7415f95dc22416143d09333f40d58e6 (patch)
treec2468350bff6bda0b693950c187c7c562b752535
parent2eaa168ec28dd5fc4855317e076d07f5657cfd11 (diff)
downloadchromium_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
-rw-r--r--base/prefs/DEPS1
-rw-r--r--base/prefs/public/pref_member_unittest.cc65
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());
}