| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <set> | 5 #include <set> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| 11 #include "base/files/file_path.h" | 11 #include "base/files/file_path.h" |
| 12 #include "base/files/scoped_temp_dir.h" | 12 #include "base/files/scoped_temp_dir.h" |
| 13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
| 14 #include "base/message_loop.h" | 14 #include "base/message_loop.h" |
| 15 #include "base/platform_file.h" | 15 #include "base/platform_file.h" |
| 16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 17 #include "webkit/browser/fileapi/file_system_mount_point_provider.h" | 17 #include "webkit/browser/fileapi/file_system_mount_point_provider.h" |
| 18 #include "webkit/browser/fileapi/file_system_usage_cache.h" | 18 #include "webkit/browser/fileapi/file_system_usage_cache.h" |
| 19 #include "webkit/browser/fileapi/obfuscated_file_util.h" | 19 #include "webkit/browser/fileapi/obfuscated_file_util.h" |
| 20 #include "webkit/fileapi/async_file_test_helper.h" | 20 #include "webkit/fileapi/async_file_test_helper.h" |
| 21 #include "webkit/fileapi/external_mount_points.h" | 21 #include "webkit/fileapi/external_mount_points.h" |
| 22 #include "webkit/fileapi/file_system_context.h" | 22 #include "webkit/fileapi/file_system_context.h" |
| 23 #include "webkit/fileapi/file_system_operation_context.h" | 23 #include "webkit/fileapi/file_system_operation_context.h" |
| 24 #include "webkit/fileapi/file_system_task_runners.h" | 24 #include "webkit/fileapi/file_system_task_runners.h" |
| 25 #include "webkit/fileapi/local_file_system_test_helper.h" | |
| 26 #include "webkit/fileapi/mock_file_change_observer.h" | 25 #include "webkit/fileapi/mock_file_change_observer.h" |
| 27 #include "webkit/fileapi/mock_file_system_context.h" | 26 #include "webkit/fileapi/mock_file_system_context.h" |
| 27 #include "webkit/fileapi/sandbox_file_system_test_helper.h" |
| 28 #include "webkit/fileapi/test_file_set.h" | 28 #include "webkit/fileapi/test_file_set.h" |
| 29 #include "webkit/quota/mock_special_storage_policy.h" | 29 #include "webkit/quota/mock_special_storage_policy.h" |
| 30 #include "webkit/quota/quota_manager.h" | 30 #include "webkit/quota/quota_manager.h" |
| 31 #include "webkit/quota/quota_types.h" | 31 #include "webkit/quota/quota_types.h" |
| 32 | 32 |
| 33 namespace fileapi { | 33 namespace fileapi { |
| 34 | 34 |
| 35 namespace { | 35 namespace { |
| 36 | 36 |
| 37 bool FileExists(const base::FilePath& path) { | 37 bool FileExists(const base::FilePath& path) { |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 // TODO(ericu): The vast majority of this and the other FSFU subclass tests | 114 // TODO(ericu): The vast majority of this and the other FSFU subclass tests |
| 115 // could theoretically be shared. It would basically be a FSFU interface | 115 // could theoretically be shared. It would basically be a FSFU interface |
| 116 // compliance test, and only the subclass-specific bits that look into the | 116 // compliance test, and only the subclass-specific bits that look into the |
| 117 // implementation would need to be written per-subclass. | 117 // implementation would need to be written per-subclass. |
| 118 class ObfuscatedFileUtilTest : public testing::Test { | 118 class ObfuscatedFileUtilTest : public testing::Test { |
| 119 public: | 119 public: |
| 120 ObfuscatedFileUtilTest() | 120 ObfuscatedFileUtilTest() |
| 121 : origin_(GURL("http://www.example.com")), | 121 : origin_(GURL("http://www.example.com")), |
| 122 type_(kFileSystemTypeTemporary), | 122 type_(kFileSystemTypeTemporary), |
| 123 weak_factory_(this), | 123 weak_factory_(this), |
| 124 test_helper_(origin_, type_), | 124 sandbox_file_system_(origin_, type_), |
| 125 quota_status_(quota::kQuotaStatusUnknown), | 125 quota_status_(quota::kQuotaStatusUnknown), |
| 126 usage_(-1) { | 126 usage_(-1) { |
| 127 } | 127 } |
| 128 | 128 |
| 129 virtual void SetUp() { | 129 virtual void SetUp() { |
| 130 ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); | 130 ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); |
| 131 | 131 |
| 132 scoped_refptr<quota::SpecialStoragePolicy> storage_policy = | 132 scoped_refptr<quota::SpecialStoragePolicy> storage_policy = |
| 133 new quota::MockSpecialStoragePolicy(); | 133 new quota::MockSpecialStoragePolicy(); |
| 134 | 134 |
| 135 quota_manager_ = new quota::QuotaManager( | 135 quota_manager_ = new quota::QuotaManager( |
| 136 false /* is_incognito */, | 136 false /* is_incognito */, |
| 137 data_dir_.path(), | 137 data_dir_.path(), |
| 138 base::MessageLoopProxy::current(), | 138 base::MessageLoopProxy::current(), |
| 139 base::MessageLoopProxy::current(), | 139 base::MessageLoopProxy::current(), |
| 140 storage_policy); | 140 storage_policy); |
| 141 | 141 |
| 142 // Every time we create a new helper, it creates another context, which | 142 // Every time we create a new sandbox_file_system helper, |
| 143 // creates another path manager, another sandbox_mount_point_provider, and | 143 // it creates another context, which creates another path manager, |
| 144 // another sandbox_mount_point_provider, and |
| 144 // another OFU. We need to pass in the context to skip all that. | 145 // another OFU. We need to pass in the context to skip all that. |
| 145 file_system_context_ = CreateFileSystemContextForTesting( | 146 file_system_context_ = CreateFileSystemContextForTesting( |
| 146 quota_manager_->proxy(), | 147 quota_manager_->proxy(), |
| 147 data_dir_.path()); | 148 data_dir_.path()); |
| 148 | 149 |
| 149 test_helper_.SetUp(file_system_context_.get()); | 150 sandbox_file_system_.SetUp(file_system_context_.get()); |
| 150 | 151 |
| 151 change_observers_ = MockFileChangeObserver::CreateList(&change_observer_); | 152 change_observers_ = MockFileChangeObserver::CreateList(&change_observer_); |
| 152 } | 153 } |
| 153 | 154 |
| 154 virtual void TearDown() { | 155 virtual void TearDown() { |
| 155 quota_manager_ = NULL; | 156 quota_manager_ = NULL; |
| 156 test_helper_.TearDown(); | 157 sandbox_file_system_.TearDown(); |
| 157 } | 158 } |
| 158 | 159 |
| 159 scoped_ptr<FileSystemOperationContext> LimitedContext( | 160 scoped_ptr<FileSystemOperationContext> LimitedContext( |
| 160 int64 allowed_bytes_growth) { | 161 int64 allowed_bytes_growth) { |
| 161 scoped_ptr<FileSystemOperationContext> context( | 162 scoped_ptr<FileSystemOperationContext> context( |
| 162 test_helper_.NewOperationContext()); | 163 sandbox_file_system_.NewOperationContext()); |
| 163 context->set_allowed_bytes_growth(allowed_bytes_growth); | 164 context->set_allowed_bytes_growth(allowed_bytes_growth); |
| 164 return context.Pass(); | 165 return context.Pass(); |
| 165 } | 166 } |
| 166 | 167 |
| 167 scoped_ptr<FileSystemOperationContext> UnlimitedContext() { | 168 scoped_ptr<FileSystemOperationContext> UnlimitedContext() { |
| 168 return LimitedContext(kint64max); | 169 return LimitedContext(kint64max); |
| 169 } | 170 } |
| 170 | 171 |
| 171 FileSystemOperationContext* NewContext( | 172 FileSystemOperationContext* NewContext( |
| 172 LocalFileSystemTestOriginHelper* helper) { | 173 SandboxFileSystemTestHelper* file_system) { |
| 173 change_observer()->ResetCount(); | 174 change_observer()->ResetCount(); |
| 174 FileSystemOperationContext* context; | 175 FileSystemOperationContext* context; |
| 175 if (helper) | 176 if (file_system) |
| 176 context = helper->NewOperationContext(); | 177 context = file_system->NewOperationContext(); |
| 177 else | 178 else |
| 178 context = test_helper_.NewOperationContext(); | 179 context = sandbox_file_system_.NewOperationContext(); |
| 179 // Setting allowed_bytes_growth big enough for all tests. | 180 // Setting allowed_bytes_growth big enough for all tests. |
| 180 context->set_allowed_bytes_growth(1024 * 1024); | 181 context->set_allowed_bytes_growth(1024 * 1024); |
| 181 context->set_change_observers(change_observers()); | 182 context->set_change_observers(change_observers()); |
| 182 return context; | 183 return context; |
| 183 } | 184 } |
| 184 | 185 |
| 185 const ChangeObserverList& change_observers() const { | 186 const ChangeObserverList& change_observers() const { |
| 186 return change_observers_; | 187 return change_observers_; |
| 187 } | 188 } |
| 188 | 189 |
| 189 MockFileChangeObserver* change_observer() { | 190 MockFileChangeObserver* change_observer() { |
| 190 return &change_observer_; | 191 return &change_observer_; |
| 191 } | 192 } |
| 192 | 193 |
| 193 // This can only be used after SetUp has run and created file_system_context_ | 194 // This can only be used after SetUp has run and created file_system_context_ |
| 194 // and obfuscated_file_util_. | 195 // and obfuscated_file_util_. |
| 195 // Use this for tests which need to run in multiple origins; we need a test | 196 // Use this for tests which need to run in multiple origins; we need a test |
| 196 // helper per origin. | 197 // helper per origin. |
| 197 LocalFileSystemTestOriginHelper* NewHelper( | 198 SandboxFileSystemTestHelper* NewFileSystem( |
| 198 const GURL& origin, fileapi::FileSystemType type) { | 199 const GURL& origin, fileapi::FileSystemType type) { |
| 199 LocalFileSystemTestOriginHelper* helper = | 200 SandboxFileSystemTestHelper* file_system = |
| 200 new LocalFileSystemTestOriginHelper(origin, type); | 201 new SandboxFileSystemTestHelper(origin, type); |
| 201 | 202 |
| 202 helper->SetUp(file_system_context_.get()); | 203 file_system->SetUp(file_system_context_.get()); |
| 203 return helper; | 204 return file_system; |
| 204 } | 205 } |
| 205 | 206 |
| 206 ObfuscatedFileUtil* ofu() { | 207 ObfuscatedFileUtil* ofu() { |
| 207 return static_cast<ObfuscatedFileUtil*>(test_helper_.file_util()); | 208 return static_cast<ObfuscatedFileUtil*>(sandbox_file_system_.file_util()); |
| 208 } | 209 } |
| 209 | 210 |
| 210 const base::FilePath& test_directory() const { | 211 const base::FilePath& test_directory() const { |
| 211 return data_dir_.path(); | 212 return data_dir_.path(); |
| 212 } | 213 } |
| 213 | 214 |
| 214 const GURL& origin() const { | 215 const GURL& origin() const { |
| 215 return origin_; | 216 return origin_; |
| 216 } | 217 } |
| 217 | 218 |
| 218 fileapi::FileSystemType type() const { | 219 fileapi::FileSystemType type() const { |
| 219 return type_; | 220 return type_; |
| 220 } | 221 } |
| 221 | 222 |
| 222 int64 ComputeTotalFileSize() { | 223 int64 ComputeTotalFileSize() { |
| 223 return test_helper_.ComputeCurrentOriginUsage() - | 224 return sandbox_file_system_.ComputeCurrentOriginUsage() - |
| 224 test_helper_.ComputeCurrentDirectoryDatabaseUsage(); | 225 sandbox_file_system_.ComputeCurrentDirectoryDatabaseUsage(); |
| 225 } | 226 } |
| 226 | 227 |
| 227 void GetUsageFromQuotaManager() { | 228 void GetUsageFromQuotaManager() { |
| 228 int64 quota = -1; | 229 int64 quota = -1; |
| 229 quota_status_ = AsyncFileTestHelper::GetUsageAndQuota( | 230 quota_status_ = AsyncFileTestHelper::GetUsageAndQuota( |
| 230 quota_manager_, origin(), test_helper_.type(), | 231 quota_manager_, origin(), sandbox_file_system_.type(), |
| 231 &usage_, "a); | 232 &usage_, "a); |
| 232 EXPECT_EQ(quota::kQuotaStatusOk, quota_status_); | 233 EXPECT_EQ(quota::kQuotaStatusOk, quota_status_); |
| 233 } | 234 } |
| 234 | 235 |
| 235 void RevokeUsageCache() { | 236 void RevokeUsageCache() { |
| 236 quota_manager_->ResetUsageTracker(test_helper_.storage_type()); | 237 quota_manager_->ResetUsageTracker(sandbox_file_system_.storage_type()); |
| 237 usage_cache()->Delete(test_helper_.GetUsageCachePath()); | 238 usage_cache()->Delete(sandbox_file_system_.GetUsageCachePath()); |
| 238 } | 239 } |
| 239 | 240 |
| 240 int64 SizeByQuotaUtil() { | 241 int64 SizeByQuotaUtil() { |
| 241 return test_helper_.GetCachedOriginUsage(); | 242 return sandbox_file_system_.GetCachedOriginUsage(); |
| 242 } | 243 } |
| 243 | 244 |
| 244 int64 SizeInUsageFile() { | 245 int64 SizeInUsageFile() { |
| 245 base::MessageLoop::current()->RunUntilIdle(); | 246 base::MessageLoop::current()->RunUntilIdle(); |
| 246 int64 usage = 0; | 247 int64 usage = 0; |
| 247 return usage_cache()->GetUsage(test_helper_.GetUsageCachePath(), &usage) ? | 248 return usage_cache()->GetUsage( |
| 248 usage : -1; | 249 sandbox_file_system_.GetUsageCachePath(), &usage) ? usage : -1; |
| 249 } | 250 } |
| 250 | 251 |
| 251 bool PathExists(const FileSystemURL& url) { | 252 bool PathExists(const FileSystemURL& url) { |
| 252 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL)); | 253 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL)); |
| 253 base::PlatformFileInfo file_info; | 254 base::PlatformFileInfo file_info; |
| 254 base::FilePath platform_path; | 255 base::FilePath platform_path; |
| 255 base::PlatformFileError error = ofu()->GetFileInfo( | 256 base::PlatformFileError error = ofu()->GetFileInfo( |
| 256 context.get(), url, &file_info, &platform_path); | 257 context.get(), url, &file_info, &platform_path); |
| 257 return error == base::PLATFORM_FILE_OK; | 258 return error == base::PLATFORM_FILE_OK; |
| 258 } | 259 } |
| 259 | 260 |
| 260 bool DirectoryExists(const FileSystemURL& url) { | 261 bool DirectoryExists(const FileSystemURL& url) { |
| 261 return AsyncFileTestHelper::DirectoryExists(file_system_context(), url); | 262 return AsyncFileTestHelper::DirectoryExists(file_system_context(), url); |
| 262 } | 263 } |
| 263 | 264 |
| 264 int64 usage() const { return usage_; } | 265 int64 usage() const { return usage_; } |
| 265 FileSystemUsageCache* usage_cache() { | 266 FileSystemUsageCache* usage_cache() { |
| 266 return test_helper_.usage_cache(); | 267 return sandbox_file_system_.usage_cache(); |
| 267 } | 268 } |
| 268 | 269 |
| 269 FileSystemURL CreateURLFromUTF8(const std::string& path) { | 270 FileSystemURL CreateURLFromUTF8(const std::string& path) { |
| 270 return test_helper_.CreateURLFromUTF8(path); | 271 return sandbox_file_system_.CreateURLFromUTF8(path); |
| 271 } | 272 } |
| 272 | 273 |
| 273 int64 PathCost(const FileSystemURL& url) { | 274 int64 PathCost(const FileSystemURL& url) { |
| 274 return ObfuscatedFileUtil::ComputeFilePathCost(url.path()); | 275 return ObfuscatedFileUtil::ComputeFilePathCost(url.path()); |
| 275 } | 276 } |
| 276 | 277 |
| 277 FileSystemURL CreateURL(const base::FilePath& path) { | 278 FileSystemURL CreateURL(const base::FilePath& path) { |
| 278 return test_helper_.CreateURL(path); | 279 return sandbox_file_system_.CreateURL(path); |
| 279 } | 280 } |
| 280 | 281 |
| 281 void CheckFileAndCloseHandle( | 282 void CheckFileAndCloseHandle( |
| 282 const FileSystemURL& url, base::PlatformFile file_handle) { | 283 const FileSystemURL& url, base::PlatformFile file_handle) { |
| 283 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL)); | 284 scoped_ptr<FileSystemOperationContext> context(NewContext(NULL)); |
| 284 base::FilePath local_path; | 285 base::FilePath local_path; |
| 285 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->GetLocalFilePath( | 286 EXPECT_EQ(base::PLATFORM_FILE_OK, ofu()->GetLocalFilePath( |
| 286 context.get(), url, &local_path)); | 287 context.get(), url, &local_path)); |
| 287 | 288 |
| 288 base::PlatformFileInfo file_info0; | 289 base::PlatformFileInfo file_info0; |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 for (iter = directories.begin(); iter != directories.end(); ++iter) { | 356 for (iter = directories.begin(); iter != directories.end(); ++iter) { |
| 356 context.reset(NewContext(NULL)); | 357 context.reset(NewContext(NULL)); |
| 357 EXPECT_TRUE(DirectoryExists( | 358 EXPECT_TRUE(DirectoryExists( |
| 358 FileSystemURLAppend(root_url, *iter))); | 359 FileSystemURLAppend(root_url, *iter))); |
| 359 } | 360 } |
| 360 } | 361 } |
| 361 | 362 |
| 362 class UsageVerifyHelper { | 363 class UsageVerifyHelper { |
| 363 public: | 364 public: |
| 364 UsageVerifyHelper(scoped_ptr<FileSystemOperationContext> context, | 365 UsageVerifyHelper(scoped_ptr<FileSystemOperationContext> context, |
| 365 LocalFileSystemTestOriginHelper* test_helper, | 366 SandboxFileSystemTestHelper* file_system, |
| 366 int64 expected_usage) | 367 int64 expected_usage) |
| 367 : context_(context.Pass()), | 368 : context_(context.Pass()), |
| 368 test_helper_(test_helper), | 369 sandbox_file_system_(file_system), |
| 369 expected_usage_(expected_usage) {} | 370 expected_usage_(expected_usage) {} |
| 370 | 371 |
| 371 ~UsageVerifyHelper() { | 372 ~UsageVerifyHelper() { |
| 372 base::MessageLoop::current()->RunUntilIdle(); | 373 base::MessageLoop::current()->RunUntilIdle(); |
| 373 Check(); | 374 Check(); |
| 374 } | 375 } |
| 375 | 376 |
| 376 FileSystemOperationContext* context() { | 377 FileSystemOperationContext* context() { |
| 377 return context_.get(); | 378 return context_.get(); |
| 378 } | 379 } |
| 379 | 380 |
| 380 private: | 381 private: |
| 381 void Check() { | 382 void Check() { |
| 382 ASSERT_EQ(expected_usage_, | 383 ASSERT_EQ(expected_usage_, |
| 383 test_helper_->GetCachedOriginUsage()); | 384 sandbox_file_system_->GetCachedOriginUsage()); |
| 384 } | 385 } |
| 385 | 386 |
| 386 scoped_ptr<FileSystemOperationContext> context_; | 387 scoped_ptr<FileSystemOperationContext> context_; |
| 387 LocalFileSystemTestOriginHelper* test_helper_; | 388 SandboxFileSystemTestHelper* sandbox_file_system_; |
| 388 int64 expected_usage_; | 389 int64 expected_usage_; |
| 389 }; | 390 }; |
| 390 | 391 |
| 391 scoped_ptr<UsageVerifyHelper> AllowUsageIncrease(int64 requested_growth) { | 392 scoped_ptr<UsageVerifyHelper> AllowUsageIncrease(int64 requested_growth) { |
| 392 int64 usage = test_helper_.GetCachedOriginUsage(); | 393 int64 usage = sandbox_file_system_.GetCachedOriginUsage(); |
| 393 return scoped_ptr<UsageVerifyHelper>(new UsageVerifyHelper( | 394 return scoped_ptr<UsageVerifyHelper>(new UsageVerifyHelper( |
| 394 LimitedContext(requested_growth), | 395 LimitedContext(requested_growth), |
| 395 &test_helper_, usage + requested_growth)); | 396 &sandbox_file_system_, usage + requested_growth)); |
| 396 } | 397 } |
| 397 | 398 |
| 398 scoped_ptr<UsageVerifyHelper> DisallowUsageIncrease(int64 requested_growth) { | 399 scoped_ptr<UsageVerifyHelper> DisallowUsageIncrease(int64 requested_growth) { |
| 399 int64 usage = test_helper_.GetCachedOriginUsage(); | 400 int64 usage = sandbox_file_system_.GetCachedOriginUsage(); |
| 400 return scoped_ptr<UsageVerifyHelper>(new UsageVerifyHelper( | 401 return scoped_ptr<UsageVerifyHelper>(new UsageVerifyHelper( |
| 401 LimitedContext(requested_growth - 1), &test_helper_, usage)); | 402 LimitedContext(requested_growth - 1), &sandbox_file_system_, usage)); |
| 402 } | 403 } |
| 403 | 404 |
| 404 void FillTestDirectory( | 405 void FillTestDirectory( |
| 405 const FileSystemURL& root_url, | 406 const FileSystemURL& root_url, |
| 406 std::set<base::FilePath::StringType>* files, | 407 std::set<base::FilePath::StringType>* files, |
| 407 std::set<base::FilePath::StringType>* directories) { | 408 std::set<base::FilePath::StringType>* directories) { |
| 408 scoped_ptr<FileSystemOperationContext> context; | 409 scoped_ptr<FileSystemOperationContext> context; |
| 409 std::vector<DirectoryEntry> entries; | 410 std::vector<DirectoryEntry> entries; |
| 410 EXPECT_EQ(base::PLATFORM_FILE_OK, | 411 EXPECT_EQ(base::PLATFORM_FILE_OK, |
| 411 AsyncFileTestHelper::ReadDirectory( | 412 AsyncFileTestHelper::ReadDirectory( |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 src_file_url, dest_file_url, | 635 src_file_url, dest_file_url, |
| 635 copy)); | 636 copy)); |
| 636 if (copy) | 637 if (copy) |
| 637 EXPECT_EQ(base::Time(), GetModifiedTime(src_dir_url)); | 638 EXPECT_EQ(base::Time(), GetModifiedTime(src_dir_url)); |
| 638 else | 639 else |
| 639 EXPECT_NE(base::Time(), GetModifiedTime(src_dir_url)); | 640 EXPECT_NE(base::Time(), GetModifiedTime(src_dir_url)); |
| 640 EXPECT_NE(base::Time(), GetModifiedTime(dest_dir_url)); | 641 EXPECT_NE(base::Time(), GetModifiedTime(dest_dir_url)); |
| 641 } | 642 } |
| 642 | 643 |
| 643 int64 ComputeCurrentUsage() { | 644 int64 ComputeCurrentUsage() { |
| 644 return test_helper_.ComputeCurrentOriginUsage() - | 645 return sandbox_file_system_.ComputeCurrentOriginUsage() - |
| 645 test_helper_.ComputeCurrentDirectoryDatabaseUsage(); | 646 sandbox_file_system_.ComputeCurrentDirectoryDatabaseUsage(); |
| 646 } | |
| 647 | |
| 648 const LocalFileSystemTestOriginHelper& test_helper() const { | |
| 649 return test_helper_; | |
| 650 } | 647 } |
| 651 | 648 |
| 652 FileSystemContext* file_system_context() { | 649 FileSystemContext* file_system_context() { |
| 653 return test_helper_.file_system_context(); | 650 return sandbox_file_system_.file_system_context(); |
| 654 } | 651 } |
| 655 | 652 |
| 656 private: | 653 private: |
| 657 base::ScopedTempDir data_dir_; | 654 base::ScopedTempDir data_dir_; |
| 658 base::MessageLoop message_loop_; | 655 base::MessageLoop message_loop_; |
| 659 scoped_refptr<quota::QuotaManager> quota_manager_; | 656 scoped_refptr<quota::QuotaManager> quota_manager_; |
| 660 scoped_refptr<FileSystemContext> file_system_context_; | 657 scoped_refptr<FileSystemContext> file_system_context_; |
| 661 GURL origin_; | 658 GURL origin_; |
| 662 fileapi::FileSystemType type_; | 659 fileapi::FileSystemType type_; |
| 663 base::WeakPtrFactory<ObfuscatedFileUtilTest> weak_factory_; | 660 base::WeakPtrFactory<ObfuscatedFileUtilTest> weak_factory_; |
| 664 LocalFileSystemTestOriginHelper test_helper_; | 661 SandboxFileSystemTestHelper sandbox_file_system_; |
| 665 quota::QuotaStatusCode quota_status_; | 662 quota::QuotaStatusCode quota_status_; |
| 666 int64 usage_; | 663 int64 usage_; |
| 667 MockFileChangeObserver change_observer_; | 664 MockFileChangeObserver change_observer_; |
| 668 ChangeObserverList change_observers_; | 665 ChangeObserverList change_observers_; |
| 669 | 666 |
| 670 DISALLOW_COPY_AND_ASSIGN(ObfuscatedFileUtilTest); | 667 DISALLOW_COPY_AND_ASSIGN(ObfuscatedFileUtilTest); |
| 671 }; | 668 }; |
| 672 | 669 |
| 673 TEST_F(ObfuscatedFileUtilTest, TestCreateAndDeleteFile) { | 670 TEST_F(ObfuscatedFileUtilTest, TestCreateAndDeleteFile) { |
| 674 base::PlatformFile file_handle = base::kInvalidPlatformFileValue; | 671 base::PlatformFile file_handle = base::kInvalidPlatformFileValue; |
| (...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1409 | 1406 |
| 1410 std::set<base::FilePath::StringType> files; | 1407 std::set<base::FilePath::StringType> files; |
| 1411 std::set<base::FilePath::StringType> directories; | 1408 std::set<base::FilePath::StringType> directories; |
| 1412 FillTestDirectory(src_url, &files, &directories); | 1409 FillTestDirectory(src_url, &files, &directories); |
| 1413 | 1410 |
| 1414 FileSystemURL dest_url = CreateURLFromUTF8("destination dir"); | 1411 FileSystemURL dest_url = CreateURLFromUTF8("destination dir"); |
| 1415 | 1412 |
| 1416 EXPECT_FALSE(DirectoryExists(dest_url)); | 1413 EXPECT_FALSE(DirectoryExists(dest_url)); |
| 1417 ASSERT_EQ(base::PLATFORM_FILE_OK, | 1414 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| 1418 AsyncFileTestHelper::Copy( | 1415 AsyncFileTestHelper::Copy( |
| 1419 test_helper().file_system_context(), src_url, dest_url)); | 1416 file_system_context(), src_url, dest_url)); |
| 1420 | 1417 |
| 1421 ValidateTestDirectory(dest_url, files, directories); | 1418 ValidateTestDirectory(dest_url, files, directories); |
| 1422 EXPECT_TRUE(DirectoryExists(src_url)); | 1419 EXPECT_TRUE(DirectoryExists(src_url)); |
| 1423 EXPECT_TRUE(DirectoryExists(dest_url)); | 1420 EXPECT_TRUE(DirectoryExists(dest_url)); |
| 1424 recursive = true; | 1421 recursive = true; |
| 1425 ASSERT_EQ(base::PLATFORM_FILE_OK, | 1422 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| 1426 AsyncFileTestHelper::Remove( | 1423 AsyncFileTestHelper::Remove( |
| 1427 file_system_context(), dest_url, recursive)); | 1424 file_system_context(), dest_url, recursive)); |
| 1428 EXPECT_FALSE(DirectoryExists(dest_url)); | 1425 EXPECT_FALSE(DirectoryExists(dest_url)); |
| 1429 } | 1426 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1445 origins_expected.insert(origin()); | 1442 origins_expected.insert(origin()); |
| 1446 | 1443 |
| 1447 for (size_t i = 0; i < arraysize(kOriginEnumerationTestRecords); ++i) { | 1444 for (size_t i = 0; i < arraysize(kOriginEnumerationTestRecords); ++i) { |
| 1448 SCOPED_TRACE(testing::Message() << | 1445 SCOPED_TRACE(testing::Message() << |
| 1449 "Validating kOriginEnumerationTestRecords " << i); | 1446 "Validating kOriginEnumerationTestRecords " << i); |
| 1450 const OriginEnumerationTestRecord& record = | 1447 const OriginEnumerationTestRecord& record = |
| 1451 kOriginEnumerationTestRecords[i]; | 1448 kOriginEnumerationTestRecords[i]; |
| 1452 GURL origin_url(record.origin_url); | 1449 GURL origin_url(record.origin_url); |
| 1453 origins_expected.insert(origin_url); | 1450 origins_expected.insert(origin_url); |
| 1454 if (record.has_temporary) { | 1451 if (record.has_temporary) { |
| 1455 scoped_ptr<LocalFileSystemTestOriginHelper> helper( | 1452 scoped_ptr<SandboxFileSystemTestHelper> file_system( |
| 1456 NewHelper(origin_url, kFileSystemTypeTemporary)); | 1453 NewFileSystem(origin_url, kFileSystemTypeTemporary)); |
| 1457 scoped_ptr<FileSystemOperationContext> context(NewContext(helper.get())); | 1454 scoped_ptr<FileSystemOperationContext> context( |
| 1455 NewContext(file_system.get())); |
| 1458 bool created = false; | 1456 bool created = false; |
| 1459 ASSERT_EQ(base::PLATFORM_FILE_OK, | 1457 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| 1460 ofu()->EnsureFileExists( | 1458 ofu()->EnsureFileExists( |
| 1461 context.get(), | 1459 context.get(), |
| 1462 helper->CreateURLFromUTF8("file"), | 1460 file_system->CreateURLFromUTF8("file"), |
| 1463 &created)); | 1461 &created)); |
| 1464 EXPECT_TRUE(created); | 1462 EXPECT_TRUE(created); |
| 1465 } | 1463 } |
| 1466 if (record.has_persistent) { | 1464 if (record.has_persistent) { |
| 1467 scoped_ptr<LocalFileSystemTestOriginHelper> helper( | 1465 scoped_ptr<SandboxFileSystemTestHelper> file_system( |
| 1468 NewHelper(origin_url, kFileSystemTypePersistent)); | 1466 NewFileSystem(origin_url, kFileSystemTypePersistent)); |
| 1469 scoped_ptr<FileSystemOperationContext> context(NewContext(helper.get())); | 1467 scoped_ptr<FileSystemOperationContext> context( |
| 1468 NewContext(file_system.get())); |
| 1470 bool created = false; | 1469 bool created = false; |
| 1471 ASSERT_EQ(base::PLATFORM_FILE_OK, | 1470 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| 1472 ofu()->EnsureFileExists( | 1471 ofu()->EnsureFileExists( |
| 1473 context.get(), | 1472 context.get(), |
| 1474 helper->CreateURLFromUTF8("file"), | 1473 file_system->CreateURLFromUTF8("file"), |
| 1475 &created)); | 1474 &created)); |
| 1476 EXPECT_TRUE(created); | 1475 EXPECT_TRUE(created); |
| 1477 } | 1476 } |
| 1478 } | 1477 } |
| 1479 enumerator.reset(ofu()->CreateOriginEnumerator()); | 1478 enumerator.reset(ofu()->CreateOriginEnumerator()); |
| 1480 EXPECT_TRUE(enumerator.get()); | 1479 EXPECT_TRUE(enumerator.get()); |
| 1481 std::set<GURL> origins_found; | 1480 std::set<GURL> origins_found; |
| 1482 GURL origin_url; | 1481 GURL origin_url; |
| 1483 while (!(origin_url = enumerator->Next()).is_empty()) { | 1482 while (!(origin_url = enumerator->Next()).is_empty()) { |
| 1484 origins_found.insert(origin_url); | 1483 origins_found.insert(origin_url); |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2244 ASSERT_EQ(base::PLATFORM_FILE_OK, | 2243 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| 2245 ofu()->CreateOrOpen( | 2244 ofu()->CreateOrOpen( |
| 2246 AllowUsageIncrease(-length)->context(), file, | 2245 AllowUsageIncrease(-length)->context(), file, |
| 2247 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE, | 2246 base::PLATFORM_FILE_OPEN_TRUNCATED | base::PLATFORM_FILE_WRITE, |
| 2248 &file_handle, &created)); | 2247 &file_handle, &created)); |
| 2249 ASSERT_EQ(0, ComputeTotalFileSize()); | 2248 ASSERT_EQ(0, ComputeTotalFileSize()); |
| 2250 EXPECT_TRUE(base::ClosePlatformFile(file_handle)); | 2249 EXPECT_TRUE(base::ClosePlatformFile(file_handle)); |
| 2251 } | 2250 } |
| 2252 | 2251 |
| 2253 } // namespace fileapi | 2252 } // namespace fileapi |
| OLD | NEW |