// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/content_settings/stub_settings_observer.h"

#include "chrome/browser/content_settings/host_content_settings_map.h"
#include "googleurl/src/gurl.h"

StubSettingsObserver::StubSettingsObserver()
    : last_notifier(NULL),
      counter(0) {
  registrar_.Add(this, NotificationType::CONTENT_SETTINGS_CHANGED,
                 NotificationService::AllSources());
}

StubSettingsObserver::~StubSettingsObserver() {}

void StubSettingsObserver::Observe(NotificationType type,
                                   const NotificationSource& source,
                                   const NotificationDetails& details) {
  ++counter;
  Source<HostContentSettingsMap> content_settings(source);
  Details<ContentSettingsDetails> settings_details(details);
  last_notifier = content_settings.ptr();
  last_pattern = settings_details.ptr()->pattern();
  last_update_all = settings_details.ptr()->update_all();
  last_update_all_types = settings_details.ptr()->update_all_types();
  last_type = settings_details.ptr()->type();
  // This checks that calling a Get function from an observer doesn't
  // deadlock.
  last_notifier->GetContentSettings(GURL("http://random-hostname.com/"));
}