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

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

Issue 8082019: more content exports needed for unit_tests and browser_tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revert export of browser_accessibility_win for now Created 9 years, 3 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/in_process_webkit/indexed_db_quota_client_unittest.cc
diff --git a/content/browser/in_process_webkit/indexed_db_quota_client_unittest.cc b/content/browser/in_process_webkit/indexed_db_quota_client_unittest.cc
index 72fdc49d1bba8da088669f3b401a7fa87cc4fb9f..06b437ed0f57f3425b47b85be8473b4429d4d69a 100644
--- a/content/browser/in_process_webkit/indexed_db_quota_client_unittest.cc
+++ b/content/browser/in_process_webkit/indexed_db_quota_client_unittest.cc
@@ -1,230 +1,230 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <map>
-
-#include "base/file_path.h"
-#include "base/file_util.h"
-#include "base/memory/scoped_callback_factory.h"
-#include "base/message_loop.h"
-#include "base/message_loop_proxy.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/browser/in_process_webkit/indexed_db_context.h"
-#include "content/browser/in_process_webkit/indexed_db_quota_client.h"
-#include "content/browser/in_process_webkit/webkit_context.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "webkit/database/database_util.h"
-
-// Declared to shorten the line lengths.
-static const quota::StorageType kTemp = quota::kStorageTypeTemporary;
-static const quota::StorageType kPerm = quota::kStorageTypePersistent;
-
-using namespace webkit_database;
-
-// Base class for our test fixtures.
-class IndexedDBQuotaClientTest : public testing::Test {
- public:
- const GURL kOriginA;
- const GURL kOriginB;
- const GURL kOriginOther;
-
- IndexedDBQuotaClientTest()
- : kOriginA("http://host"),
- kOriginB("http://host:8000"),
- kOriginOther("http://other"),
- usage_(0),
- callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
- message_loop_(MessageLoop::TYPE_IO),
- webkit_thread_(BrowserThread::WEBKIT, &message_loop_),
- io_thread_(BrowserThread::IO, &message_loop_) {
- TestingProfile profile;
- idb_context_ = profile.GetWebKitContext()->indexed_db_context();
- setup_temp_dir();
- }
- void setup_temp_dir() {
- ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
- FilePath indexeddb_dir = temp_dir_.path().Append(
- IndexedDBContext::kIndexedDBDirectory);
- ASSERT_TRUE(file_util::CreateDirectory(indexeddb_dir));
- idb_context()->set_data_path(indexeddb_dir);
- }
-
- ~IndexedDBQuotaClientTest() {
- // IndexedDBContext needs to be destructed on BrowserThread::WEBKIT, which
- // is also a member variable of this class. Cause IndexedDBContext's
- // destruction now to ensure that it doesn't outlive BrowserThread::WEBKIT.
- idb_context_ = NULL;
- MessageLoop::current()->RunAllPending();
- }
-
- int64 GetOriginUsage(
- quota::QuotaClient* client,
- const GURL& origin,
- quota::StorageType type) {
- usage_ = -1;
- client->GetOriginUsage(origin, type,
- callback_factory_.NewCallback(
- &IndexedDBQuotaClientTest::OnGetOriginUsageComplete));
- MessageLoop::current()->RunAllPending();
- EXPECT_GT(usage_, -1);
- return usage_;
- }
-
- const std::set<GURL>& GetOriginsForType(
- quota::QuotaClient* client,
- quota::StorageType type) {
- origins_.clear();
- type_ = quota::kStorageTypeTemporary;
- client->GetOriginsForType(type,
- callback_factory_.NewCallback(
- &IndexedDBQuotaClientTest::OnGetOriginsComplete));
- MessageLoop::current()->RunAllPending();
- return origins_;
- }
-
- const std::set<GURL>& GetOriginsForHost(
- quota::QuotaClient* client,
- quota::StorageType type,
- const std::string& host) {
- origins_.clear();
- type_ = quota::kStorageTypeTemporary;
- client->GetOriginsForHost(type, host,
- callback_factory_.NewCallback(
- &IndexedDBQuotaClientTest::OnGetOriginsComplete));
- MessageLoop::current()->RunAllPending();
- return origins_;
- }
-
- quota::QuotaStatusCode DeleteOrigin(quota::QuotaClient* client,
- const GURL& origin_url) {
- delete_status_ = quota::kQuotaStatusUnknown;
- client->DeleteOriginData(origin_url, kTemp, callback_factory_.NewCallback(
- &IndexedDBQuotaClientTest::OnDeleteOriginComplete));
- MessageLoop::current()->RunAllPending();
- return delete_status_;
- }
-
- IndexedDBContext* idb_context() { return idb_context_.get(); }
-
- void SetFileSizeTo(const FilePath& path, int size) {
- std::string junk(size, 'a');
- ASSERT_EQ(size, file_util::WriteFile(path, junk.c_str(), size));
- }
-
- void AddFakeIndexedDB(const GURL& origin, int size) {
- FilePath file_path_origin = idb_context()->GetIndexedDBFilePath(
- DatabaseUtil::GetOriginIdentifier(origin));
- if (!file_util::CreateDirectory(file_path_origin)) {
- LOG(ERROR) << "failed to file_util::CreateDirectory "
- << file_path_origin.value();
- }
- file_path_origin = file_path_origin.Append(FILE_PATH_LITERAL("fake_file"));
- SetFileSizeTo(file_path_origin, size);
- idb_context()->ResetCaches();
- }
-
- private:
- void OnGetOriginUsageComplete(int64 usage) {
- usage_ = usage;
- }
-
- void OnGetOriginsComplete(const std::set<GURL>& origins,
- quota::StorageType type) {
- origins_ = origins;
- type_ = type_;
- }
-
- void OnDeleteOriginComplete(quota::QuotaStatusCode code) {
- delete_status_ = code;
- }
-
- ScopedTempDir temp_dir_;
- int64 usage_;
- std::set<GURL> origins_;
- quota::StorageType type_;
- scoped_refptr<IndexedDBContext> idb_context_;
- base::ScopedCallbackFactory<IndexedDBQuotaClientTest> callback_factory_;
- MessageLoop message_loop_;
- BrowserThread webkit_thread_;
- BrowserThread io_thread_;
- quota::QuotaStatusCode delete_status_;
-};
-
-
-TEST_F(IndexedDBQuotaClientTest, GetOriginUsage) {
- IndexedDBQuotaClient client(
- base::MessageLoopProxy::current(),
- idb_context());
-
- AddFakeIndexedDB(kOriginA, 6);
- AddFakeIndexedDB(kOriginB, 3);
- EXPECT_EQ(6, GetOriginUsage(&client, kOriginA, kTemp));
- EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm));
- EXPECT_EQ(3, GetOriginUsage(&client, kOriginB, kTemp));
- EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kPerm));
-
- AddFakeIndexedDB(kOriginA, 1000);
- EXPECT_EQ(1000, GetOriginUsage(&client, kOriginA, kTemp));
- EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm));
- EXPECT_EQ(3, GetOriginUsage(&client, kOriginB, kTemp));
- EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kPerm));
-}
-
-TEST_F(IndexedDBQuotaClientTest, GetOriginsForHost) {
- IndexedDBQuotaClient client(
- base::MessageLoopProxy::current(),
- idb_context());
-
- EXPECT_EQ(kOriginA.host(), kOriginB.host());
- EXPECT_NE(kOriginA.host(), kOriginOther.host());
-
- std::set<GURL> origins = GetOriginsForHost(&client, kTemp, kOriginA.host());
- EXPECT_TRUE(origins.empty());
-
- AddFakeIndexedDB(kOriginA, 1000);
- origins = GetOriginsForHost(&client, kTemp, kOriginA.host());
- EXPECT_EQ(origins.size(), 1ul);
- EXPECT_TRUE(origins.find(kOriginA) != origins.end());
-
- AddFakeIndexedDB(kOriginB, 1000);
- origins = GetOriginsForHost(&client, kTemp, kOriginA.host());
- EXPECT_EQ(origins.size(), 2ul);
- EXPECT_TRUE(origins.find(kOriginA) != origins.end());
- EXPECT_TRUE(origins.find(kOriginB) != origins.end());
-
- EXPECT_TRUE(GetOriginsForHost(&client, kPerm, kOriginA.host()).empty());
- EXPECT_TRUE(GetOriginsForHost(&client, kTemp, kOriginOther.host()).empty());
-}
-
-TEST_F(IndexedDBQuotaClientTest, GetOriginsForType) {
- IndexedDBQuotaClient client(
- base::MessageLoopProxy::current(),
- idb_context());
-
- EXPECT_TRUE(GetOriginsForType(&client, kTemp).empty());
- EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty());
-
- AddFakeIndexedDB(kOriginA, 1000);
- std::set<GURL> origins = GetOriginsForType(&client, kTemp);
- EXPECT_EQ(origins.size(), 1ul);
- EXPECT_TRUE(origins.find(kOriginA) != origins.end());
-
- EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty());
-}
-
-TEST_F(IndexedDBQuotaClientTest, DeleteOrigin) {
- IndexedDBQuotaClient client(
- base::MessageLoopProxy::current(),
- idb_context());
-
- AddFakeIndexedDB(kOriginA, 1000);
- AddFakeIndexedDB(kOriginB, 50);
- EXPECT_EQ(1000, GetOriginUsage(&client, kOriginA, kTemp));
- EXPECT_EQ(50, GetOriginUsage(&client, kOriginB, kTemp));
-
- quota::QuotaStatusCode delete_status = DeleteOrigin(&client, kOriginA);
- EXPECT_EQ(quota::kQuotaStatusOk, delete_status);
- EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kTemp));
- EXPECT_EQ(50, GetOriginUsage(&client, kOriginB, kTemp));
-}
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <map>
+
+#include "base/file_path.h"
+#include "base/file_util.h"
+#include "base/memory/scoped_callback_factory.h"
+#include "base/message_loop.h"
+#include "base/message_loop_proxy.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/browser/in_process_webkit/indexed_db_context.h"
+#include "content/browser/in_process_webkit/indexed_db_quota_client.h"
+#include "content/browser/in_process_webkit/webkit_context.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "webkit/database/database_util.h"
+
+// Declared to shorten the line lengths.
+static const quota::StorageType kTemp = quota::kStorageTypeTemporary;
+static const quota::StorageType kPerm = quota::kStorageTypePersistent;
+
+using namespace webkit_database;
+
+// Base class for our test fixtures.
+class IndexedDBQuotaClientTest : public testing::Test {
+ public:
+ const GURL kOriginA;
+ const GURL kOriginB;
+ const GURL kOriginOther;
+
+ IndexedDBQuotaClientTest()
+ : kOriginA("http://host"),
+ kOriginB("http://host:8000"),
+ kOriginOther("http://other"),
+ usage_(0),
+ callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ message_loop_(MessageLoop::TYPE_IO),
+ webkit_thread_(BrowserThread::WEBKIT, &message_loop_),
+ io_thread_(BrowserThread::IO, &message_loop_) {
+ TestingProfile profile;
+ idb_context_ = profile.GetWebKitContext()->indexed_db_context();
+ setup_temp_dir();
+ }
+ void setup_temp_dir() {
+ ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
+ FilePath indexeddb_dir = temp_dir_.path().Append(
+ IndexedDBContext::kIndexedDBDirectory);
+ ASSERT_TRUE(file_util::CreateDirectory(indexeddb_dir));
+ idb_context()->set_data_path_for_testing(indexeddb_dir);
+ }
+
+ ~IndexedDBQuotaClientTest() {
+ // IndexedDBContext needs to be destructed on BrowserThread::WEBKIT, which
+ // is also a member variable of this class. Cause IndexedDBContext's
+ // destruction now to ensure that it doesn't outlive BrowserThread::WEBKIT.
+ idb_context_ = NULL;
+ MessageLoop::current()->RunAllPending();
+ }
+
+ int64 GetOriginUsage(
+ quota::QuotaClient* client,
+ const GURL& origin,
+ quota::StorageType type) {
+ usage_ = -1;
+ client->GetOriginUsage(origin, type,
+ callback_factory_.NewCallback(
+ &IndexedDBQuotaClientTest::OnGetOriginUsageComplete));
+ MessageLoop::current()->RunAllPending();
+ EXPECT_GT(usage_, -1);
+ return usage_;
+ }
+
+ const std::set<GURL>& GetOriginsForType(
+ quota::QuotaClient* client,
+ quota::StorageType type) {
+ origins_.clear();
+ type_ = quota::kStorageTypeTemporary;
+ client->GetOriginsForType(type,
+ callback_factory_.NewCallback(
+ &IndexedDBQuotaClientTest::OnGetOriginsComplete));
+ MessageLoop::current()->RunAllPending();
+ return origins_;
+ }
+
+ const std::set<GURL>& GetOriginsForHost(
+ quota::QuotaClient* client,
+ quota::StorageType type,
+ const std::string& host) {
+ origins_.clear();
+ type_ = quota::kStorageTypeTemporary;
+ client->GetOriginsForHost(type, host,
+ callback_factory_.NewCallback(
+ &IndexedDBQuotaClientTest::OnGetOriginsComplete));
+ MessageLoop::current()->RunAllPending();
+ return origins_;
+ }
+
+ quota::QuotaStatusCode DeleteOrigin(quota::QuotaClient* client,
+ const GURL& origin_url) {
+ delete_status_ = quota::kQuotaStatusUnknown;
+ client->DeleteOriginData(origin_url, kTemp, callback_factory_.NewCallback(
+ &IndexedDBQuotaClientTest::OnDeleteOriginComplete));
+ MessageLoop::current()->RunAllPending();
+ return delete_status_;
+ }
+
+ IndexedDBContext* idb_context() { return idb_context_.get(); }
+
+ void SetFileSizeTo(const FilePath& path, int size) {
+ std::string junk(size, 'a');
+ ASSERT_EQ(size, file_util::WriteFile(path, junk.c_str(), size));
+ }
+
+ void AddFakeIndexedDB(const GURL& origin, int size) {
+ FilePath file_path_origin = idb_context()->GetIndexedDBFilePath(
+ DatabaseUtil::GetOriginIdentifier(origin));
+ if (!file_util::CreateDirectory(file_path_origin)) {
+ LOG(ERROR) << "failed to file_util::CreateDirectory "
+ << file_path_origin.value();
+ }
+ file_path_origin = file_path_origin.Append(FILE_PATH_LITERAL("fake_file"));
+ SetFileSizeTo(file_path_origin, size);
+ idb_context()->ResetCaches();
+ }
+
+ private:
+ void OnGetOriginUsageComplete(int64 usage) {
+ usage_ = usage;
+ }
+
+ void OnGetOriginsComplete(const std::set<GURL>& origins,
+ quota::StorageType type) {
+ origins_ = origins;
+ type_ = type_;
+ }
+
+ void OnDeleteOriginComplete(quota::QuotaStatusCode code) {
+ delete_status_ = code;
+ }
+
+ ScopedTempDir temp_dir_;
+ int64 usage_;
+ std::set<GURL> origins_;
+ quota::StorageType type_;
+ scoped_refptr<IndexedDBContext> idb_context_;
+ base::ScopedCallbackFactory<IndexedDBQuotaClientTest> callback_factory_;
+ MessageLoop message_loop_;
+ BrowserThread webkit_thread_;
+ BrowserThread io_thread_;
+ quota::QuotaStatusCode delete_status_;
+};
+
+
+TEST_F(IndexedDBQuotaClientTest, GetOriginUsage) {
+ IndexedDBQuotaClient client(
+ base::MessageLoopProxy::current(),
+ idb_context());
+
+ AddFakeIndexedDB(kOriginA, 6);
+ AddFakeIndexedDB(kOriginB, 3);
+ EXPECT_EQ(6, GetOriginUsage(&client, kOriginA, kTemp));
+ EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm));
+ EXPECT_EQ(3, GetOriginUsage(&client, kOriginB, kTemp));
+ EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kPerm));
+
+ AddFakeIndexedDB(kOriginA, 1000);
+ EXPECT_EQ(1000, GetOriginUsage(&client, kOriginA, kTemp));
+ EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kPerm));
+ EXPECT_EQ(3, GetOriginUsage(&client, kOriginB, kTemp));
+ EXPECT_EQ(0, GetOriginUsage(&client, kOriginB, kPerm));
+}
+
+TEST_F(IndexedDBQuotaClientTest, GetOriginsForHost) {
+ IndexedDBQuotaClient client(
+ base::MessageLoopProxy::current(),
+ idb_context());
+
+ EXPECT_EQ(kOriginA.host(), kOriginB.host());
+ EXPECT_NE(kOriginA.host(), kOriginOther.host());
+
+ std::set<GURL> origins = GetOriginsForHost(&client, kTemp, kOriginA.host());
+ EXPECT_TRUE(origins.empty());
+
+ AddFakeIndexedDB(kOriginA, 1000);
+ origins = GetOriginsForHost(&client, kTemp, kOriginA.host());
+ EXPECT_EQ(origins.size(), 1ul);
+ EXPECT_TRUE(origins.find(kOriginA) != origins.end());
+
+ AddFakeIndexedDB(kOriginB, 1000);
+ origins = GetOriginsForHost(&client, kTemp, kOriginA.host());
+ EXPECT_EQ(origins.size(), 2ul);
+ EXPECT_TRUE(origins.find(kOriginA) != origins.end());
+ EXPECT_TRUE(origins.find(kOriginB) != origins.end());
+
+ EXPECT_TRUE(GetOriginsForHost(&client, kPerm, kOriginA.host()).empty());
+ EXPECT_TRUE(GetOriginsForHost(&client, kTemp, kOriginOther.host()).empty());
+}
+
+TEST_F(IndexedDBQuotaClientTest, GetOriginsForType) {
+ IndexedDBQuotaClient client(
+ base::MessageLoopProxy::current(),
+ idb_context());
+
+ EXPECT_TRUE(GetOriginsForType(&client, kTemp).empty());
+ EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty());
+
+ AddFakeIndexedDB(kOriginA, 1000);
+ std::set<GURL> origins = GetOriginsForType(&client, kTemp);
+ EXPECT_EQ(origins.size(), 1ul);
+ EXPECT_TRUE(origins.find(kOriginA) != origins.end());
+
+ EXPECT_TRUE(GetOriginsForType(&client, kPerm).empty());
+}
+
+TEST_F(IndexedDBQuotaClientTest, DeleteOrigin) {
+ IndexedDBQuotaClient client(
+ base::MessageLoopProxy::current(),
+ idb_context());
+
+ AddFakeIndexedDB(kOriginA, 1000);
+ AddFakeIndexedDB(kOriginB, 50);
+ EXPECT_EQ(1000, GetOriginUsage(&client, kOriginA, kTemp));
+ EXPECT_EQ(50, GetOriginUsage(&client, kOriginB, kTemp));
+
+ quota::QuotaStatusCode delete_status = DeleteOrigin(&client, kOriginA);
+ EXPECT_EQ(quota::kQuotaStatusOk, delete_status);
+ EXPECT_EQ(0, GetOriginUsage(&client, kOriginA, kTemp));
+ EXPECT_EQ(50, GetOriginUsage(&client, kOriginB, kTemp));
+}

Powered by Google App Engine
This is Rietveld 408576698