Home | History | Annotate | Download | only in test
      1 // Copyright 2014 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 CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_
      6 #define CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "storage/browser/fileapi/file_system_operation.h"
     10 #include "storage/common/fileapi/file_system_types.h"
     11 #include "storage/common/quota/quota_status_code.h"
     12 
     13 namespace storage {
     14 class QuotaManager;
     15 }
     16 
     17 namespace storage {
     18 class FileSystemContext;
     19 class FileSystemURL;
     20 }
     21 
     22 namespace content {
     23 
     24 // A helper class to perform async file operations in a synchronous way.
     25 class AsyncFileTestHelper {
     26  public:
     27   typedef storage::FileSystemOperation::FileEntryList FileEntryList;
     28   typedef storage::FileSystemOperation::CopyProgressCallback
     29       CopyProgressCallback;
     30 
     31   static const int64 kDontCheckSize;
     32 
     33   // Performs Copy from |src| to |dest| and returns the status code.
     34   static base::File::Error Copy(storage::FileSystemContext* context,
     35                                 const storage::FileSystemURL& src,
     36                                 const storage::FileSystemURL& dest);
     37 
     38   // Same as Copy, but this supports |progress_callback|.
     39   static base::File::Error CopyWithProgress(
     40       storage::FileSystemContext* context,
     41       const storage::FileSystemURL& src,
     42       const storage::FileSystemURL& dest,
     43       const CopyProgressCallback& progress_callback);
     44 
     45   // Performs Move from |src| to |dest| and returns the status code.
     46   static base::File::Error Move(storage::FileSystemContext* context,
     47                                 const storage::FileSystemURL& src,
     48                                 const storage::FileSystemURL& dest);
     49 
     50   // Removes the given |url|.
     51   static base::File::Error Remove(storage::FileSystemContext* context,
     52                                   const storage::FileSystemURL& url,
     53                                   bool recursive);
     54 
     55   // Performs ReadDirectory on |url|.
     56   static base::File::Error ReadDirectory(storage::FileSystemContext* context,
     57                                          const storage::FileSystemURL& url,
     58                                          FileEntryList* entries);
     59 
     60   // Creates a directory at |url|.
     61   static base::File::Error CreateDirectory(storage::FileSystemContext* context,
     62                                            const storage::FileSystemURL& url);
     63 
     64   // Creates a file at |url|.
     65   static base::File::Error CreateFile(storage::FileSystemContext* context,
     66                                       const storage::FileSystemURL& url);
     67 
     68   // Creates a file at |url| and fills with |buf|.
     69   static base::File::Error CreateFileWithData(
     70       storage::FileSystemContext* context,
     71       const storage::FileSystemURL& url,
     72       const char* buf,
     73       int buf_size);
     74 
     75   // Truncates the file |url| to |size|.
     76   static base::File::Error TruncateFile(storage::FileSystemContext* context,
     77                                         const storage::FileSystemURL& url,
     78                                         size_t size);
     79 
     80   // Retrieves File::Info for |url| and populates |file_info|.
     81   static base::File::Error GetMetadata(storage::FileSystemContext* context,
     82                                        const storage::FileSystemURL& url,
     83                                        base::File::Info* file_info);
     84 
     85   // Retrieves FilePath for |url| and populates |platform_path|.
     86   static base::File::Error GetPlatformPath(storage::FileSystemContext* context,
     87                                            const storage::FileSystemURL& url,
     88                                            base::FilePath* platform_path);
     89 
     90   // Returns true if a file exists at |url| with |size|. If |size| is
     91   // kDontCheckSize it doesn't check the file size (but just check its
     92   // existence).
     93   static bool FileExists(storage::FileSystemContext* context,
     94                          const storage::FileSystemURL& url,
     95                          int64 size);
     96 
     97   // Returns true if a directory exists at |url|.
     98   static bool DirectoryExists(storage::FileSystemContext* context,
     99                               const storage::FileSystemURL& url);
    100 
    101   // Returns usage and quota. It's valid to pass NULL to |usage| and/or |quota|.
    102   static storage::QuotaStatusCode GetUsageAndQuota(
    103       storage::QuotaManager* quota_manager,
    104       const GURL& origin,
    105       storage::FileSystemType type,
    106       int64* usage,
    107       int64* quota);
    108 };
    109 
    110 }  // namespace content
    111 
    112 #endif  // CONTENT_PUBLIC_TEST_ASYNC_FILE_TEST_HELPER_H_
    113