1// Copyright (c) 2012 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/notifications/notification_test_util.h"
6
7MockNotificationDelegate::MockNotificationDelegate(const std::string& id)
8    : id_(id) {}
9
10MockNotificationDelegate::~MockNotificationDelegate() {}
11
12std::string MockNotificationDelegate::id() const { return id_; }
13
14content::WebContents* MockNotificationDelegate::GetWebContents() const {
15  return NULL;
16}
17
18StubNotificationUIManager::StubNotificationUIManager(const GURL& welcome_origin)
19    : notification_(GURL(),
20                    GURL(),
21                    base::string16(),
22                    base::string16(),
23                    blink::WebTextDirectionDefault,
24                    base::string16(),
25                    base::string16(),
26                    new MockNotificationDelegate("stub")),
27      welcome_origin_(welcome_origin),
28      welcomed_(false),
29      added_notifications_(0U) {}
30
31StubNotificationUIManager::~StubNotificationUIManager() {}
32
33void StubNotificationUIManager::Add(const Notification& notification,
34                                    Profile* profile) {
35  // Make a deep copy of the notification that we can inspect.
36  notification_ = notification;
37  profile_ = profile;
38  ++added_notifications_;
39
40  if (notification.origin_url() == welcome_origin_)
41    welcomed_ = true;
42}
43
44bool StubNotificationUIManager::Update(const Notification& notification,
45                                       Profile* profile) {
46  // Make a deep copy of the notification that we can inspect.
47  notification_ = notification;
48  profile_ = profile;
49  return true;
50}
51
52const Notification* StubNotificationUIManager::FindById(const std::string& id)
53    const {
54  return (notification_.id() == id) ? &notification_ : NULL;
55}
56
57bool StubNotificationUIManager::CancelById(const std::string& notification_id) {
58  dismissed_id_ = notification_id;
59  return true;
60}
61
62std::set<std::string>
63StubNotificationUIManager::GetAllIdsByProfileAndSourceOrigin(
64    Profile* profile,
65    const GURL& source) {
66  std::set<std::string> notification_ids;
67  if (source == notification_.origin_url() && profile->IsSameProfile(profile_))
68    notification_ids.insert(notification_.delegate_id());
69  return notification_ids;
70}
71
72bool StubNotificationUIManager::CancelAllBySourceOrigin(
73    const GURL& source_origin) {
74  return false;
75}
76
77bool StubNotificationUIManager::CancelAllByProfile(Profile* profile) {
78  return false;
79}
80
81void StubNotificationUIManager::CancelAll() {}
82