• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_MOCK_PROVIDER_H_
6 #define CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_MOCK_PROVIDER_H_
7 #pragma once
8 
9 #include "base/basictypes.h"
10 #include "chrome/browser/content_settings/content_settings_provider.h"
11 
12 namespace content_settings {
13 
14 // The class MockDefaultProvider is a mock for a default content settings
15 // provider.
16 class MockDefaultProvider : public DefaultProviderInterface {
17  public:
18   // Create a content settings provider that provides a given setting for a
19   // given type.
20   MockDefaultProvider(ContentSettingsType content_type,
21                               ContentSetting setting,
22                               bool is_managed,
23                               bool can_override);
24   virtual ~MockDefaultProvider();
25 
26   // DefaultProviderInterface implementation.
27   virtual ContentSetting ProvideDefaultSetting(
28       ContentSettingsType content_type) const;
29   virtual void UpdateDefaultSetting(ContentSettingsType content_type,
30                                     ContentSetting setting);
31   virtual void ResetToDefaults();
32   virtual bool DefaultSettingIsManaged(ContentSettingsType content_type) const;
33 
34  private:
35   ContentSettingsType content_type_;
36   ContentSetting setting_;
37   bool is_managed_;
38   bool can_override_;
39 
40   DISALLOW_COPY_AND_ASSIGN(MockDefaultProvider);
41 };
42 
43 // The class MockProvider is a mock for a non default content settings provider.
44 class MockProvider : public ProviderInterface {
45  public:
46   MockProvider();
47   MockProvider(ContentSettingsPattern requesting_url_pattern,
48                ContentSettingsPattern embedding_url_pattern,
49                ContentSettingsType content_type,
50                ResourceIdentifier resource_identifier,
51                ContentSetting setting,
52                bool read_only,
53                bool is_managed);
54   virtual ~MockProvider();
55 
56   virtual bool ContentSettingsTypeIsManaged(ContentSettingsType type);
57 
58   // ProviderInterface implementation
59   virtual ContentSetting GetContentSetting(
60       const GURL& requesting_url,
61       const GURL& embedding_url,
62       ContentSettingsType content_type,
63       const ResourceIdentifier& resource_identifier) const;
64 
65   // The MockProvider is only able to store one content setting. So every time
66   // this method is called the previously set content settings is overwritten.
67   virtual void SetContentSetting(
68       const ContentSettingsPattern& requesting_url_pattern,
69       const ContentSettingsPattern& embedding_url_pattern,
70       ContentSettingsType content_type,
71       const ResourceIdentifier& resource_identifier,
72       ContentSetting content_setting);
73 
GetAllContentSettingsRules(ContentSettingsType content_type,const ResourceIdentifier & resource_identifier,Rules * content_setting_rules)74   virtual void GetAllContentSettingsRules(
75       ContentSettingsType content_type,
76       const ResourceIdentifier& resource_identifier,
77       Rules* content_setting_rules) const {}
78 
ClearAllContentSettingsRules(ContentSettingsType content_type)79   virtual void ClearAllContentSettingsRules(
80       ContentSettingsType content_type) {}
81 
ResetToDefaults()82   virtual void ResetToDefaults() {}
83 
84   // Accessors
set_requesting_url_pattern(ContentSettingsPattern pattern)85   void set_requesting_url_pattern(ContentSettingsPattern pattern) {
86     requesting_url_pattern_ = pattern;
87   }
88 
requesting_url_pattern()89   ContentSettingsPattern requesting_url_pattern() const {
90     return requesting_url_pattern_;
91   }
92 
set_embedding_url_pattern(ContentSettingsPattern pattern)93   void set_embedding_url_pattern(ContentSettingsPattern pattern) {
94     embedding_url_pattern_ = pattern;
95   }
96 
embedding_url_pattern()97   ContentSettingsPattern embedding_url_pattern() const {
98     return embedding_url_pattern_;
99   }
100 
set_content_type(ContentSettingsType content_type)101   void set_content_type(ContentSettingsType content_type) {
102     content_type_ = content_type;
103   }
104 
content_type()105   ContentSettingsType content_type() const {
106     return content_type_;
107   }
108 
set_resource_identifier(ResourceIdentifier resource_identifier)109   void set_resource_identifier(ResourceIdentifier resource_identifier) {
110     resource_identifier_ = resource_identifier;
111   }
112 
resource_identifier()113   ResourceIdentifier resource_identifier() const {
114     return resource_identifier_;
115   }
116 
set_setting(ContentSetting setting)117   void set_setting(ContentSetting setting) {
118     setting_ = setting;
119   }
120 
setting()121   ContentSetting setting() const {
122     return setting_;
123   }
124 
set_read_only(bool read_only)125   void set_read_only(bool read_only) {
126     read_only_ = read_only;
127   }
128 
read_only()129   bool read_only() const {
130     return read_only_;
131   }
132 
set_is_managed(bool is_managed)133   void set_is_managed(bool is_managed) {
134     is_managed_ = is_managed;
135   }
136 
is_managed()137   bool is_managed() const {
138     return is_managed_;
139   }
140 
141  private:
142   ContentSettingsPattern requesting_url_pattern_;
143   ContentSettingsPattern embedding_url_pattern_;
144   ContentSettingsType content_type_;
145   ResourceIdentifier resource_identifier_;
146   ContentSetting setting_;
147   bool read_only_;
148   bool is_managed_;
149 
150   DISALLOW_COPY_AND_ASSIGN(MockProvider);
151 };
152 
153 }  // namespace content_settings
154 
155 #endif  // CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_MOCK_PROVIDER_H_
156