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 12 TestNotificationTracker::Event::Event() 13 : type(NOTIFICATION_ALL), 14 source(NotificationService::AllSources()), 15 details(NotificationService::NoDetails()) { 16 } 17 TestNotificationTracker::Event::Event(int t, 18 NotificationSource s, 19 NotificationDetails d) 20 : type(t), 21 source(s), 22 details(d) { 23 } 24 25 TestNotificationTracker::TestNotificationTracker() { 26 } 27 28 TestNotificationTracker::~TestNotificationTracker() { 29 } 30 31 void TestNotificationTracker::ListenFor( 32 int type, 33 const NotificationSource& source) { 34 registrar_.Add(this, type, source); 35 } 36 37 void TestNotificationTracker::Reset() { 38 events_.clear(); 39 } 40 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 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 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 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