• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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_QUOTA_MOCK_SPECIAL_STORAGE_POLICY_H_
6 #define WEBKIT_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 namespace quota {
15 
16 class MockSpecialStoragePolicy : public quota::SpecialStoragePolicy {
17  public:
18   MockSpecialStoragePolicy();
19 
20   virtual bool IsStorageProtected(const GURL& origin) OVERRIDE;
21   virtual bool IsStorageUnlimited(const GURL& origin) OVERRIDE;
22   virtual bool IsStorageSessionOnly(const GURL& origin) OVERRIDE;
23   virtual bool CanQueryDiskSize(const GURL& origin) OVERRIDE;
24   virtual bool IsFileHandler(const std::string& extension_id) OVERRIDE;
25   virtual bool HasIsolatedStorage(const GURL& origin) OVERRIDE;
26   virtual bool HasSessionOnlyOrigins() OVERRIDE;
27 
AddProtected(const GURL & origin)28   void AddProtected(const GURL& origin) {
29     protected_.insert(origin);
30   }
31 
AddUnlimited(const GURL & origin)32   void AddUnlimited(const GURL& origin) {
33     unlimited_.insert(origin);
34   }
35 
RemoveUnlimited(const GURL & origin)36   void RemoveUnlimited(const GURL& origin) {
37     unlimited_.erase(origin);
38   }
39 
AddSessionOnly(const GURL & origin)40   void AddSessionOnly(const GURL& origin) {
41     session_only_.insert(origin);
42   }
43 
GrantQueryDiskSize(const GURL & origin)44   void GrantQueryDiskSize(const GURL& origin) {
45     can_query_disk_size_.insert(origin);
46   }
47 
AddFileHandler(const std::string & id)48   void AddFileHandler(const std::string& id) {
49     file_handlers_.insert(id);
50   }
51 
AddIsolated(const GURL & origin)52   void AddIsolated(const GURL& origin) {
53     isolated_.insert(origin);
54   }
55 
RemoveIsolated(const GURL & origin)56   void RemoveIsolated(const GURL& origin) {
57     isolated_.erase(origin);
58   }
59 
SetAllUnlimited(bool all_unlimited)60   void SetAllUnlimited(bool all_unlimited) {
61     all_unlimited_ = all_unlimited;
62   }
63 
Reset()64   void Reset() {
65     protected_.clear();
66     unlimited_.clear();
67     session_only_.clear();
68     can_query_disk_size_.clear();
69     file_handlers_.clear();
70     isolated_.clear();
71     all_unlimited_ = false;
72   }
73 
NotifyGranted(const GURL & origin,int change_flags)74   void NotifyGranted(const GURL& origin, int change_flags) {
75     SpecialStoragePolicy::NotifyGranted(origin, change_flags);
76   }
77 
NotifyRevoked(const GURL & origin,int change_flags)78   void NotifyRevoked(const GURL& origin, int change_flags) {
79     SpecialStoragePolicy::NotifyRevoked(origin, change_flags);
80   }
81 
NotifyCleared()82   void NotifyCleared() {
83     SpecialStoragePolicy::NotifyCleared();
84   }
85 
86  protected:
87   virtual ~MockSpecialStoragePolicy();
88 
89  private:
90   std::set<GURL> protected_;
91   std::set<GURL> unlimited_;
92   std::set<GURL> session_only_;
93   std::set<GURL> can_query_disk_size_;
94   std::set<GURL> isolated_;
95   std::set<std::string> file_handlers_;
96 
97   bool all_unlimited_;
98 };
99 }  // namespace quota
100 
101 #endif  // WEBKIT_BROWSER_QUOTA_MOCK_SPECIAL_STORAGE_POLICY_H_
102