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