OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TEST_UTIL_H_ | 5 #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TEST_UTIL_H_ |
6 #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TEST_UTIL_H_ | 6 #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TEST_UTIL_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "chrome/browser/notifications/notification.h" | 11 #include "chrome/browser/notifications/notification.h" |
12 #include "chrome/browser/notifications/notification_object_proxy.h" | 12 #include "chrome/browser/notifications/notification_object_proxy.h" |
13 #include "chrome/browser/notifications/notification_ui_manager.h" | 13 #include "chrome/browser/notifications/notification_ui_manager.h" |
14 #include "chrome/browser/notifications/sync_notifier/chrome_notifier_service.h" | 14 #include "chrome/browser/notifications/sync_notifier/chrome_notifier_service.h" |
15 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
16 #include "ui/gfx/size.h" | 16 #include "ui/gfx/size.h" |
17 | 17 |
18 // NotificationDelegate which does nothing, useful for testing when | 18 // NotificationDelegate which does nothing, useful for testing when |
19 // the notification events are not important. | 19 // the notification events are not important. |
20 class MockNotificationDelegate : public NotificationDelegate { | 20 class MockNotificationDelegate : public NotificationDelegate { |
21 public: | 21 public: |
22 explicit MockNotificationDelegate(const std::string& id); | 22 explicit MockNotificationDelegate(const std::string& id); |
23 | 23 |
24 // NotificationDelegate interface. | 24 // NotificationDelegate interface. |
25 virtual void Display() OVERRIDE {} | 25 virtual void Display() override {} |
26 virtual void Error() OVERRIDE {} | 26 virtual void Error() override {} |
27 virtual void Close(bool by_user) OVERRIDE {} | 27 virtual void Close(bool by_user) override {} |
28 virtual void Click() OVERRIDE {} | 28 virtual void Click() override {} |
29 virtual std::string id() const OVERRIDE; | 29 virtual std::string id() const override; |
30 virtual content::WebContents* GetWebContents() const OVERRIDE; | 30 virtual content::WebContents* GetWebContents() const override; |
31 | 31 |
32 private: | 32 private: |
33 virtual ~MockNotificationDelegate(); | 33 virtual ~MockNotificationDelegate(); |
34 | 34 |
35 std::string id_; | 35 std::string id_; |
36 | 36 |
37 DISALLOW_COPY_AND_ASSIGN(MockNotificationDelegate); | 37 DISALLOW_COPY_AND_ASSIGN(MockNotificationDelegate); |
38 }; | 38 }; |
39 | 39 |
40 // Mock implementation of Javascript object proxy which logs events that | 40 // Mock implementation of Javascript object proxy which logs events that |
41 // would have been fired on it. Useful for tests where the sequence of | 41 // would have been fired on it. Useful for tests where the sequence of |
42 // notification events needs to be verified. | 42 // notification events needs to be verified. |
43 // | 43 // |
44 // |Logger| class provided in template must implement method | 44 // |Logger| class provided in template must implement method |
45 // static void log(string); | 45 // static void log(string); |
46 template<class Logger> | 46 template<class Logger> |
47 class LoggingNotificationDelegate : public NotificationDelegate { | 47 class LoggingNotificationDelegate : public NotificationDelegate { |
48 public: | 48 public: |
49 explicit LoggingNotificationDelegate(std::string id) : notification_id_(id) {} | 49 explicit LoggingNotificationDelegate(std::string id) : notification_id_(id) {} |
50 | 50 |
51 // NotificationObjectProxy override | 51 // NotificationObjectProxy override |
52 virtual void Display() OVERRIDE { | 52 virtual void Display() override { |
53 Logger::log("notification displayed\n"); | 53 Logger::log("notification displayed\n"); |
54 } | 54 } |
55 virtual void Error() OVERRIDE { | 55 virtual void Error() override { |
56 Logger::log("notification error\n"); | 56 Logger::log("notification error\n"); |
57 } | 57 } |
58 virtual void Click() OVERRIDE { | 58 virtual void Click() override { |
59 Logger::log("notification clicked\n"); | 59 Logger::log("notification clicked\n"); |
60 } | 60 } |
61 virtual void ButtonClick(int index) OVERRIDE { | 61 virtual void ButtonClick(int index) override { |
62 Logger::log("notification button clicked\n"); | 62 Logger::log("notification button clicked\n"); |
63 } | 63 } |
64 virtual void Close(bool by_user) OVERRIDE { | 64 virtual void Close(bool by_user) override { |
65 if (by_user) | 65 if (by_user) |
66 Logger::log("notification closed by user\n"); | 66 Logger::log("notification closed by user\n"); |
67 else | 67 else |
68 Logger::log("notification closed by script\n"); | 68 Logger::log("notification closed by script\n"); |
69 } | 69 } |
70 virtual std::string id() const OVERRIDE { | 70 virtual std::string id() const override { |
71 return notification_id_; | 71 return notification_id_; |
72 } | 72 } |
73 virtual content::WebContents* GetWebContents() const OVERRIDE { | 73 virtual content::WebContents* GetWebContents() const override { |
74 return NULL; | 74 return NULL; |
75 } | 75 } |
76 | 76 |
77 private: | 77 private: |
78 std::string notification_id_; | 78 std::string notification_id_; |
79 | 79 |
80 DISALLOW_COPY_AND_ASSIGN(LoggingNotificationDelegate); | 80 DISALLOW_COPY_AND_ASSIGN(LoggingNotificationDelegate); |
81 }; | 81 }; |
82 | 82 |
83 class StubNotificationUIManager : public NotificationUIManager { | 83 class StubNotificationUIManager : public NotificationUIManager { |
84 public: | 84 public: |
85 explicit StubNotificationUIManager(const GURL& welcome_origin); | 85 explicit StubNotificationUIManager(const GURL& welcome_origin); |
86 virtual ~StubNotificationUIManager(); | 86 virtual ~StubNotificationUIManager(); |
87 | 87 |
88 // Adds a notification to be displayed. Virtual for unit test override. | 88 // Adds a notification to be displayed. Virtual for unit test override. |
89 virtual void Add(const Notification& notification, Profile* profile) OVERRIDE; | 89 virtual void Add(const Notification& notification, Profile* profile) override; |
90 virtual bool Update(const Notification& notification, | 90 virtual bool Update(const Notification& notification, |
91 Profile* profile) OVERRIDE; | 91 Profile* profile) override; |
92 | 92 |
93 // Returns NULL if no notifications match the supplied ID, either currently | 93 // Returns NULL if no notifications match the supplied ID, either currently |
94 // displayed or in the queue. | 94 // displayed or in the queue. |
95 virtual const Notification* FindById(const std::string& delegate_id, | 95 virtual const Notification* FindById(const std::string& delegate_id, |
96 ProfileID profile_id) const OVERRIDE; | 96 ProfileID profile_id) const override; |
97 | 97 |
98 // Removes any notifications matching the supplied ID, either currently | 98 // Removes any notifications matching the supplied ID, either currently |
99 // displayed or in the queue. Returns true if anything was removed. | 99 // displayed or in the queue. Returns true if anything was removed. |
100 virtual bool CancelById(const std::string& delegate_id, | 100 virtual bool CancelById(const std::string& delegate_id, |
101 ProfileID profile_id) OVERRIDE; | 101 ProfileID profile_id) override; |
102 | 102 |
103 // Adds the delegate_id for each outstanding notification to the set | 103 // Adds the delegate_id for each outstanding notification to the set |
104 // |delegate_ids| (must not be NULL). | 104 // |delegate_ids| (must not be NULL). |
105 virtual std::set<std::string> GetAllIdsByProfileAndSourceOrigin( | 105 virtual std::set<std::string> GetAllIdsByProfileAndSourceOrigin( |
106 Profile* profile, | 106 Profile* profile, |
107 const GURL& source) OVERRIDE; | 107 const GURL& source) override; |
108 | 108 |
109 // Removes notifications matching the |source_origin| (which could be an | 109 // Removes notifications matching the |source_origin| (which could be an |
110 // extension ID). Returns true if anything was removed. | 110 // extension ID). Returns true if anything was removed. |
111 virtual bool CancelAllBySourceOrigin(const GURL& source_origin) OVERRIDE; | 111 virtual bool CancelAllBySourceOrigin(const GURL& source_origin) override; |
112 | 112 |
113 // Removes notifications matching |profile|. Returns true if any were removed. | 113 // Removes notifications matching |profile|. Returns true if any were removed. |
114 virtual bool CancelAllByProfile(ProfileID profile_id) OVERRIDE; | 114 virtual bool CancelAllByProfile(ProfileID profile_id) override; |
115 | 115 |
116 // Cancels all pending notifications and closes anything currently showing. | 116 // Cancels all pending notifications and closes anything currently showing. |
117 // Used when the app is terminating. | 117 // Used when the app is terminating. |
118 virtual void CancelAll() OVERRIDE; | 118 virtual void CancelAll() override; |
119 | 119 |
120 // Test hook to get the notification so we can check it | 120 // Test hook to get the notification so we can check it |
121 const Notification& notification() const { return notification_; } | 121 const Notification& notification() const { return notification_; } |
122 | 122 |
123 // Test hook to check the ID of the last notification cancelled. | 123 // Test hook to check the ID of the last notification cancelled. |
124 std::string& dismissed_id() { return dismissed_id_; } | 124 std::string& dismissed_id() { return dismissed_id_; } |
125 | 125 |
126 size_t added_notifications() const { return added_notifications_; } | 126 size_t added_notifications() const { return added_notifications_; } |
127 bool welcomed() const { return welcomed_; } | 127 bool welcomed() const { return welcomed_; } |
128 | 128 |
129 private: | 129 private: |
130 DISALLOW_COPY_AND_ASSIGN(StubNotificationUIManager); | 130 DISALLOW_COPY_AND_ASSIGN(StubNotificationUIManager); |
131 Notification notification_; | 131 Notification notification_; |
132 Profile* profile_; | 132 Profile* profile_; |
133 std::string dismissed_id_; | 133 std::string dismissed_id_; |
134 GURL welcome_origin_; | 134 GURL welcome_origin_; |
135 bool welcomed_; | 135 bool welcomed_; |
136 size_t added_notifications_; | 136 size_t added_notifications_; |
137 }; | 137 }; |
138 | 138 |
139 #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TEST_UTIL_H_ | 139 #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_TEST_UTIL_H_ |
OLD | NEW |