• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "content/public/test/test_notification_tracker.h"
6 
7 #include "content/public/browser/notification_service.h"
8 #include "content/public/browser/notification_types.h"
9 
10 namespace content {
11 
Event()12 TestNotificationTracker::Event::Event()
13     : type(NOTIFICATION_ALL),
14       source(NotificationService::AllSources()),
15       details(NotificationService::NoDetails()) {
16 }
Event(int t,NotificationSource s,NotificationDetails d)17 TestNotificationTracker::Event::Event(int t,
18                                       NotificationSource s,
19                                       NotificationDetails d)
20     : type(t),
21       source(s),
22       details(d) {
23 }
24 
TestNotificationTracker()25 TestNotificationTracker::TestNotificationTracker() {
26 }
27 
~TestNotificationTracker()28 TestNotificationTracker::~TestNotificationTracker() {
29 }
30 
ListenFor(int type,const NotificationSource & source)31 void TestNotificationTracker::ListenFor(
32     int type,
33     const NotificationSource& source) {
34   registrar_.Add(this, type, source);
35 }
36 
Reset()37 void TestNotificationTracker::Reset() {
38   events_.clear();
39 }
40 
Check1AndReset(int type)41 bool TestNotificationTracker::Check1AndReset(int type) {
42   if (size() != 1) {
43     Reset();
44     return false;
45   }
46   bool success = events_[0].type == type;
47   Reset();
48   return success;
49 }
50 
Check2AndReset(int type1,int type2)51 bool TestNotificationTracker::Check2AndReset(int type1,
52                                              int type2) {
53   if (size() != 2) {
54     Reset();
55     return false;
56   }
57   bool success = events_[0].type == type1 && events_[1].type == type2;
58   Reset();
59   return success;
60 }
61 
Check3AndReset(int type1,int type2,int type3)62 bool TestNotificationTracker::Check3AndReset(int type1,
63                                              int type2,
64                                              int type3) {
65   if (size() != 3) {
66     Reset();
67     return false;
68   }
69   bool success = events_[0].type == type1 &&
70                  events_[1].type == type2 &&
71                  events_[2].type == type3;
72   Reset();
73   return success;
74 }
75 
Observe(int type,const NotificationSource & source,const NotificationDetails & details)76 void TestNotificationTracker::Observe(
77     int type,
78     const NotificationSource& source,
79     const NotificationDetails& details) {
80   events_.push_back(Event(type, source, details));
81 }
82 
83 }  // namespace content
84