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 #include "chrome/browser/content_settings/content_settings_mock_provider.h"
6
7 namespace content_settings {
8
MockDefaultProvider(ContentSettingsType content_type,ContentSetting setting,bool is_managed,bool can_override)9 MockDefaultProvider::MockDefaultProvider(
10 ContentSettingsType content_type,
11 ContentSetting setting,
12 bool is_managed,
13 bool can_override)
14 : content_type_(content_type),
15 setting_(setting),
16 is_managed_(is_managed),
17 can_override_(can_override) {
18 }
19
~MockDefaultProvider()20 MockDefaultProvider::~MockDefaultProvider() {
21 }
22
ProvideDefaultSetting(ContentSettingsType content_type) const23 ContentSetting MockDefaultProvider::ProvideDefaultSetting(
24 ContentSettingsType content_type) const {
25 return content_type == content_type_ ? setting_ : CONTENT_SETTING_DEFAULT;
26 }
27
UpdateDefaultSetting(ContentSettingsType content_type,ContentSetting setting)28 void MockDefaultProvider::UpdateDefaultSetting(
29 ContentSettingsType content_type,
30 ContentSetting setting) {
31 if (can_override_ && content_type == content_type_)
32 setting_ = setting;
33 }
34
DefaultSettingIsManaged(ContentSettingsType content_type) const35 bool MockDefaultProvider::DefaultSettingIsManaged(
36 ContentSettingsType content_type) const {
37 return content_type == content_type_ && is_managed_;
38 }
39
ResetToDefaults()40 void MockDefaultProvider::ResetToDefaults() {
41 }
42
MockProvider()43 MockProvider::MockProvider()
44 : requesting_url_pattern_(ContentSettingsPattern()),
45 embedding_url_pattern_(ContentSettingsPattern()),
46 content_type_(CONTENT_SETTINGS_TYPE_COOKIES),
47 resource_identifier_(""),
48 setting_(CONTENT_SETTING_DEFAULT),
49 read_only_(false),
50 is_managed_(false) {}
51
MockProvider(ContentSettingsPattern requesting_url_pattern,ContentSettingsPattern embedding_url_pattern,ContentSettingsType content_type,ResourceIdentifier resource_identifier,ContentSetting setting,bool read_only,bool is_managed)52 MockProvider::MockProvider(ContentSettingsPattern requesting_url_pattern,
53 ContentSettingsPattern embedding_url_pattern,
54 ContentSettingsType content_type,
55 ResourceIdentifier resource_identifier,
56 ContentSetting setting,
57 bool read_only,
58 bool is_managed)
59 : requesting_url_pattern_(requesting_url_pattern),
60 embedding_url_pattern_(embedding_url_pattern),
61 content_type_(content_type),
62 resource_identifier_(resource_identifier),
63 setting_(setting),
64 read_only_(read_only),
65 is_managed_(is_managed) {}
66
~MockProvider()67 MockProvider::~MockProvider() {}
68
GetContentSetting(const GURL & requesting_url,const GURL & embedding_url,ContentSettingsType content_type,const ResourceIdentifier & resource_identifier) const69 ContentSetting MockProvider::GetContentSetting(
70 const GURL& requesting_url,
71 const GURL& embedding_url,
72 ContentSettingsType content_type,
73 const ResourceIdentifier& resource_identifier) const {
74 if (requesting_url_pattern_.Matches(requesting_url) &&
75 content_type_ == content_type &&
76 resource_identifier_ == resource_identifier) {
77 return setting_;
78 }
79 return CONTENT_SETTING_DEFAULT;
80 }
81
SetContentSetting(const ContentSettingsPattern & requesting_url_pattern,const ContentSettingsPattern & embedding_url_pattern,ContentSettingsType content_type,const ResourceIdentifier & resource_identifier,ContentSetting content_setting)82 void MockProvider::SetContentSetting(
83 const ContentSettingsPattern& requesting_url_pattern,
84 const ContentSettingsPattern& embedding_url_pattern,
85 ContentSettingsType content_type,
86 const ResourceIdentifier& resource_identifier,
87 ContentSetting content_setting) {
88 if (read_only_)
89 return;
90 requesting_url_pattern_ = ContentSettingsPattern(requesting_url_pattern);
91 embedding_url_pattern_ = ContentSettingsPattern(embedding_url_pattern);
92 content_type_ = content_type;
93 resource_identifier_ = resource_identifier;
94 setting_ = content_setting;
95 }
96
ContentSettingsTypeIsManaged(ContentSettingsType type)97 bool MockProvider::ContentSettingsTypeIsManaged(ContentSettingsType type) {
98 if (type == content_type_) {
99 return is_managed_;
100 }
101 return false;
102 }
103
104 } // namespace content_settings
105