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/mock_settings_observer.h"
6 
7 #include "chrome/browser/chrome_notification_types.h"
8 #include "components/content_settings/core/browser/content_settings_details.h"
9 #include "url/gurl.h"
10 
MockSettingsObserver(HostContentSettingsMap * map)11 MockSettingsObserver::MockSettingsObserver(HostContentSettingsMap* map)
12     : map_(map) {
13   observer_.Add(map_);
14 }
15 
~MockSettingsObserver()16 MockSettingsObserver::~MockSettingsObserver() {}
17 
OnContentSettingChanged(const ContentSettingsPattern & primary_pattern,const ContentSettingsPattern & secondary_pattern,ContentSettingsType content_type)18 void MockSettingsObserver::OnContentSettingChanged(
19     const ContentSettingsPattern& primary_pattern,
20     const ContentSettingsPattern& secondary_pattern,
21     ContentSettingsType content_type) {
22   const ContentSettingsDetails details(primary_pattern, secondary_pattern,
23                                        content_type);
24   OnContentSettingsChanged(map_,
25                            details.type(),
26                            details.update_all_types(),
27                            details.primary_pattern(),
28                            details.secondary_pattern(),
29                            details.update_all());
30   // This checks that calling a Get function from an observer doesn't
31   // deadlock.
32   GURL url("http://random-hostname.com/");
33   map_->GetContentSetting(url, url, ContentSettingsType::COOKIES);
34 }
35