15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/mock_settings_observer.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/chrome_notification_types.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/host_content_settings_map.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/content_settings/core/browser/content_settings_details.h"
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)MockSettingsObserver::MockSettingsObserver(HostContentSettingsMap* map)
1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    : map_(map), observer_(this) {
1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  observer_.Add(map_);
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockSettingsObserver::~MockSettingsObserver() {}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void MockSettingsObserver::OnContentSettingChanged(
2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    const ContentSettingsPattern& primary_pattern,
2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    const ContentSettingsPattern& secondary_pattern,
2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    ContentSettingsType content_type,
2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    std::string resource_identifier) {
2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  const ContentSettingsDetails details(
2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      primary_pattern, secondary_pattern, content_type, resource_identifier);
2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  OnContentSettingsChanged(map_,
2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                           details.type(),
2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                           details.update_all_types(),
2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                           details.primary_pattern(),
3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                           details.secondary_pattern(),
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                           details.update_all());
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // This checks that calling a Get function from an observer doesn't
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // deadlock.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GURL url("http://random-hostname.com/");
3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  map_->GetContentSetting(
3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      url, url, CONTENT_SETTINGS_TYPE_IMAGES, std::string());
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
38