diff options
author | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-25 15:03:15 +0000 |
---|---|---|
committer | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-25 15:03:15 +0000 |
commit | ffac1ac44fd244d857620c9ca04e3a119af20084 (patch) | |
tree | 46fab447e7eb9ba76f67b2f42e93af860b7505c0 /webkit/fileapi/file_system_quota_client_unittest.cc | |
parent | 9a9359592a0895932fa423160283e91d34028a3d (diff) | |
download | chromium_src-ffac1ac44fd244d857620c9ca04e3a119af20084.zip chromium_src-ffac1ac44fd244d857620c9ca04e3a119af20084.tar.gz chromium_src-ffac1ac44fd244d857620c9ca04e3a119af20084.tar.bz2 |
Change quota to account directories and path names in the filesystem.
BUG=89841
TEST=FileSystemQuotaClientTest.*,FileSystemQuotaTest.*,FileSystemObfuscatedQuotaTest.*,QuotaFileUtilTest.*
Review URL: http://codereview.chromium.org/7347003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93881 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/file_system_quota_client_unittest.cc')
-rw-r--r-- | webkit/fileapi/file_system_quota_client_unittest.cc | 111 |
1 files changed, 85 insertions, 26 deletions
diff --git a/webkit/fileapi/file_system_quota_client_unittest.cc b/webkit/fileapi/file_system_quota_client_unittest.cc index 8b14b6c..d54978a 100644 --- a/webkit/fileapi/file_system_quota_client_unittest.cc +++ b/webkit/fileapi/file_system_quota_client_unittest.cc @@ -18,6 +18,7 @@ #include "webkit/fileapi/file_system_usage_cache.h" #include "webkit/fileapi/file_system_util.h" #include "webkit/fileapi/sandbox_mount_point_provider.h" +#include "webkit/fileapi/quota_file_util.h" #include "webkit/quota/quota_types.h" namespace fileapi { @@ -76,7 +77,7 @@ class FileSystemQuotaClientTest : public testing::Test { } void GetOriginUsageAsync(FileSystemQuotaClient* quota_client, - const char* origin_url, + const std::string& origin_url, quota::StorageType type) { quota_client->GetOriginUsage(GURL(origin_url), type, callback_factory_.NewCallback( @@ -84,7 +85,7 @@ class FileSystemQuotaClientTest : public testing::Test { } int64 GetOriginUsage(FileSystemQuotaClient* quota_client, - const char* origin_url, + const std::string& origin_url, quota::StorageType type) { GetOriginUsageAsync(quota_client, origin_url, type); MessageLoop::current()->RunAllPending(); @@ -103,7 +104,7 @@ class FileSystemQuotaClientTest : public testing::Test { const std::set<GURL>& GetOriginsForHost(FileSystemQuotaClient* quota_client, quota::StorageType type, - const char* host) { + const std::string& host) { origins_.clear(); quota_client->GetOriginsForHost(type, host, callback_factory_.NewCallback( @@ -113,14 +114,14 @@ class FileSystemQuotaClientTest : public testing::Test { } void RunAdditionalOriginUsageTask(FileSystemQuotaClient* quota_client, - const char* origin_url, + const std::string& origin_url, quota::StorageType type) { quota_client->GetOriginUsage(GURL(origin_url), type, callback_factory_.NewCallback( &FileSystemQuotaClientTest::OnGetAdditionalUsage)); } - FilePath GetOriginBasePath(const char* origin_url, + FilePath GetOriginBasePath(const std::string& origin_url, quota::StorageType type) { // Note: this test assumes sandbox_provider impl is used for // temporary and persistent filesystem. @@ -132,7 +133,7 @@ class FileSystemQuotaClientTest : public testing::Test { FileSystemOperationContext* CreateFileSystemOperationContext( FileSystemFileUtil* file_util, const FilePath& virtual_path, - const char* origin_url, + const std::string& origin_url, quota::StorageType type) { FileSystemOperationContext* context = new FileSystemOperationContext(file_system_context_, file_util); @@ -144,7 +145,7 @@ class FileSystemQuotaClientTest : public testing::Test { } bool CreateFileSystemDirectory(const FilePath& path, - const char* origin_url, + const std::string& origin_url, quota::StorageType type) { FileSystemFileUtil* file_util = file_system_context_->path_manager()->GetFileSystemFileUtil( @@ -162,7 +163,7 @@ class FileSystemQuotaClientTest : public testing::Test { bool CreateFileSystemFile(const FilePath& path, int64 file_size, - const char* origin_url, + const std::string& origin_url, quota::StorageType type) { if (path.empty()) return false; @@ -204,8 +205,27 @@ class FileSystemQuotaClientTest : public testing::Test { } } + int64 ComputeFilePathsCostForOriginAndType(const TestFile* files, + int num_files, + const std::string& origin_url, + quota::StorageType type) { + int64 file_paths_cost = 0; + for (int i = 0; i < num_files; i++) { + if (files[i].type == type && + GURL(files[i].origin_url) == GURL(origin_url)) { + FilePath path = FilePath().AppendASCII(files[i].name); + if (!path.empty()) { + // TODO(dmikurube): Use QuotaFileUtil in the actual -FileUtil stack. + file_paths_cost += + QuotaFileUtil::GetInstance()->ComputeFilePathCost(path); + } + } + } + return file_paths_cost; + } + void DeleteOriginData(FileSystemQuotaClient* quota_client, - const char* origin, + const std::string& origin, quota::StorageType type) { deletion_status_ = quota::kQuotaStatusUnknown; quota_client->DeleteOriginData( @@ -275,9 +295,11 @@ TEST_F(FileSystemQuotaClientTest, OneFileTest) { {false, "foo", 4921, kDummyURL1, kTemporary}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); for (int i = 0; i < 2; i++) { - EXPECT_EQ(4921, + EXPECT_EQ(4921 + file_paths_cost, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); } } @@ -290,9 +312,11 @@ TEST_F(FileSystemQuotaClientTest, TwoFilesTest) { {false, "bar", 41, kDummyURL1, kTemporary}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); for (int i = 0; i < 2; i++) { - EXPECT_EQ(10310 + 41, + EXPECT_EQ(10310 + 41 + file_paths_cost, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); } } @@ -306,9 +330,11 @@ TEST_F(FileSystemQuotaClientTest, EmptyFilesTest) { {false, "baz", 0, kDummyURL1, kTemporary}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); for (int i = 0; i < 2; i++) { - EXPECT_EQ(0, + EXPECT_EQ(file_paths_cost, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); } } @@ -322,9 +348,11 @@ TEST_F(FileSystemQuotaClientTest, SubDirectoryTest) { {false, "bar", 4814, kDummyURL1, kTemporary}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); for (int i = 0; i < 2; i++) { - EXPECT_EQ(11921 + 4814, + EXPECT_EQ(11921 + 4814 + file_paths_cost, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); } } @@ -342,11 +370,15 @@ TEST_F(FileSystemQuotaClientTest, MultiTypeTest) { {false, "bar", 9, kDummyURL1, kPersistent}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost_temporary = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); + const int64 file_paths_cost_persistent = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); for (int i = 0; i < 2; i++) { - EXPECT_EQ(133 + 14, + EXPECT_EQ(133 + 14 + file_paths_cost_temporary, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); - EXPECT_EQ(193 + 9, + EXPECT_EQ(193 + 9 + file_paths_cost_persistent, GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); } } @@ -372,15 +404,25 @@ TEST_F(FileSystemQuotaClientTest, MultiDomainTest) { {false, "baz", 18, kDummyURL2, kPersistent}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost_temporary1 = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); + const int64 file_paths_cost_persistent1 = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + kDummyURL1, kPersistent); + const int64 file_paths_cost_temporary2 = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL2, kTemporary); + const int64 file_paths_cost_persistent2 = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + kDummyURL2, kPersistent); for (int i = 0; i < 2; i++) { - EXPECT_EQ(1331 + 134, + EXPECT_EQ(1331 + 134 + file_paths_cost_temporary1, GetOriginUsage(quota_client.get(), kDummyURL1, kTemporary)); - EXPECT_EQ(1903 + 19, + EXPECT_EQ(1903 + 19 + file_paths_cost_persistent1, GetOriginUsage(quota_client.get(), kDummyURL1, kPersistent)); - EXPECT_EQ(1319 + 113, + EXPECT_EQ(1319 + 113 + file_paths_cost_temporary2, GetOriginUsage(quota_client.get(), kDummyURL2, kTemporary)); - EXPECT_EQ(2013 + 18, + EXPECT_EQ(2013 + 18 + file_paths_cost_persistent2, GetOriginUsage(quota_client.get(), kDummyURL2, kPersistent)); } } @@ -393,6 +435,8 @@ TEST_F(FileSystemQuotaClientTest, GetUsage_MultipleTasks) { {false, "bar", 22, kDummyURL1, kTemporary}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost = ComputeFilePathsCostForOriginAndType( + kFiles, ARRAYSIZE_UNSAFE(kFiles), kDummyURL1, kTemporary); // Dispatching three GetUsage tasks. set_additional_callback_count(0); @@ -400,7 +444,7 @@ TEST_F(FileSystemQuotaClientTest, GetUsage_MultipleTasks) { RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); MessageLoop::current()->RunAllPending(); - EXPECT_EQ(11 + 22, usage()); + EXPECT_EQ(11 + 22 + file_paths_cost, usage()); EXPECT_EQ(2, additional_callback_count()); // Once more, in a different order. @@ -409,7 +453,7 @@ TEST_F(FileSystemQuotaClientTest, GetUsage_MultipleTasks) { GetOriginUsageAsync(quota_client.get(), kDummyURL1, kTemporary); RunAdditionalOriginUsageTask(quota_client.get(), kDummyURL1, kTemporary); MessageLoop::current()->RunAllPending(); - EXPECT_EQ(11 + 22, usage()); + EXPECT_EQ(11 + 22 + file_paths_cost, usage()); EXPECT_EQ(2, additional_callback_count()); } @@ -493,6 +537,21 @@ TEST_F(FileSystemQuotaClientTest, DeleteOriginTest) { {false, "g", 64, "https://bar.com/", kTemporary}, }; InitializeOriginFiles(quota_client.get(), kFiles, ARRAYSIZE_UNSAFE(kFiles)); + const int64 file_paths_cost_temporary_foo_https = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + "https://foo.com/", kTemporary); + const int64 file_paths_cost_persistent_foo = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + "http://foo.com/", kPersistent); + const int64 file_paths_cost_temporary_bar = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + "http://bar.com/", kTemporary); + const int64 file_paths_cost_temporary_bar_https = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + "https://bar.com/", kTemporary); + const int64 file_paths_cost_persistent_bar_https = + ComputeFilePathsCostForOriginAndType(kFiles, ARRAYSIZE_UNSAFE(kFiles), + "https://bar.com/", kPersistent); DeleteOriginData(quota_client.get(), "http://foo.com/", kTemporary); MessageLoop::current()->RunAllPending(); @@ -513,23 +572,23 @@ TEST_F(FileSystemQuotaClientTest, DeleteOriginTest) { EXPECT_EQ(0, GetOriginUsage( quota_client.get(), "http://buz.com/", kTemporary)); - EXPECT_EQ(2, + EXPECT_EQ(2 + file_paths_cost_temporary_foo_https, GetOriginUsage(quota_client.get(), "https://foo.com/", kTemporary)); - EXPECT_EQ(4, + EXPECT_EQ(4 + file_paths_cost_persistent_foo, GetOriginUsage(quota_client.get(), "http://foo.com/", kPersistent)); - EXPECT_EQ(8, + EXPECT_EQ(8 + file_paths_cost_temporary_bar, GetOriginUsage(quota_client.get(), "http://bar.com/", kTemporary)); - EXPECT_EQ(32, + EXPECT_EQ(32 + file_paths_cost_persistent_bar_https, GetOriginUsage(quota_client.get(), "https://bar.com/", kPersistent)); - EXPECT_EQ(64, + EXPECT_EQ(64 + file_paths_cost_temporary_bar_https, GetOriginUsage(quota_client.get(), "https://bar.com/", kTemporary)); |