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 8#include <vector> 9 10#include "base/basictypes.h" 11#include "components/content_settings/core/browser/content_settings_observable_provider.h" 12#include "components/content_settings/core/browser/content_settings_origin_identifier_value_map.h" 13#include "components/content_settings/core/common/content_settings_pattern.h" 14#include "components/content_settings/core/common/content_settings_types.h" 15 16namespace content_settings { 17 18// The class MockProvider is a mock for a non default content settings provider. 19class MockProvider : public ObservableProvider { 20 public: 21 MockProvider(); 22 explicit MockProvider(bool read_only); 23 virtual ~MockProvider(); 24 25 virtual RuleIterator* GetRuleIterator( 26 ContentSettingsType content_type, 27 const ResourceIdentifier& resource_identifier, 28 bool incognito) const OVERRIDE; 29 30 // The MockProvider is only able to store one content setting. So every time 31 // this method is called the previously set content settings is overwritten. 32 virtual bool SetWebsiteSetting( 33 const ContentSettingsPattern& requesting_url_pattern, 34 const ContentSettingsPattern& embedding_url_pattern, 35 ContentSettingsType content_type, 36 const ResourceIdentifier& resource_identifier, 37 base::Value* value) OVERRIDE; 38 39 virtual void ClearAllContentSettingsRules( 40 ContentSettingsType content_type) OVERRIDE {} 41 42 virtual void ShutdownOnUIThread() OVERRIDE; 43 44 void set_read_only(bool read_only) { 45 read_only_ = read_only; 46 } 47 48 bool read_only() const { 49 return read_only_; 50 } 51 52 private: 53 OriginIdentifierValueMap value_map_; 54 bool read_only_; 55 56 DISALLOW_COPY_AND_ASSIGN(MockProvider); 57}; 58 59} // namespace content_settings 60 61#endif // CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_MOCK_PROVIDER_H_ 62