// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/content_settings/content_settings_mock_provider.h" namespace content_settings { MockDefaultProvider::MockDefaultProvider( ContentSettingsType content_type, ContentSetting setting, bool is_managed, bool can_override) : content_type_(content_type), setting_(setting), is_managed_(is_managed), can_override_(can_override) { } MockDefaultProvider::~MockDefaultProvider() { } ContentSetting MockDefaultProvider::ProvideDefaultSetting( ContentSettingsType content_type) const { return content_type == content_type_ ? setting_ : CONTENT_SETTING_DEFAULT; } void MockDefaultProvider::UpdateDefaultSetting( ContentSettingsType content_type, ContentSetting setting) { if (can_override_ && content_type == content_type_) setting_ = setting; } bool MockDefaultProvider::DefaultSettingIsManaged( ContentSettingsType content_type) const { return content_type == content_type_ && is_managed_; } void MockDefaultProvider::ResetToDefaults() { } MockProvider::MockProvider() : requesting_url_pattern_(ContentSettingsPattern()), embedding_url_pattern_(ContentSettingsPattern()), content_type_(CONTENT_SETTINGS_TYPE_COOKIES), resource_identifier_(""), setting_(CONTENT_SETTING_DEFAULT), read_only_(false), is_managed_(false) {} MockProvider::MockProvider(ContentSettingsPattern requesting_url_pattern, ContentSettingsPattern embedding_url_pattern, ContentSettingsType content_type, ResourceIdentifier resource_identifier, ContentSetting setting, bool read_only, bool is_managed) : requesting_url_pattern_(requesting_url_pattern), embedding_url_pattern_(embedding_url_pattern), content_type_(content_type), resource_identifier_(resource_identifier), setting_(setting), read_only_(read_only), is_managed_(is_managed) {} MockProvider::~MockProvider() {} ContentSetting MockProvider::GetContentSetting( const GURL& requesting_url, const GURL& embedding_url, ContentSettingsType content_type, const ResourceIdentifier& resource_identifier) const { if (requesting_url_pattern_.Matches(requesting_url) && content_type_ == content_type && resource_identifier_ == resource_identifier) { return setting_; } return CONTENT_SETTING_DEFAULT; } void MockProvider::SetContentSetting( const ContentSettingsPattern& requesting_url_pattern, const ContentSettingsPattern& embedding_url_pattern, ContentSettingsType content_type, const ResourceIdentifier& resource_identifier, ContentSetting content_setting) { if (read_only_) return; requesting_url_pattern_ = ContentSettingsPattern(requesting_url_pattern); embedding_url_pattern_ = ContentSettingsPattern(embedding_url_pattern); content_type_ = content_type; resource_identifier_ = resource_identifier; setting_ = content_setting; } bool MockProvider::ContentSettingsTypeIsManaged(ContentSettingsType type) { if (type == content_type_) { return is_managed_; } return false; } } // namespace content_settings