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_MOCK_SETTINGS_OBSERVER_H_
6#define CHROME_BROWSER_CONTENT_SETTINGS_MOCK_SETTINGS_OBSERVER_H_
7
8#include "base/scoped_observer.h"
9#include "components/content_settings/core/browser/content_settings_observer.h"
10#include "components/content_settings/core/common/content_settings_types.h"
11#include "testing/gmock/include/gmock/gmock.h"
12
13class ContentSettingsPattern;
14class HostContentSettingsMap;
15
16class MockSettingsObserver : public content_settings::Observer {
17 public:
18  explicit MockSettingsObserver(HostContentSettingsMap* map);
19  virtual ~MockSettingsObserver();
20
21  void OnContentSettingChanged(const ContentSettingsPattern& primary_pattern,
22                               const ContentSettingsPattern& secondary_pattern,
23                               ContentSettingsType content_type,
24                               std::string resource_identifier) OVERRIDE;
25
26  MOCK_METHOD6(OnContentSettingsChanged,
27               void(HostContentSettingsMap*,
28                    ContentSettingsType,
29                    bool,
30                    const ContentSettingsPattern&,
31                    const ContentSettingsPattern&,
32                    bool));
33
34 private:
35  // The map that this Observer is watching.
36  HostContentSettingsMap* map_;
37
38  // Observer to watch for content settings changes.
39  ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_;
40};
41
42#endif  // CHROME_BROWSER_CONTENT_SETTINGS_MOCK_SETTINGS_OBSERVER_H_
43