1 // Copyright 2019 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_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
6 #define CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
7 
8 #include "content/public/browser/native_file_system_permission_context.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 
11 namespace content {
12 // Mock NativeFileSystemPermissionContext implementation.
13 class MockNativeFileSystemPermissionContext
14     : public NativeFileSystemPermissionContext {
15  public:
16   MockNativeFileSystemPermissionContext();
17   ~MockNativeFileSystemPermissionContext();
18 
19   MOCK_METHOD6(GetReadPermissionGrant,
20                scoped_refptr<NativeFileSystemPermissionGrant>(
21                    const url::Origin& origin,
22                    const base::FilePath& path,
23                    bool is_directory,
24                    int process_id,
25                    int frame_id,
26                    NativeFileSystemPermissionContext::UserAction user_action));
27 
28   MOCK_METHOD6(GetWritePermissionGrant,
29                scoped_refptr<NativeFileSystemPermissionGrant>(
30                    const url::Origin& origin,
31                    const base::FilePath& path,
32                    bool is_directory,
33                    int process_id,
34                    int frame_id,
35                    NativeFileSystemPermissionContext::UserAction user_action));
36 
37   void ConfirmDirectoryReadAccess(
38       const url::Origin& origin,
39       const base::FilePath& path,
40       int process_id,
41       int frame_id,
42       base::OnceCallback<void(PermissionStatus)> callback) override;
43   MOCK_METHOD5(ConfirmDirectoryReadAccess_,
44                void(const url::Origin& origin,
45                     const base::FilePath& path,
46                     int process_id,
47                     int frame_id,
48                     base::OnceCallback<void(PermissionStatus)>& callback));
49 
50   void ConfirmSensitiveDirectoryAccess(
51       const url::Origin& origin,
52       const std::vector<base::FilePath>& paths,
53       bool is_directory,
54       int process_id,
55       int frame_id,
56       base::OnceCallback<void(SensitiveDirectoryResult)> callback) override;
57   MOCK_METHOD6(
58       ConfirmSensitiveDirectoryAccess_,
59       void(const url::Origin& origin,
60            const std::vector<base::FilePath>& paths,
61            bool is_directory,
62            int process_id,
63            int frame_id,
64            base::OnceCallback<void(SensitiveDirectoryResult)>& callback));
65 
66   void PerformAfterWriteChecks(
67       std::unique_ptr<NativeFileSystemWriteItem> item,
68       int process_id,
69       int frame_id,
70       base::OnceCallback<void(AfterWriteCheckResult)> callback) override;
71   MOCK_METHOD4(PerformAfterWriteChecks_,
72                void(NativeFileSystemWriteItem* item,
73                     int process_id,
74                     int frame_id,
75                     base::OnceCallback<void(AfterWriteCheckResult)>& callback));
76 
77   MOCK_METHOD1(CanObtainWritePermission, bool(const url::Origin& origin));
78 };
79 
80 }  // namespace content
81 
82 #endif  // CONTENT_BROWSER_NATIVE_FILE_SYSTEM_MOCK_NATIVE_FILE_SYSTEM_PERMISSION_CONTEXT_H_
83