Index: chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc |
=================================================================== |
--- chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc (revision 95998) |
+++ chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc (working copy) |
@@ -2,11 +2,13 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/bind.h" |
#include "base/file_util.h" |
#include "base/memory/ref_counted.h" |
#include "base/message_loop.h" |
#include "base/scoped_temp_dir.h" |
#include "base/stl_util.h" |
+#include "base/synchronization/waitable_event.h" |
#include "base/test/thread_test_helper.h" |
#include "base/time.h" |
#include "chrome/browser/net/sqlite_persistent_cookie_store.h" |
@@ -19,10 +21,26 @@ |
public: |
SQLitePersistentCookieStoreTest() |
: ui_thread_(BrowserThread::UI), |
- db_thread_(BrowserThread::DB) { |
+ db_thread_(BrowserThread::DB), |
+ event_(false, false) { |
} |
protected: |
+ void OnLoaded( |
+ const std::vector<net::CookieMonster::CanonicalCookie*>& cookies) { |
+ cookies_ = cookies; |
+ event_.Signal(); |
+ } |
+ |
+ bool Load(std::vector<net::CookieMonster::CanonicalCookie*>* cookies) { |
+ bool result = |
+ store_->Load(base::Bind(&SQLitePersistentCookieStoreTest::OnLoaded, |
+ base::Unretained(this))); |
+ event_.Wait(); |
+ *cookies = cookies_; |
+ return result; |
+ } |
+ |
virtual void SetUp() { |
ui_thread_.Start(); |
db_thread_.Start(); |
@@ -30,7 +48,7 @@ |
store_ = new SQLitePersistentCookieStore( |
temp_dir_.path().Append(chrome::kCookieFilename)); |
std::vector<net::CookieMonster::CanonicalCookie*> cookies; |
- ASSERT_TRUE(store_->Load(&cookies)); |
+ ASSERT_TRUE(Load(&cookies)); |
ASSERT_TRUE(0 == cookies.size()); |
// Make sure the store gets written at least once. |
store_->AddCookie( |
@@ -44,6 +62,8 @@ |
BrowserThread ui_thread_; |
BrowserThread db_thread_; |
+ base::WaitableEvent event_; |
+ std::vector<net::CookieMonster::CanonicalCookie*> cookies_; |
ScopedTempDir temp_dir_; |
scoped_refptr<SQLitePersistentCookieStore> store_; |
}; |
@@ -95,7 +115,7 @@ |
temp_dir_.path().Append(chrome::kCookieFilename)); |
// Reload and test for persistence |
- ASSERT_TRUE(store_->Load(&cookies)); |
+ ASSERT_TRUE(Load(&cookies)); |
ASSERT_EQ(1U, cookies.size()); |
ASSERT_STREQ("http://foo.bar", cookies[0]->Domain().c_str()); |
ASSERT_STREQ("A", cookies[0]->Name().c_str()); |
@@ -112,7 +132,7 @@ |
temp_dir_.path().Append(chrome::kCookieFilename)); |
// Reload and check if the cookie has been removed. |
- ASSERT_TRUE(store_->Load(&cookies)); |
+ ASSERT_TRUE(Load(&cookies)); |
ASSERT_EQ(0U, cookies.size()); |
} |