Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / public / test / mock_special_storage_policy.h
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_BROWSER_QUOTA_MOCK_SPECIAL_STORAGE_POLICY_H_
6 #define CONTENT_BROWSER_QUOTA_MOCK_SPECIAL_STORAGE_POLICY_H_
7
8 #include <set>
9 #include <string>
10
11 #include "storage/browser/quota/special_storage_policy.h"
12 #include "url/gurl.h"
13
14 using storage::SpecialStoragePolicy;
15
16 namespace content {
17
18 class MockSpecialStoragePolicy : public storage::SpecialStoragePolicy {
19  public:
20   MockSpecialStoragePolicy();
21
22   bool IsStorageProtected(const GURL& origin) override;
23   bool IsStorageUnlimited(const GURL& origin) override;
24   bool IsStorageSessionOnly(const GURL& origin) override;
25   bool CanQueryDiskSize(const GURL& origin) override;
26   bool IsFileHandler(const std::string& extension_id) override;
27   bool HasIsolatedStorage(const GURL& origin) override;
28   bool HasSessionOnlyOrigins() override;
29
30   void AddProtected(const GURL& origin) {
31     protected_.insert(origin);
32   }
33
34   void AddUnlimited(const GURL& origin) {
35     unlimited_.insert(origin);
36   }
37
38   void RemoveUnlimited(const GURL& origin) {
39     unlimited_.erase(origin);
40   }
41
42   void AddSessionOnly(const GURL& origin) {
43     session_only_.insert(origin);
44   }
45
46   void GrantQueryDiskSize(const GURL& origin) {
47     can_query_disk_size_.insert(origin);
48   }
49
50   void AddFileHandler(const std::string& id) {
51     file_handlers_.insert(id);
52   }
53
54   void AddIsolated(const GURL& origin) {
55     isolated_.insert(origin);
56   }
57
58   void RemoveIsolated(const GURL& origin) {
59     isolated_.erase(origin);
60   }
61
62   void SetAllUnlimited(bool all_unlimited) {
63     all_unlimited_ = all_unlimited;
64   }
65
66   void Reset() {
67     protected_.clear();
68     unlimited_.clear();
69     session_only_.clear();
70     can_query_disk_size_.clear();
71     file_handlers_.clear();
72     isolated_.clear();
73     all_unlimited_ = false;
74   }
75
76   void NotifyGranted(const GURL& origin, int change_flags) {
77     SpecialStoragePolicy::NotifyGranted(origin, change_flags);
78   }
79
80   void NotifyRevoked(const GURL& origin, int change_flags) {
81     SpecialStoragePolicy::NotifyRevoked(origin, change_flags);
82   }
83
84   void NotifyCleared() {
85     SpecialStoragePolicy::NotifyCleared();
86   }
87
88  protected:
89   ~MockSpecialStoragePolicy() override;
90
91  private:
92   std::set<GURL> protected_;
93   std::set<GURL> unlimited_;
94   std::set<GURL> session_only_;
95   std::set<GURL> can_query_disk_size_;
96   std::set<GURL> isolated_;
97   std::set<std::string> file_handlers_;
98
99   bool all_unlimited_;
100 };
101 }  // namespace content
102
103 #endif  // CONTENT_BROWSER_QUOTA_MOCK_SPECIAL_STORAGE_POLICY_H_