• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "url/gurl.h"
12 #include "webkit/browser/quota/special_storage_policy.h"
13 
14 using quota::SpecialStoragePolicy;
15 
16 namespace content {
17 
18 class MockSpecialStoragePolicy : public quota::SpecialStoragePolicy {
19  public:
20   MockSpecialStoragePolicy();
21 
22   virtual bool IsStorageProtected(const GURL& origin) OVERRIDE;
23   virtual bool IsStorageUnlimited(const GURL& origin) OVERRIDE;
24   virtual bool IsStorageSessionOnly(const GURL& origin) OVERRIDE;
25   virtual bool CanQueryDiskSize(const GURL& origin) OVERRIDE;
26   virtual bool IsFileHandler(const std::string& extension_id) OVERRIDE;
27   virtual bool HasIsolatedStorage(const GURL& origin) OVERRIDE;
28   virtual bool HasSessionOnlyOrigins() OVERRIDE;
29 
AddProtected(const GURL & origin)30   void AddProtected(const GURL& origin) {
31     protected_.insert(origin);
32   }
33 
AddUnlimited(const GURL & origin)34   void AddUnlimited(const GURL& origin) {
35     unlimited_.insert(origin);
36   }
37 
RemoveUnlimited(const GURL & origin)38   void RemoveUnlimited(const GURL& origin) {
39     unlimited_.erase(origin);
40   }
41 
AddSessionOnly(const GURL & origin)42   void AddSessionOnly(const GURL& origin) {
43     session_only_.insert(origin);
44   }
45 
GrantQueryDiskSize(const GURL & origin)46   void GrantQueryDiskSize(const GURL& origin) {
47     can_query_disk_size_.insert(origin);
48   }
49 
AddFileHandler(const std::string & id)50   void AddFileHandler(const std::string& id) {
51     file_handlers_.insert(id);
52   }
53 
AddIsolated(const GURL & origin)54   void AddIsolated(const GURL& origin) {
55     isolated_.insert(origin);
56   }
57 
RemoveIsolated(const GURL & origin)58   void RemoveIsolated(const GURL& origin) {
59     isolated_.erase(origin);
60   }
61 
SetAllUnlimited(bool all_unlimited)62   void SetAllUnlimited(bool all_unlimited) {
63     all_unlimited_ = all_unlimited;
64   }
65 
Reset()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 
NotifyGranted(const GURL & origin,int change_flags)76   void NotifyGranted(const GURL& origin, int change_flags) {
77     SpecialStoragePolicy::NotifyGranted(origin, change_flags);
78   }
79 
NotifyRevoked(const GURL & origin,int change_flags)80   void NotifyRevoked(const GURL& origin, int change_flags) {
81     SpecialStoragePolicy::NotifyRevoked(origin, change_flags);
82   }
83 
NotifyCleared()84   void NotifyCleared() {
85     SpecialStoragePolicy::NotifyCleared();
86   }
87 
88  protected:
89   virtual ~MockSpecialStoragePolicy();
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_
104