summaryrefslogtreecommitdiffstats
path: root/webkit/fileapi/local_file_system_operation_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/fileapi/local_file_system_operation_unittest.cc')
-rw-r--r--webkit/fileapi/local_file_system_operation_unittest.cc176
1 files changed, 36 insertions, 140 deletions
diff --git a/webkit/fileapi/local_file_system_operation_unittest.cc b/webkit/fileapi/local_file_system_operation_unittest.cc
index 44a1bf9..980e61b 100644
--- a/webkit/fileapi/local_file_system_operation_unittest.cc
+++ b/webkit/fileapi/local_file_system_operation_unittest.cc
@@ -23,11 +23,10 @@
#include "webkit/fileapi/local_file_system_test_helper.h"
#include "webkit/fileapi/mock_file_change_observer.h"
#include "webkit/quota/quota_manager.h"
+#include "webkit/quota/mock_quota_manager.h"
-using quota::QuotaClient;
using quota::QuotaManager;
using quota::QuotaManagerProxy;
-using quota::StorageType;
using webkit_blob::ShareableFileReference;
namespace fileapi {
@@ -41,120 +40,6 @@ void AssertFileErrorEq(base::PlatformFileError expected,
ASSERT_EQ(expected, actual);
}
-class MockQuotaManager : public QuotaManager {
- public:
- MockQuotaManager(const FilePath& base_dir,
- const GURL& origin,
- StorageType type)
- : QuotaManager(false /* is_incognito */, base_dir,
- base::MessageLoopProxy::current(),
- base::MessageLoopProxy::current(),
- NULL),
- origin_(origin),
- type_(type),
- usage_(0),
- quota_(kint64max),
- accessed_(0) {}
-
- virtual void GetUsageAndQuota(
- const GURL& origin, quota::StorageType type,
- const GetUsageAndQuotaCallback& callback) OVERRIDE {
- EXPECT_EQ(origin_, origin);
- EXPECT_EQ(type_, type);
- callback.Run(quota::kQuotaStatusOk, usage_, quota_);
- }
-
- protected:
- virtual ~MockQuotaManager() {}
-
- private:
- friend class MockQuotaManagerProxy;
-
- void SetQuota(const GURL& origin, StorageType type, int64 quota) {
- EXPECT_EQ(origin_, origin);
- EXPECT_EQ(type_, type);
- quota_ = quota;
- }
-
- void RecordStorageAccessed(const GURL& origin, StorageType type) {
- EXPECT_EQ(origin_, origin);
- EXPECT_EQ(type_, type);
- ++accessed_;
- }
-
- void UpdateUsage(const GURL& origin, StorageType type, int64 delta) {
- EXPECT_EQ(origin_, origin);
- EXPECT_EQ(type_, type);
- usage_ += delta;
- }
-
- const GURL& origin_;
- const StorageType type_;
- int64 usage_;
- int64 quota_;
- int accessed_;
-};
-
-class MockQuotaManagerProxy : public QuotaManagerProxy {
- public:
- explicit MockQuotaManagerProxy(QuotaManager* quota_manager)
- : QuotaManagerProxy(quota_manager,
- base::MessageLoopProxy::current()),
- registered_client_(NULL) {
- }
-
- virtual void RegisterClient(QuotaClient* client) OVERRIDE {
- EXPECT_FALSE(registered_client_);
- registered_client_ = client;
- }
-
- void SimulateQuotaManagerDestroyed() {
- if (registered_client_) {
- // We cannot call this in the destructor as the client (indirectly)
- // holds a refptr of the proxy.
- registered_client_->OnQuotaManagerDestroyed();
- registered_client_ = NULL;
- }
- }
-
- // We don't mock them.
- virtual void NotifyOriginInUse(const GURL& origin) OVERRIDE {}
- virtual void NotifyOriginNoLongerInUse(const GURL& origin) OVERRIDE {}
-
- virtual void NotifyStorageAccessed(QuotaClient::ID client_id,
- const GURL& origin,
- StorageType type) OVERRIDE {
- mock_manager()->RecordStorageAccessed(origin, type);
- }
-
- virtual void NotifyStorageModified(QuotaClient::ID client_id,
- const GURL& origin,
- StorageType type,
- int64 delta) OVERRIDE {
- mock_manager()->UpdateUsage(origin, type, delta);
- }
-
- int storage_accessed_count() const {
- return mock_manager()->accessed_;
- }
-
- void SetQuota(const GURL& origin, StorageType type, int64 quota) {
- mock_manager()->SetQuota(origin, type, quota);
- }
-
- protected:
- virtual ~MockQuotaManagerProxy() {
- EXPECT_FALSE(registered_client_);
- }
-
- private:
- MockQuotaManager* mock_manager() const {
- return static_cast<MockQuotaManager*>(quota_manager());
- }
-
- QuotaClient* registered_client_;
-};
-
FilePath ASCIIToFilePath(const std::string& str) {
return FilePath().AppendASCII(str);
}
@@ -192,8 +77,13 @@ class LocalFileSystemOperationTest
// Common temp base for nondestructive uses.
ScopedTempDir base_;
- MockQuotaManagerProxy* quota_manager_proxy() {
- return static_cast<MockQuotaManagerProxy*>(quota_manager_proxy_.get());
+ quota::MockQuotaManager* quota_manager() {
+ return static_cast<quota::MockQuotaManager*>(quota_manager_.get());
+ }
+
+ quota::MockQuotaManagerProxy* quota_manager_proxy() {
+ return static_cast<quota::MockQuotaManagerProxy*>(
+ quota_manager_proxy_.get());
}
FileSystemFileUtil* file_util() {
@@ -370,17 +260,17 @@ class LocalFileSystemOperationTest
void GrantQuotaForCurrentUsage() {
int64 usage;
GetUsageAndQuota(&usage, NULL);
- quota_manager_proxy()->SetQuota(test_helper_.origin(),
- test_helper_.storage_type(),
- usage);
+ quota_manager()->SetQuota(test_helper_.origin(),
+ test_helper_.storage_type(),
+ usage);
}
void AddQuota(int64 quota_delta) {
int64 quota;
GetUsageAndQuota(NULL, &quota);
- quota_manager_proxy()->SetQuota(test_helper_.origin(),
- test_helper_.storage_type(),
- quota + quota_delta);
+ quota_manager()->SetQuota(test_helper_.origin(),
+ test_helper_.storage_type(),
+ quota + quota_delta);
}
// For post-operation status.
@@ -405,9 +295,14 @@ class LocalFileSystemOperationTest
void LocalFileSystemOperationTest::SetUp() {
FilePath base_dir = base_.path().AppendASCII("filesystem");
- quota_manager_ = new MockQuotaManager(
- base_dir, test_helper_.origin(), test_helper_.storage_type());
- quota_manager_proxy_ = new MockQuotaManagerProxy(quota_manager_.get());
+ quota_manager_ = new quota::MockQuotaManager(
+ false /* is_incognito */, base_dir,
+ base::MessageLoopProxy::current(),
+ base::MessageLoopProxy::current(),
+ NULL /* special storage policy */);
+ quota_manager_proxy_ = new quota::MockQuotaManagerProxy(
+ quota_manager(),
+ base::MessageLoopProxy::current());
test_helper_.SetUp(base_dir,
false /* unlimited quota */,
quota_manager_proxy_.get(),
@@ -519,7 +414,7 @@ TEST_F(LocalFileSystemOperationTest, TestMoveSuccessSrcFileAndOverwrite) {
// Move is considered 'write' access (for both side), and won't be counted
// as read access.
- EXPECT_EQ(0, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(0, quota_manager_proxy()->notify_storage_accessed_count());
}
TEST_F(LocalFileSystemOperationTest, TestMoveSuccessSrcFileAndNew) {
@@ -719,7 +614,7 @@ TEST_F(LocalFileSystemOperationTest, TestCopySuccessSrcFileAndOverwrite) {
MessageLoop::current()->RunAllPending();
EXPECT_EQ(base::PLATFORM_FILE_OK, status());
EXPECT_TRUE(FileExists(dest_file_path));
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_EQ(1, change_observer()->get_and_reset_modify_file_count());
EXPECT_TRUE(change_observer()->HasNoChange());
@@ -736,7 +631,7 @@ TEST_F(LocalFileSystemOperationTest, TestCopySuccessSrcFileAndNew) {
MessageLoop::current()->RunAllPending();
EXPECT_EQ(base::PLATFORM_FILE_OK, status());
EXPECT_TRUE(FileExists(dest_file_path));
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_EQ(1, change_observer()->get_and_reset_create_file_from_count());
EXPECT_TRUE(change_observer()->HasNoChange());
@@ -755,7 +650,7 @@ TEST_F(LocalFileSystemOperationTest, TestCopySuccessSrcDirAndOverwrite) {
EXPECT_TRUE(DirectoryExists(dest_dir_path));
EXPECT_FALSE(DirectoryExists(
dest_dir_path.Append(VirtualPath::BaseName(src_dir_path))));
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_EQ(1, change_observer()->get_and_reset_remove_directory_count());
EXPECT_EQ(1, change_observer()->get_and_reset_create_directory_count());
@@ -773,7 +668,7 @@ TEST_F(LocalFileSystemOperationTest, TestCopySuccessSrcDirAndNew) {
MessageLoop::current()->RunAllPending();
EXPECT_EQ(base::PLATFORM_FILE_OK, status());
EXPECT_TRUE(DirectoryExists(dest_child_dir_path));
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_EQ(1, change_observer()->get_and_reset_create_directory_count());
EXPECT_TRUE(change_observer()->HasNoChange());
@@ -795,7 +690,7 @@ TEST_F(LocalFileSystemOperationTest, TestCopySuccessSrcDirRecursive) {
EXPECT_TRUE(FileExists(dest_dir_path.Append(
VirtualPath::BaseName(child_dir_path)).Append(
VirtualPath::BaseName(grandchild_file_path))));
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_EQ(2, change_observer()->get_and_reset_create_directory_count());
EXPECT_EQ(1, change_observer()->get_and_reset_remove_directory_count());
@@ -849,9 +744,9 @@ TEST_F(LocalFileSystemOperationTest, TestCopyInForeignFileFailureByQuota) {
FileSystemURL dest_file_url = URLForPath(dest_file_path);
// Set quota of 0 which should force copy to fail by quota.
- quota_manager_proxy()->SetQuota(dest_file_url.origin(),
- test_helper_.storage_type(),
- static_cast<int64>(0));
+ quota_manager()->SetQuota(dest_file_url.origin(),
+ test_helper_.storage_type(),
+ static_cast<int64>(0));
operation()->CopyInForeignFile(src_local_disk_file_path,
dest_file_url,
RecordStatusCallback());
@@ -1030,7 +925,8 @@ TEST_F(LocalFileSystemOperationTest, TestExistsAndMetadataSuccess) {
EXPECT_EQ(PlatformPath(file_path), path());
++read_access;
- EXPECT_EQ(read_access, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(read_access,
+ quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_TRUE(change_observer()->HasNoChange());
}
@@ -1093,7 +989,7 @@ TEST_F(LocalFileSystemOperationTest, TestReadDirSuccess) {
entries()[i].name);
}
}
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_TRUE(change_observer()->HasNoChange());
}
@@ -1157,7 +1053,7 @@ TEST_F(LocalFileSystemOperationTest, TestRemoveSuccess) {
EXPECT_FALSE(DirectoryExists(parent_dir_path));
// Remove is not a 'read' access.
- EXPECT_EQ(0, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(0, quota_manager_proxy()->notify_storage_accessed_count());
EXPECT_EQ(2, change_observer()->get_and_reset_remove_directory_count());
EXPECT_EQ(1, change_observer()->get_and_reset_remove_file_count());
@@ -1223,7 +1119,7 @@ TEST_F(LocalFileSystemOperationTest, TestTruncate) {
// Truncate is not a 'read' access. (Here expected access count is 1
// since we made 1 read access for GetMetadata.)
- EXPECT_EQ(1, quota_manager_proxy()->storage_accessed_count());
+ EXPECT_EQ(1, quota_manager_proxy()->notify_storage_accessed_count());
}
TEST_F(LocalFileSystemOperationTest, TestTruncateFailureByQuota) {