Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1669)

Unified Diff: content/browser/indexed_db/indexed_db_quota_client_unittest.cc

Issue 17518004: Move IndexedDB from WEBKIT_DEPRECATED to dedicated thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add missing files Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/indexed_db/indexed_db_quota_client_unittest.cc
diff --git a/content/browser/indexed_db/indexed_db_quota_client_unittest.cc b/content/browser/indexed_db/indexed_db_quota_client_unittest.cc
index a0b9c744afae6128364d49f0fc259edb802a7317..bd9a5ffc495cc8815b1b90da0cf3c91cdf1c0f8b 100644
--- a/content/browser/indexed_db/indexed_db_quota_client_unittest.cc
+++ b/content/browser/indexed_db/indexed_db_quota_client_unittest.cc
@@ -9,13 +9,16 @@
#include "base/files/file_path.h"
#include "base/files/scoped_temp_dir.h"
#include "base/message_loop.h"
-#include "base/message_loop/message_loop_proxy.h"
+#include "base/test/thread_test_helper.h"
+#include "base/threading/thread.h"
#include "content/browser/browser_thread_impl.h"
#include "content/browser/indexed_db/indexed_db_context_impl.h"
#include "content/browser/indexed_db/indexed_db_quota_client.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/test/test_browser_context.h"
+#include "content/public/test/test_browser_thread_bundle.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "webkit/browser/quota/mock_quota_manager.h"
#include "webkit/common/database/database_identifier.h"
// Declared to shorten the line lengths.
@@ -36,21 +39,34 @@ class IndexedDBQuotaClientTest : public testing::Test {
kOriginB("http://host:8000"),
kOriginOther("http://other"),
usage_(0),
- weak_factory_(this),
- message_loop_(base::MessageLoop::TYPE_IO),
- db_thread_(BrowserThread::DB, &message_loop_),
- webkit_thread_(BrowserThread::WEBKIT_DEPRECATED, &message_loop_),
- file_thread_(BrowserThread::FILE, &message_loop_),
- file_user_blocking_thread_(BrowserThread::FILE_USER_BLOCKING,
- &message_loop_),
- io_thread_(BrowserThread::IO, &message_loop_) {
+ idb_thread_(new base::Thread("IndexedDBTest")),
+ weak_factory_(this) {
browser_context_.reset(new TestBrowserContext());
- idb_context_ = static_cast<IndexedDBContextImpl*>(
- BrowserContext::GetDefaultStoragePartition(browser_context_.get())
- ->GetIndexedDBContext());
- message_loop_.RunUntilIdle();
+
+ scoped_refptr<quota::QuotaManager> quota_manager =
+ new quota::MockQuotaManager(
+ false /*in_memory*/,
+ browser_context_->GetPath(),
+ base::MessageLoop::current()->message_loop_proxy(),
+ base::MessageLoop::current()->message_loop_proxy(),
+ browser_context_->GetSpecialStoragePolicy());
+
+ idb_thread_->Start();
+ idb_context_ =
+ new IndexedDBContextImpl(browser_context_->GetPath(),
+ browser_context_->GetSpecialStoragePolicy(),
+ quota_manager->proxy(),
+ idb_thread_->message_loop());
+ base::MessageLoop::current()->RunUntilIdle();
setup_temp_dir();
}
+
+ void FlushIndexedDBTaskRunner() {
+ scoped_refptr<base::ThreadTestHelper> helper(
+ new base::ThreadTestHelper(idb_context_->MessageLoopProxy()));
+ ASSERT_TRUE(helper->Run());
+ }
+
void setup_temp_dir() {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
base::FilePath indexeddb_dir =
@@ -60,10 +76,7 @@ class IndexedDBQuotaClientTest : public testing::Test {
}
virtual ~IndexedDBQuotaClientTest() {
- // IndexedDBContext needs to be destructed on
- // BrowserThread::WEBKIT_DEPRECATED, which is also a member variable of this
- // class. Cause IndexedDBContext's destruction now to ensure that it
- // doesn't outlive BrowserThread::WEBKIT_DEPRECATED.
+ FlushIndexedDBTaskRunner();
idb_context_ = NULL;
browser_context_.reset();
base::MessageLoop::current()->RunUntilIdle();
@@ -78,6 +91,7 @@ class IndexedDBQuotaClientTest : public testing::Test {
type,
base::Bind(&IndexedDBQuotaClientTest::OnGetOriginUsageComplete,
weak_factory_.GetWeakPtr()));
+ FlushIndexedDBTaskRunner();
base::MessageLoop::current()->RunUntilIdle();
EXPECT_GT(usage_, -1);
return usage_;
@@ -90,6 +104,7 @@ class IndexedDBQuotaClientTest : public testing::Test {
type,
base::Bind(&IndexedDBQuotaClientTest::OnGetOriginsComplete,
weak_factory_.GetWeakPtr()));
+ FlushIndexedDBTaskRunner();
base::MessageLoop::current()->RunUntilIdle();
return origins_;
}
@@ -103,6 +118,7 @@ class IndexedDBQuotaClientTest : public testing::Test {
host,
base::Bind(&IndexedDBQuotaClientTest::OnGetOriginsComplete,
weak_factory_.GetWeakPtr()));
+ FlushIndexedDBTaskRunner();
base::MessageLoop::current()->RunUntilIdle();
return origins_;
}
@@ -115,6 +131,7 @@ class IndexedDBQuotaClientTest : public testing::Test {
kTemp,
base::Bind(&IndexedDBQuotaClientTest::OnDeleteOriginComplete,
weak_factory_.GetWeakPtr()));
+ FlushIndexedDBTaskRunner();
base::MessageLoop::current()->RunUntilIdle();
return delete_status_;
}
@@ -152,21 +169,16 @@ class IndexedDBQuotaClientTest : public testing::Test {
base::ScopedTempDir temp_dir_;
int64 usage_;
std::set<GURL> origins_;
+ scoped_ptr<base::Thread> idb_thread_;
scoped_refptr<IndexedDBContextImpl> idb_context_;
base::WeakPtrFactory<IndexedDBQuotaClientTest> weak_factory_;
- base::MessageLoop message_loop_;
- BrowserThreadImpl db_thread_;
- BrowserThreadImpl webkit_thread_;
- BrowserThreadImpl file_thread_;
- BrowserThreadImpl file_user_blocking_thread_;
- BrowserThreadImpl io_thread_;
+ content::TestBrowserThreadBundle thread_bundle_;
scoped_ptr<TestBrowserContext> browser_context_;
quota::QuotaStatusCode delete_status_;
};
TEST_F(IndexedDBQuotaClientTest, GetOriginUsage) {
- IndexedDBQuotaClient client(base::MessageLoopProxy::current().get(),
- idb_context());
+ IndexedDBQuotaClient client(idb_context());
AddFakeIndexedDB(kOriginA, 6);
AddFakeIndexedDB(kOriginB, 3);
@@ -183,8 +195,7 @@ TEST_F(IndexedDBQuotaClientTest, GetOriginUsage) {
}
TEST_F(IndexedDBQuotaClientTest, GetOriginsForHost) {
- IndexedDBQuotaClient client(base::MessageLoopProxy::current().get(),
- idb_context());
+ IndexedDBQuotaClient client(idb_context());
EXPECT_EQ(kOriginA.host(), kOriginB.host());
EXPECT_NE(kOriginA.host(), kOriginOther.host());
@@ -208,8 +219,7 @@ TEST_F(IndexedDBQuotaClientTest, GetOriginsForHost) {
}
TEST_F(IndexedDBQuotaClientTest, GetOriginsForType) {
- IndexedDBQuotaClient client(base::MessageLoopProxy::current().get(),
- idb_context());
+ IndexedDBQuotaClient client(idb_context());
EXPECT_TRUE(GetOriginsForType(&client, kTemp).empty());
EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty());
@@ -223,8 +233,7 @@ TEST_F(IndexedDBQuotaClientTest, GetOriginsForType) {
}
TEST_F(IndexedDBQuotaClientTest, DeleteOrigin) {
- IndexedDBQuotaClient client(base::MessageLoopProxy::current().get(),
- idb_context());
+ IndexedDBQuotaClient client(idb_context());
AddFakeIndexedDB(kOriginA, 1000);
AddFakeIndexedDB(kOriginB, 50);

Powered by Google App Engine
This is Rietveld 408576698