Commit b2bec813 authored by xunjieli's avatar xunjieli Committed by Commit bot

Convert CookieMonster tests to use base::RunLoop

CookieMonster tests post a
base::MessageLoop::QuitWhenIdleClosure task which
could be run at the start of some other test, since
the unit tests are invoked in the same fixture on
Android. This CL converts these CookieMonster tests
to use base::RunLoop so they don't influence other
tests.

BUG=568282

Review URL: https://codereview.chromium.org/1634803004

Cr-Commit-Position: refs/heads/master@{#371908}
parent 72d9ed4e
...@@ -115,7 +115,6 @@ INSTANTIATE_TYPED_TEST_CASE_P(CookieMonsterStrictSecure, ...@@ -115,7 +115,6 @@ INSTANTIATE_TYPED_TEST_CASE_P(CookieMonsterStrictSecure,
template <typename T> template <typename T>
class CookieMonsterTestBase : public CookieStoreTest<T> { class CookieMonsterTestBase : public CookieStoreTest<T> {
public: public:
using CookieStoreTest<T>::RunFor;
using CookieStoreTest<T>::SetCookie; using CookieStoreTest<T>::SetCookie;
protected: protected:
...@@ -127,8 +126,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -127,8 +126,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
GetCookieListCallback callback; GetCookieListCallback callback;
cm->GetAllCookiesForURLAsync(url, base::Bind(&GetCookieListCallback::Run, cm->GetAllCookiesForURLAsync(url, base::Bind(&GetCookieListCallback::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.cookies(); return callback.cookies();
} }
...@@ -140,8 +138,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -140,8 +138,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
cm->GetAllCookiesForURLWithOptionsAsync( cm->GetAllCookiesForURLWithOptionsAsync(
url, options, url, options,
base::Bind(&GetCookieListCallback::Run, base::Unretained(&callback))); base::Bind(&GetCookieListCallback::Run, base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.cookies(); return callback.cookies();
} }
...@@ -164,8 +161,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -164,8 +161,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
false /* enforces strict secure cookies */, priority, false /* enforces strict secure cookies */, priority,
base::Bind(&ResultSavingCookieCallback<bool>::Run, base::Bind(&ResultSavingCookieCallback<bool>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -175,8 +171,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -175,8 +171,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
cm->SetAllCookiesAsync(list, cm->SetAllCookiesAsync(list,
base::Bind(&ResultSavingCookieCallback<bool>::Run, base::Bind(&ResultSavingCookieCallback<bool>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -185,8 +180,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -185,8 +180,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
ResultSavingCookieCallback<int> callback; ResultSavingCookieCallback<int> callback;
cm->DeleteAllAsync(base::Bind(&ResultSavingCookieCallback<int>::Run, cm->DeleteAllAsync(base::Bind(&ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -199,8 +193,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -199,8 +193,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
delete_begin, delete_end, delete_begin, delete_end,
base::Bind(&ResultSavingCookieCallback<int>::Run, base::Bind(&ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -214,8 +207,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -214,8 +207,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
delete_begin, delete_end, url, delete_begin, delete_end, url,
base::Bind(&ResultSavingCookieCallback<int>::Run, base::Bind(&ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -225,8 +217,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -225,8 +217,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
cm->DeleteAllForHostAsync(url, cm->DeleteAllForHostAsync(url,
base::Bind(&ResultSavingCookieCallback<int>::Run, base::Bind(&ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -236,8 +227,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> { ...@@ -236,8 +227,7 @@ class CookieMonsterTestBase : public CookieStoreTest<T> {
cm->DeleteCanonicalCookieAsync( cm->DeleteCanonicalCookieAsync(
cookie, base::Bind(&ResultSavingCookieCallback<bool>::Run, cookie, base::Bind(&ResultSavingCookieCallback<bool>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -705,9 +695,8 @@ struct CookiesInputInfo { ...@@ -705,9 +695,8 @@ struct CookiesInputInfo {
CookiePriority priority; CookiePriority priority;
}; };
ACTION(QuitCurrentMessageLoop) { ACTION_P(QuitRunLoop, run_loop) {
base::ThreadTaskRunnerHandle::Get()->PostTask( run_loop->Quit();
FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
} }
// TODO(erikwright): When the synchronous helpers 'GetCookies' etc. are removed, // TODO(erikwright): When the synchronous helpers 'GetCookies' etc. are removed,
...@@ -786,7 +775,7 @@ ACTION_P2(DeleteSessionCookiesAction, cookie_monster, callback) { ...@@ -786,7 +775,7 @@ ACTION_P2(DeleteSessionCookiesAction, cookie_monster, callback) {
// 3. Invocations after the loading has completed complete immediately. // 3. Invocations after the loading has completed complete immediately.
class DeferredCookieTaskTest : public CookieMonsterTest { class DeferredCookieTaskTest : public CookieMonsterTest {
protected: protected:
DeferredCookieTaskTest() { DeferredCookieTaskTest() : expect_load_called_(false) {
persistent_store_ = new NewMockPersistentCookieStore(); persistent_store_ = new NewMockPersistentCookieStore();
cookie_monster_ = new CookieMonster(persistent_store_.get(), NULL); cookie_monster_ = new CookieMonster(persistent_store_.get(), NULL);
} }
...@@ -799,26 +788,23 @@ class DeferredCookieTaskTest : public CookieMonsterTest { ...@@ -799,26 +788,23 @@ class DeferredCookieTaskTest : public CookieMonsterTest {
} }
// Runs the message loop, waiting until PersistentCookieStore::Load is called. // Runs the message loop, waiting until PersistentCookieStore::Load is called.
// Call CompleteLoadingAndWait to cause the load to complete. // Call CompleteLoading to cause the load to complete.
void WaitForLoadCall() { void WaitForLoadCall() {
RunFor(kTimeout); load_run_loop_.Run();
// Verify that PeristentStore::Load was called. // Verify that PeristentStore::Load was called.
testing::Mock::VerifyAndClear(persistent_store_.get()); testing::Mock::VerifyAndClear(persistent_store_.get());
} }
// Invokes the PersistentCookieStore::LoadCookiesForKey completion callbacks // Invokes the PersistentCookieStore::LoadCookiesForKey completion callbacks
// and PersistentCookieStore::Load completion callback and waits // and PersistentCookieStore::Load completion callback.
// until the message loop is quit. void CompleteLoading() {
void CompleteLoadingAndWait() {
while (!loaded_for_key_callbacks_.empty()) { while (!loaded_for_key_callbacks_.empty()) {
loaded_for_key_callbacks_.front().Run(loaded_cookies_); loaded_for_key_callbacks_.front().Run(loaded_cookies_);
loaded_cookies_.clear(); loaded_cookies_.clear();
loaded_for_key_callbacks_.pop(); loaded_for_key_callbacks_.pop();
} }
loaded_callback_.Run(loaded_cookies_); loaded_callback_.Run(loaded_cookies_);
RunFor(kTimeout);
} }
// Performs the provided action, expecting it to cause a call to // Performs the provided action, expecting it to cause a call to
...@@ -834,28 +820,24 @@ class DeferredCookieTaskTest : public CookieMonsterTest { ...@@ -834,28 +820,24 @@ class DeferredCookieTaskTest : public CookieMonsterTest {
testing::Action<void(void)> action) { testing::Action<void(void)> action) {
EXPECT_CALL(*this, Begin()).WillOnce(action); EXPECT_CALL(*this, Begin()).WillOnce(action);
ExpectLoadCall(); ExpectLoadCall();
ExpectLoadForKeyCall(key, false); ExpectLoadForKeyCall(key);
Begin(); Begin();
} }
// Declares an expectation that PersistentCookieStore::Load will be called, // Declares an expectation that PersistentCookieStore::Load will be called,
// saving the provided callback and sending a quit to the message loop. // saving the provided callback and sending a quit to |load_run_loop_|.
void ExpectLoadCall() { void ExpectLoadCall() {
// Make sure the |load_run_loop_| is not reused.
CHECK(!expect_load_called_);
expect_load_called_ = true;
EXPECT_CALL(*persistent_store_.get(), Load(testing::_)) EXPECT_CALL(*persistent_store_.get(), Load(testing::_))
.WillOnce(testing::DoAll(testing::SaveArg<0>(&loaded_callback_), .WillOnce(testing::DoAll(testing::SaveArg<0>(&loaded_callback_),
QuitCurrentMessageLoop())); QuitRunLoop(&load_run_loop_)));
} }
// Declares an expectation that PersistentCookieStore::LoadCookiesForKey // Declares an expectation that PersistentCookieStore::LoadCookiesForKey
// will be called, saving the provided callback and sending a quit to the // will be called, saving the provided callback.
// message loop. void ExpectLoadForKeyCall(const std::string& key) {
void ExpectLoadForKeyCall(const std::string& key, bool quit_queue) {
if (quit_queue)
EXPECT_CALL(*persistent_store_.get(), LoadCookiesForKey(key, testing::_))
.WillOnce(
testing::DoAll(PushCallbackAction(&loaded_for_key_callbacks_),
QuitCurrentMessageLoop()));
else
EXPECT_CALL(*persistent_store_.get(), LoadCookiesForKey(key, testing::_)) EXPECT_CALL(*persistent_store_.get(), LoadCookiesForKey(key, testing::_))
.WillOnce(PushCallbackAction(&loaded_for_key_callbacks_)); .WillOnce(PushCallbackAction(&loaded_for_key_callbacks_));
} }
...@@ -879,7 +861,10 @@ class DeferredCookieTaskTest : public CookieMonsterTest { ...@@ -879,7 +861,10 @@ class DeferredCookieTaskTest : public CookieMonsterTest {
// PersistentCookieStore::LoadCookiesForKey // PersistentCookieStore::LoadCookiesForKey
std::queue<CookieMonster::PersistentCookieStore::LoadedCallback> std::queue<CookieMonster::PersistentCookieStore::LoadedCallback>
loaded_for_key_callbacks_; loaded_for_key_callbacks_;
// base::RunLoop used to wait for PersistentCookieStore::Load to be called.
base::RunLoop load_run_loop_;
// Indicates whether ExpectLoadCall() has been called.
bool expect_load_called_;
// Stores the CookieMonster under test. // Stores the CookieMonster under test.
scoped_refptr<CookieMonster> cookie_monster_; scoped_refptr<CookieMonster> cookie_monster_;
// Stores the mock PersistentCookieStore. // Stores the mock PersistentCookieStore.
...@@ -903,10 +888,11 @@ TEST_F(DeferredCookieTaskTest, DeferredGetCookies) { ...@@ -903,10 +888,11 @@ TEST_F(DeferredCookieTaskTest, DeferredGetCookies) {
EXPECT_CALL(get_cookies_callback, Invoke("X=1")) EXPECT_CALL(get_cookies_callback, Invoke("X=1"))
.WillOnce(GetCookiesAction(&cookie_monster(), http_www_google_.url(), .WillOnce(GetCookiesAction(&cookie_monster(), http_www_google_.url(),
&get_cookies_callback)); &get_cookies_callback));
EXPECT_CALL(get_cookies_callback, Invoke("X=1")) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(get_cookies_callback, Invoke("X=1")).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredSetCookie) { TEST_F(DeferredCookieTaskTest, DeferredSetCookie) {
...@@ -922,10 +908,11 @@ TEST_F(DeferredCookieTaskTest, DeferredSetCookie) { ...@@ -922,10 +908,11 @@ TEST_F(DeferredCookieTaskTest, DeferredSetCookie) {
EXPECT_CALL(set_cookies_callback, Invoke(true)) EXPECT_CALL(set_cookies_callback, Invoke(true))
.WillOnce(SetCookieAction(&cookie_monster(), http_www_google_.url(), .WillOnce(SetCookieAction(&cookie_monster(), http_www_google_.url(),
"X=Y", &set_cookies_callback)); "X=Y", &set_cookies_callback));
EXPECT_CALL(set_cookies_callback, Invoke(true)) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(set_cookies_callback, Invoke(true)).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredSetAllCookies) { TEST_F(DeferredCookieTaskTest, DeferredSetAllCookies) {
...@@ -948,10 +935,11 @@ TEST_F(DeferredCookieTaskTest, DeferredSetAllCookies) { ...@@ -948,10 +935,11 @@ TEST_F(DeferredCookieTaskTest, DeferredSetAllCookies) {
EXPECT_CALL(set_cookies_callback, Invoke(true)) EXPECT_CALL(set_cookies_callback, Invoke(true))
.WillOnce( .WillOnce(
SetAllCookiesAction(&cookie_monster(), list, &set_cookies_callback)); SetAllCookiesAction(&cookie_monster(), list, &set_cookies_callback));
EXPECT_CALL(set_cookies_callback, Invoke(true)) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(set_cookies_callback, Invoke(true)).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredDeleteCookie) { TEST_F(DeferredCookieTaskTest, DeferredDeleteCookie) {
...@@ -967,10 +955,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteCookie) { ...@@ -967,10 +955,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteCookie) {
EXPECT_CALL(delete_cookie_callback, Invoke()) EXPECT_CALL(delete_cookie_callback, Invoke())
.WillOnce(DeleteCookieAction(&cookie_monster(), http_www_google_.url(), .WillOnce(DeleteCookieAction(&cookie_monster(), http_www_google_.url(),
"X", &delete_cookie_callback)); "X", &delete_cookie_callback));
EXPECT_CALL(delete_cookie_callback, Invoke()) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(delete_cookie_callback, Invoke()).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredSetCookieWithDetails) { TEST_F(DeferredCookieTaskTest, DeferredSetCookieWithDetails) {
...@@ -1006,10 +995,11 @@ TEST_F(DeferredCookieTaskTest, DeferredSetCookieWithDetails) { ...@@ -1006,10 +995,11 @@ TEST_F(DeferredCookieTaskTest, DeferredSetCookieWithDetails) {
EXPECT_CALL(set_cookies_callback, Invoke(true)) EXPECT_CALL(set_cookies_callback, Invoke(true))
.WillOnce(SetCookieWithDetailsAction(&cookie_monster(), cookie_info_exp, .WillOnce(SetCookieWithDetailsAction(&cookie_monster(), cookie_info_exp,
&set_cookies_callback)); &set_cookies_callback));
EXPECT_CALL(set_cookies_callback, Invoke(true)) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(set_cookies_callback, Invoke(true)).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredGetAllCookies) { TEST_F(DeferredCookieTaskTest, DeferredGetAllCookies) {
...@@ -1026,10 +1016,12 @@ TEST_F(DeferredCookieTaskTest, DeferredGetAllCookies) { ...@@ -1026,10 +1016,12 @@ TEST_F(DeferredCookieTaskTest, DeferredGetAllCookies) {
EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_)) EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_))
.WillOnce( .WillOnce(
GetAllCookiesAction(&cookie_monster(), &get_cookie_list_callback)); GetAllCookiesAction(&cookie_monster(), &get_cookie_list_callback));
base::RunLoop loop;
EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_)) EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_))
.WillOnce(QuitCurrentMessageLoop()); .WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlCookies) { TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlCookies) {
...@@ -1050,10 +1042,12 @@ TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlCookies) { ...@@ -1050,10 +1042,12 @@ TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlCookies) {
.WillOnce(GetAllCookiesForUrlAction(&cookie_monster(), .WillOnce(GetAllCookiesForUrlAction(&cookie_monster(),
http_www_google_.url(), http_www_google_.url(),
&get_cookie_list_callback)); &get_cookie_list_callback));
base::RunLoop loop;
EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_)) EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_))
.WillOnce(QuitCurrentMessageLoop()); .WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlWithOptionsCookies) { TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlWithOptionsCookies) {
...@@ -1074,10 +1068,12 @@ TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlWithOptionsCookies) { ...@@ -1074,10 +1068,12 @@ TEST_F(DeferredCookieTaskTest, DeferredGetAllForUrlWithOptionsCookies) {
.WillOnce(GetAllCookiesForUrlWithOptionsAction( .WillOnce(GetAllCookiesForUrlWithOptionsAction(
&cookie_monster(), http_www_google_.url(), &cookie_monster(), http_www_google_.url(),
&get_cookie_list_callback)); &get_cookie_list_callback));
base::RunLoop loop;
EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_)) EXPECT_CALL(get_cookie_list_callback, Invoke(testing::_))
.WillOnce(QuitCurrentMessageLoop()); .WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCookies) { TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCookies) {
...@@ -1089,10 +1085,12 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCookies) { ...@@ -1089,10 +1085,12 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCookies) {
EXPECT_CALL(delete_callback, Invoke(false)) EXPECT_CALL(delete_callback, Invoke(false))
.WillOnce(DeleteAllAction(&cookie_monster(), &delete_callback)); .WillOnce(DeleteAllAction(&cookie_monster(), &delete_callback));
EXPECT_CALL(delete_callback, Invoke(false))
.WillOnce(QuitCurrentMessageLoop());
CompleteLoadingAndWait(); base::RunLoop loop;
EXPECT_CALL(delete_callback, Invoke(false)).WillOnce(QuitRunLoop(&loop));
CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCreatedBetweenCookies) { TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCreatedBetweenCookies) {
...@@ -1107,10 +1105,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCreatedBetweenCookies) { ...@@ -1107,10 +1105,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteAllCreatedBetweenCookies) {
.WillOnce(DeleteAllCreatedBetweenAction(&cookie_monster(), base::Time(), .WillOnce(DeleteAllCreatedBetweenAction(&cookie_monster(), base::Time(),
base::Time::Now(), base::Time::Now(),
&delete_callback)); &delete_callback));
EXPECT_CALL(delete_callback, Invoke(false)) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(delete_callback, Invoke(false)).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredDeleteAllForHostCookies) { TEST_F(DeferredCookieTaskTest, DeferredDeleteAllForHostCookies) {
...@@ -1126,10 +1125,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteAllForHostCookies) { ...@@ -1126,10 +1125,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteAllForHostCookies) {
EXPECT_CALL(delete_callback, Invoke(false)) EXPECT_CALL(delete_callback, Invoke(false))
.WillOnce(DeleteAllForHostAction( .WillOnce(DeleteAllForHostAction(
&cookie_monster(), http_www_google_.url(), &delete_callback)); &cookie_monster(), http_www_google_.url(), &delete_callback));
EXPECT_CALL(delete_callback, Invoke(false)) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(delete_callback, Invoke(false)).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredDeleteCanonicalCookie) { TEST_F(DeferredCookieTaskTest, DeferredDeleteCanonicalCookie) {
...@@ -1147,10 +1147,12 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteCanonicalCookie) { ...@@ -1147,10 +1147,12 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteCanonicalCookie) {
EXPECT_CALL(delete_cookie_callback, Invoke(false)) EXPECT_CALL(delete_cookie_callback, Invoke(false))
.WillOnce(DeleteCanonicalCookieAction(&cookie_monster(), cookie, .WillOnce(DeleteCanonicalCookieAction(&cookie_monster(), cookie,
&delete_cookie_callback)); &delete_cookie_callback));
base::RunLoop loop;
EXPECT_CALL(delete_cookie_callback, Invoke(false)) EXPECT_CALL(delete_cookie_callback, Invoke(false))
.WillOnce(QuitCurrentMessageLoop()); .WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(DeferredCookieTaskTest, DeferredDeleteSessionCookies) { TEST_F(DeferredCookieTaskTest, DeferredDeleteSessionCookies) {
...@@ -1163,10 +1165,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteSessionCookies) { ...@@ -1163,10 +1165,11 @@ TEST_F(DeferredCookieTaskTest, DeferredDeleteSessionCookies) {
EXPECT_CALL(delete_callback, Invoke(false)) EXPECT_CALL(delete_callback, Invoke(false))
.WillOnce( .WillOnce(
DeleteSessionCookiesAction(&cookie_monster(), &delete_callback)); DeleteSessionCookiesAction(&cookie_monster(), &delete_callback));
EXPECT_CALL(delete_callback, Invoke(false)) base::RunLoop loop;
.WillOnce(QuitCurrentMessageLoop()); EXPECT_CALL(delete_callback, Invoke(false)).WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
// Verify that a series of queued tasks are executed in order upon loading of // Verify that a series of queued tasks are executed in order upon loading of
...@@ -1188,7 +1191,7 @@ TEST_F(DeferredCookieTaskTest, DeferredTaskOrder) { ...@@ -1188,7 +1191,7 @@ TEST_F(DeferredCookieTaskTest, DeferredTaskOrder) {
SetCookieAction(&cookie_monster(), http_www_google_.url(), "A=B", SetCookieAction(&cookie_monster(), http_www_google_.url(), "A=B",
&set_cookies_callback))); &set_cookies_callback)));
ExpectLoadCall(); ExpectLoadCall();
ExpectLoadForKeyCall(http_www_google_.domain(), false); ExpectLoadForKeyCall(http_www_google_.domain());
Begin(); Begin();
WaitForLoadCall(); WaitForLoadCall();
...@@ -1196,10 +1199,12 @@ TEST_F(DeferredCookieTaskTest, DeferredTaskOrder) { ...@@ -1196,10 +1199,12 @@ TEST_F(DeferredCookieTaskTest, DeferredTaskOrder) {
.WillOnce(GetCookiesAction(&cookie_monster(), http_www_google_.url(), .WillOnce(GetCookiesAction(&cookie_monster(), http_www_google_.url(),
&get_cookies_callback_deferred)); &get_cookies_callback_deferred));
EXPECT_CALL(set_cookies_callback, Invoke(true)); EXPECT_CALL(set_cookies_callback, Invoke(true));
base::RunLoop loop;
EXPECT_CALL(get_cookies_callback_deferred, Invoke("A=B; X=1")) EXPECT_CALL(get_cookies_callback_deferred, Invoke("A=B; X=1"))
.WillOnce(QuitCurrentMessageLoop()); .WillOnce(QuitRunLoop(&loop));
CompleteLoadingAndWait(); CompleteLoading();
loop.Run();
} }
TEST_F(CookieMonsterTest, TestCookieDeleteAll) { TEST_F(CookieMonsterTest, TestCookieDeleteAll) {
...@@ -2591,7 +2596,6 @@ class MultiThreadedCookieMonsterTest : public CookieMonsterTest { ...@@ -2591,7 +2596,6 @@ class MultiThreadedCookieMonsterTest : public CookieMonsterTest {
void RunOnOtherThread(const base::Closure& task) { void RunOnOtherThread(const base::Closure& task) {
other_thread_.Start(); other_thread_.Start();
other_thread_.task_runner()->PostTask(FROM_HERE, task); other_thread_.task_runner()->PostTask(FROM_HERE, task);
RunFor(kTimeout);
other_thread_.Stop(); other_thread_.Stop();
} }
...@@ -2614,7 +2618,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckGetAllCookies) { ...@@ -2614,7 +2618,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckGetAllCookies) {
base::Bind(&MultiThreadedCookieMonsterTest::GetAllCookiesTask, base::Bind(&MultiThreadedCookieMonsterTest::GetAllCookiesTask,
base::Unretained(this), cm, &callback); base::Unretained(this), cm, &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
it = callback.cookies().begin(); it = callback.cookies().begin();
ASSERT_TRUE(it != callback.cookies().end()); ASSERT_TRUE(it != callback.cookies().end());
EXPECT_EQ(http_www_google_.host(), it->Domain()); EXPECT_EQ(http_www_google_.host(), it->Domain());
...@@ -2636,7 +2640,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckGetAllCookiesForURL) { ...@@ -2636,7 +2640,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckGetAllCookiesForURL) {
base::Bind(&MultiThreadedCookieMonsterTest::GetAllCookiesForURLTask, base::Bind(&MultiThreadedCookieMonsterTest::GetAllCookiesForURLTask,
base::Unretained(this), cm, http_www_google_.url(), &callback); base::Unretained(this), cm, http_www_google_.url(), &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
it = callback.cookies().begin(); it = callback.cookies().begin();
ASSERT_TRUE(it != callback.cookies().end()); ASSERT_TRUE(it != callback.cookies().end());
EXPECT_EQ(http_www_google_.host(), it->Domain()); EXPECT_EQ(http_www_google_.host(), it->Domain());
...@@ -2660,7 +2664,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckGetAllCookiesForURLWithOpt) { ...@@ -2660,7 +2664,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckGetAllCookiesForURLWithOpt) {
&MultiThreadedCookieMonsterTest::GetAllCookiesForURLWithOptionsTask, &MultiThreadedCookieMonsterTest::GetAllCookiesForURLWithOptionsTask,
base::Unretained(this), cm, http_www_google_.url(), options, &callback); base::Unretained(this), cm, http_www_google_.url(), options, &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
it = callback.cookies().begin(); it = callback.cookies().begin();
ASSERT_TRUE(it != callback.cookies().end()); ASSERT_TRUE(it != callback.cookies().end());
EXPECT_EQ(http_www_google_.host(), it->Domain()); EXPECT_EQ(http_www_google_.host(), it->Domain());
...@@ -2678,7 +2682,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckSetCookieWithDetails) { ...@@ -2678,7 +2682,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckSetCookieWithDetails) {
base::Bind(&MultiThreadedCookieMonsterTest::SetCookieWithDetailsTask, base::Bind(&MultiThreadedCookieMonsterTest::SetCookieWithDetailsTask,
base::Unretained(this), cm, www_google_foo_.url(), &callback); base::Unretained(this), cm, www_google_foo_.url(), &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_TRUE(callback.result()); EXPECT_TRUE(callback.result());
} }
...@@ -2698,7 +2702,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckDeleteAllCreatedBetween) { ...@@ -2698,7 +2702,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckDeleteAllCreatedBetween) {
base::Unretained(this), cm, now - TimeDelta::FromDays(99), base::Unretained(this), cm, now - TimeDelta::FromDays(99),
Time(), &callback); Time(), &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_EQ(1, callback.result()); EXPECT_EQ(1, callback.result());
} }
...@@ -2715,7 +2719,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckDeleteAllForHost) { ...@@ -2715,7 +2719,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckDeleteAllForHost) {
base::Bind(&MultiThreadedCookieMonsterTest::DeleteAllForHostTask, base::Bind(&MultiThreadedCookieMonsterTest::DeleteAllForHostTask,
base::Unretained(this), cm, http_www_google_.url(), &callback); base::Unretained(this), cm, http_www_google_.url(), &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_EQ(1, callback.result()); EXPECT_EQ(1, callback.result());
} }
...@@ -2762,7 +2766,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ...@@ -2762,7 +2766,7 @@ TEST_F(MultiThreadedCookieMonsterTest,
base::Unretained(this), cm, ago1, Time(), http_www_google_.url(), base::Unretained(this), cm, ago1, Time(), http_www_google_.url(),
&callback); &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_EQ(2, callback.result()); // Deletes A=B, G=H. EXPECT_EQ(2, callback.result()); // Deletes A=B, G=H.
} }
...@@ -2784,7 +2788,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckDeleteCanonicalCookie) { ...@@ -2784,7 +2788,7 @@ TEST_F(MultiThreadedCookieMonsterTest, ThreadCheckDeleteCanonicalCookie) {
base::Bind(&MultiThreadedCookieMonsterTest::DeleteCanonicalCookieTask, base::Bind(&MultiThreadedCookieMonsterTest::DeleteCanonicalCookieTask,
base::Unretained(this), cm, *it, &callback); base::Unretained(this), cm, *it, &callback);
RunOnOtherThread(task); RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_TRUE(callback.result()); EXPECT_TRUE(callback.result());
} }
...@@ -2822,11 +2826,10 @@ TEST_F(MultiThreadedCookieMonsterTest, GetAllCookiesForURLEffectiveDomain) { ...@@ -2822,11 +2826,10 @@ TEST_F(MultiThreadedCookieMonsterTest, GetAllCookiesForURLEffectiveDomain) {
checkpoint.Call(0); checkpoint.Call(0);
GetAllCookiesForURLTask(cm.get(), http_www_google_.url(), &callback); GetAllCookiesForURLTask(cm.get(), http_www_google_.url(), &callback);
checkpoint.Call(1); checkpoint.Call(1);
ASSERT_FALSE(callback.did_run());
// Pass the cookies to the CookieMonster. // Pass the cookies to the CookieMonster.
loaded_callback.Run(cookies); loaded_callback.Run(cookies);
// Now GetAllCookiesForURLTask is done. // Now GetAllCookiesForURLTask is done.
ASSERT_TRUE(callback.did_run()); callback.WaitUntilDone();
// See that the callback was called with the cookies. // See that the callback was called with the cookies.
ASSERT_EQ(1u, callback.cookies().size()); ASSERT_EQ(1u, callback.cookies().size());
EXPECT_TRUE(cookie->IsEquivalent(callback.cookies()[0])); EXPECT_TRUE(cookie->IsEquivalent(callback.cookies()[0]));
...@@ -2841,7 +2844,7 @@ TEST_F(MultiThreadedCookieMonsterTest, GetAllCookiesForURLEffectiveDomain) { ...@@ -2841,7 +2844,7 @@ TEST_F(MultiThreadedCookieMonsterTest, GetAllCookiesForURLEffectiveDomain) {
// calling LoadCookiesForKey. // calling LoadCookiesForKey.
GetCookieListCallback callback; GetCookieListCallback callback;
GetAllCookiesForURLTask(cm.get(), url, &callback); GetAllCookiesForURLTask(cm.get(), url, &callback);
ASSERT_TRUE(callback.did_run()); callback.WaitUntilDone();
ASSERT_EQ(1u, callback.cookies().size()); ASSERT_EQ(1u, callback.cookies().size());
EXPECT_TRUE(cookie->IsEquivalent(callback.cookies()[0])); EXPECT_TRUE(cookie->IsEquivalent(callback.cookies()[0]));
} }
......
...@@ -13,18 +13,12 @@ ...@@ -13,18 +13,12 @@
namespace net { namespace net {
CookieCallback::CookieCallback(base::Thread* run_in_thread) CookieCallback::CookieCallback(base::Thread* run_in_thread)
: did_run_(false), : run_in_thread_(run_in_thread), run_in_loop_(NULL) {}
run_in_thread_(run_in_thread),
run_in_loop_(NULL),
parent_loop_(base::MessageLoop::current()),
loop_to_quit_(base::MessageLoop::current()) {}
CookieCallback::CookieCallback() CookieCallback::CookieCallback()
: did_run_(false), : run_in_thread_(NULL), run_in_loop_(base::MessageLoop::current()) {}
run_in_thread_(NULL),
run_in_loop_(base::MessageLoop::current()), CookieCallback::~CookieCallback() {}
parent_loop_(NULL),
loop_to_quit_(base::MessageLoop::current()) {}
void CookieCallback::CallbackEpilogue() { void CookieCallback::CallbackEpilogue() {
base::MessageLoop* expected_loop = NULL; base::MessageLoop* expected_loop = NULL;
...@@ -36,10 +30,12 @@ void CookieCallback::CallbackEpilogue() { ...@@ -36,10 +30,12 @@ void CookieCallback::CallbackEpilogue() {
} }
ASSERT_TRUE(expected_loop != NULL); ASSERT_TRUE(expected_loop != NULL);
did_run_ = true;
EXPECT_EQ(expected_loop, base::MessageLoop::current()); EXPECT_EQ(expected_loop, base::MessageLoop::current());
loop_to_quit_->task_runner()->PostTask( loop_to_quit_.Quit();
FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); }
void CookieCallback::WaitUntilDone() {
loop_to_quit_.Run();
} }
StringResultCookieCallback::StringResultCookieCallback() {} StringResultCookieCallback::StringResultCookieCallback() {}
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "base/run_loop.h"
#include "net/cookies/canonical_cookie.h" #include "net/cookies/canonical_cookie.h"
#include "net/cookies/cookie_store.h" #include "net/cookies/cookie_store.h"
...@@ -23,28 +24,27 @@ namespace net { ...@@ -23,28 +24,27 @@ namespace net {
// quit to the thread in which it was constructed. // quit to the thread in which it was constructed.
class CookieCallback { class CookieCallback {
public: public:
// Indicates whether the callback has been called. // Waits until the callback is invoked.
bool did_run() { return did_run_; } void WaitUntilDone();
protected: protected:
// Constructs a callback that expects to be called in the given thread and // Constructs a callback that expects to be called in the given thread.
// will, upon execution, send a QUIT to the constructing thread.
explicit CookieCallback(base::Thread* run_in_thread); explicit CookieCallback(base::Thread* run_in_thread);
// Constructs a callback that expects to be called in current thread and will // Constructs a callback that expects to be called in current thread and will
// send a QUIT to the constructing thread. // send a QUIT to the constructing thread.
CookieCallback(); CookieCallback();
~CookieCallback();
// Tests whether the current thread was the caller's thread. // Tests whether the current thread was the caller's thread.
// Sends a QUIT to the constructing thread. // Sends a QUIT to the constructing thread.
void CallbackEpilogue(); void CallbackEpilogue();
private: private:
bool did_run_;
base::Thread* run_in_thread_; base::Thread* run_in_thread_;
base::MessageLoop* run_in_loop_; base::MessageLoop* run_in_loop_;
base::MessageLoop* parent_loop_; base::RunLoop loop_to_quit_;
base::MessageLoop* loop_to_quit_;
}; };
// Callback implementations for the asynchronous CookieStore methods. // Callback implementations for the asynchronous CookieStore methods.
......
...@@ -109,8 +109,7 @@ class CookieStoreTest : public testing::Test { ...@@ -109,8 +109,7 @@ class CookieStoreTest : public testing::Test {
url, options, url, options,
base::Bind(&StringResultCookieCallback::Run, base::Bind(&StringResultCookieCallback::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -122,8 +121,7 @@ class CookieStoreTest : public testing::Test { ...@@ -122,8 +121,7 @@ class CookieStoreTest : public testing::Test {
cs->GetCookiesWithOptionsAsync( cs->GetCookiesWithOptionsAsync(
url, options, base::Bind(&StringResultCookieCallback::Run, url, options, base::Bind(&StringResultCookieCallback::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -132,8 +130,7 @@ class CookieStoreTest : public testing::Test { ...@@ -132,8 +130,7 @@ class CookieStoreTest : public testing::Test {
GetCookieListCallback callback; GetCookieListCallback callback;
cs->GetAllCookiesAsync( cs->GetAllCookiesAsync(
base::Bind(&GetCookieListCallback::Run, base::Unretained(&callback))); base::Bind(&GetCookieListCallback::Run, base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.cookies(); return callback.cookies();
} }
...@@ -148,8 +145,7 @@ class CookieStoreTest : public testing::Test { ...@@ -148,8 +145,7 @@ class CookieStoreTest : public testing::Test {
base::Bind( base::Bind(
&ResultSavingCookieCallback<bool>::Run, &ResultSavingCookieCallback<bool>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -183,8 +179,7 @@ class CookieStoreTest : public testing::Test { ...@@ -183,8 +179,7 @@ class CookieStoreTest : public testing::Test {
cs->DeleteCookieAsync( cs->DeleteCookieAsync(
url, cookie_name, url, cookie_name,
base::Bind(&NoResultCookieCallback::Run, base::Unretained(&callback))); base::Bind(&NoResultCookieCallback::Run, base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
} }
int DeleteCreatedBetween(CookieStore* cs, int DeleteCreatedBetween(CookieStore* cs,
...@@ -197,8 +192,7 @@ class CookieStoreTest : public testing::Test { ...@@ -197,8 +192,7 @@ class CookieStoreTest : public testing::Test {
base::Bind( base::Bind(
&ResultSavingCookieCallback<int>::Run, &ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -213,8 +207,7 @@ class CookieStoreTest : public testing::Test { ...@@ -213,8 +207,7 @@ class CookieStoreTest : public testing::Test {
base::Bind( base::Bind(
&ResultSavingCookieCallback<int>::Run, &ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
...@@ -225,21 +218,10 @@ class CookieStoreTest : public testing::Test { ...@@ -225,21 +218,10 @@ class CookieStoreTest : public testing::Test {
base::Bind( base::Bind(
&ResultSavingCookieCallback<int>::Run, &ResultSavingCookieCallback<int>::Run,
base::Unretained(&callback))); base::Unretained(&callback)));
RunFor(kTimeout); callback.WaitUntilDone();
EXPECT_TRUE(callback.did_run());
return callback.result(); return callback.result();
} }
void RunFor(int ms) {
// Runs the test thread message loop for up to |ms| milliseconds.
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE, base::Bind(&base::MessageLoop::QuitWhenIdle,
weak_factory_->GetWeakPtr()),
base::TimeDelta::FromMilliseconds(ms));
base::MessageLoop::current()->Run();
weak_factory_->InvalidateWeakPtrs();
}
scoped_refptr<CookieStore> GetCookieStore() { scoped_refptr<CookieStore> GetCookieStore() {
return CookieStoreTestTraits::Create(); return CookieStoreTestTraits::Create();
} }
...@@ -1218,7 +1200,6 @@ class MultiThreadedCookieStoreTest : ...@@ -1218,7 +1200,6 @@ class MultiThreadedCookieStoreTest :
void RunOnOtherThread(const base::Closure& task) { void RunOnOtherThread(const base::Closure& task) {
other_thread_.Start(); other_thread_.Start();
other_thread_.task_runner()->PostTask(FROM_HERE, task); other_thread_.task_runner()->PostTask(FROM_HERE, task);
CookieStoreTest<CookieStoreTestTraits>::RunFor(kTimeout);
other_thread_.Stop(); other_thread_.Stop();
} }
...@@ -1240,7 +1221,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckGetCookies) { ...@@ -1240,7 +1221,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckGetCookies) {
&MultiThreadedCookieStoreTest<TypeParam>::GetCookiesTask, &MultiThreadedCookieStoreTest<TypeParam>::GetCookiesTask,
base::Unretained(this), cs, this->http_www_google_.url(), &callback); base::Unretained(this), cs, this->http_www_google_.url(), &callback);
this->RunOnOtherThread(task); this->RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_EQ("A=B", callback.result()); EXPECT_EQ("A=B", callback.result());
} }
...@@ -1259,7 +1240,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckGetCookiesWithOptions) { ...@@ -1259,7 +1240,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckGetCookiesWithOptions) {
base::Unretained(this), cs, this->http_www_google_.url(), options, base::Unretained(this), cs, this->http_www_google_.url(), options,
&callback); &callback);
this->RunOnOtherThread(task); this->RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_EQ("A=B", callback.result()); EXPECT_EQ("A=B", callback.result());
} }
...@@ -1276,7 +1257,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckSetCookieWithOptions) { ...@@ -1276,7 +1257,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckSetCookieWithOptions) {
base::Unretained(this), cs, this->http_www_google_.url(), "A=B", options, base::Unretained(this), cs, this->http_www_google_.url(), "A=B", options,
&callback); &callback);
this->RunOnOtherThread(task); this->RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_TRUE(callback.result()); EXPECT_TRUE(callback.result());
} }
...@@ -1295,7 +1276,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteCookie) { ...@@ -1295,7 +1276,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteCookie) {
&MultiThreadedCookieStoreTest<TypeParam>::DeleteCookieTask, &MultiThreadedCookieStoreTest<TypeParam>::DeleteCookieTask,
base::Unretained(this), cs, this->http_www_google_.url(), "A", &callback); base::Unretained(this), cs, this->http_www_google_.url(), "A", &callback);
this->RunOnOtherThread(task); this->RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
} }
TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteSessionCookies) { TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteSessionCookies) {
...@@ -1317,7 +1298,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteSessionCookies) { ...@@ -1317,7 +1298,7 @@ TYPED_TEST_P(MultiThreadedCookieStoreTest, ThreadCheckDeleteSessionCookies) {
&MultiThreadedCookieStoreTest<TypeParam>::DeleteSessionCookiesTask, &MultiThreadedCookieStoreTest<TypeParam>::DeleteSessionCookiesTask,
base::Unretained(this), cs, &callback); base::Unretained(this), cs, &callback);
this->RunOnOtherThread(task); this->RunOnOtherThread(task);
EXPECT_TRUE(callback.did_run()); callback.WaitUntilDone();
EXPECT_EQ(1, callback.result()); EXPECT_EQ(1, callback.result());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment