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

Side by Side Diff: webkit/browser/fileapi/sandbox_file_system_test_helper.h

Issue 23440033: Move FileAPI test code from webkit to content (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_TEST_HELPER_H_
6 #define WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_TEST_HELPER_H_
7
8 #include <string>
9
10 #include "base/files/file_path.h"
11 #include "base/memory/ref_counted.h"
12 #include "url/gurl.h"
13 #include "webkit/browser/fileapi/file_system_url.h"
14 #include "webkit/browser/fileapi/file_system_usage_cache.h"
15 #include "webkit/browser/fileapi/task_runner_bound_observer_list.h"
16 #include "webkit/common/fileapi/file_system_types.h"
17 #include "webkit/common/fileapi/file_system_util.h"
18 #include "webkit/common/quota/quota_types.h"
19
20 namespace base {
21 class FilePath;
22 }
23
24 namespace quota {
25 class QuotaManagerProxy;
26 }
27
28 namespace fileapi {
29
30 class FileSystemContext;
31 class FileSystemFileUtil;
32 class FileSystemOperationContext;
33 class FileSystemOperationRunner;
34
35 // Filesystem test helper class that encapsulates test environment for
36 // a given {origin, type} pair. This helper only works for sandboxed
37 // file systems (Temporary or Persistent).
38 class SandboxFileSystemTestHelper {
39 public:
40 SandboxFileSystemTestHelper(const GURL& origin, FileSystemType type);
41 SandboxFileSystemTestHelper();
42 ~SandboxFileSystemTestHelper();
43
44 void SetUp(const base::FilePath& base_dir);
45 // If you want to use more than one SandboxFileSystemTestHelper in
46 // a single base directory, they have to share a context, so that they don't
47 // have multiple databases fighting over the lock to the origin directory
48 // [deep down inside ObfuscatedFileUtil].
49 void SetUp(FileSystemContext* file_system_context);
50 void SetUp(const base::FilePath& base_dir,
51 quota::QuotaManagerProxy* quota_manager_proxy);
52 void TearDown();
53
54 base::FilePath GetOriginRootPath();
55 base::FilePath GetLocalPath(const base::FilePath& path);
56 base::FilePath GetLocalPathFromASCII(const std::string& path);
57
58 // Returns empty path if filesystem type is neither temporary nor persistent.
59 base::FilePath GetUsageCachePath() const;
60
61 FileSystemURL CreateURL(const base::FilePath& path) const;
62 FileSystemURL CreateURLFromUTF8(const std::string& utf8) const {
63 return CreateURL(base::FilePath::FromUTF8Unsafe(utf8));
64 }
65
66 // This returns cached usage size returned by QuotaUtil.
67 int64 GetCachedOriginUsage() const;
68
69 // This doesn't work with OFSFU.
70 int64 ComputeCurrentOriginUsage();
71
72 int64 ComputeCurrentDirectoryDatabaseUsage();
73
74 FileSystemOperationRunner* operation_runner();
75 FileSystemOperationContext* NewOperationContext();
76
77 void AddFileChangeObserver(FileChangeObserver* observer);
78
79 FileSystemContext* file_system_context() const {
80 return file_system_context_.get();
81 }
82
83 const GURL& origin() const { return origin_; }
84 FileSystemType type() const { return type_; }
85 quota::StorageType storage_type() const {
86 return FileSystemTypeToQuotaStorageType(type_);
87 }
88 FileSystemFileUtil* file_util() const { return file_util_; }
89 FileSystemUsageCache* usage_cache();
90
91 private:
92 void SetUpFileSystem();
93
94 scoped_refptr<FileSystemContext> file_system_context_;
95
96 const GURL origin_;
97 const FileSystemType type_;
98 FileSystemFileUtil* file_util_;
99 };
100
101 } // namespace fileapi
102
103 #endif // WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_TEST_HELPER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698