OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2013 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 "ui/message_center/message_center_tray.h" | |
6 | |
7 #include "base/utf_string_conversions.h" | |
8 #include "testing/gtest/include/gtest/gtest.h" | |
9 #include "ui/message_center/message_center.h" | |
10 #include "ui/notifications/notification_types.h" | |
11 | |
12 namespace ui { | |
13 namespace { | |
14 | |
15 class MockDelegate : public MessageCenterTrayDelegate { | |
16 public: | |
17 MockDelegate() | |
18 : show_popups_success_(true), | |
19 show_message_center_success_(true) {} | |
20 virtual ~MockDelegate() {} | |
21 virtual void OnMessageCenterTrayChanged() {} | |
22 virtual bool ShowPopups(message_center::MessageBubbleBase* bubble) { | |
23 return show_message_center_success_; | |
24 } | |
25 virtual void HidePopups() {} | |
26 virtual void UpdatePopups() {} | |
27 virtual bool ShowMessageCenter(message_center::MessageBubbleBase* bubble) { | |
28 return show_popups_success_; | |
29 } | |
30 virtual void HideMessageCenter() {} | |
31 virtual void UpdateMessageCenter() {} | |
32 | |
33 bool show_popups_success_; | |
34 bool show_message_center_success_; | |
35 | |
36 private: | |
37 DISALLOW_COPY_AND_ASSIGN(MockDelegate); | |
38 }; | |
39 | |
40 class MessageCenterTrayTest : public testing::Test { | |
41 public: | |
42 MessageCenterTrayTest() {} | |
43 virtual ~MessageCenterTrayTest() {} | |
44 | |
45 virtual void SetUp() { | |
46 delegate_.reset(new MockDelegate); | |
47 message_center_.reset(new message_center::MessageCenter()); | |
48 message_center_tray_.reset( | |
49 new MessageCenterTray(delegate_.get(), message_center_.get())); | |
50 } | |
51 | |
52 protected: | |
53 scoped_ptr<MockDelegate> delegate_; | |
54 scoped_ptr<MessageCenterTray> message_center_tray_; | |
55 scoped_ptr<message_center::MessageCenter> message_center_; | |
56 | |
57 private: | |
58 DISALLOW_COPY_AND_ASSIGN(MessageCenterTrayTest); | |
59 }; | |
60 | |
61 } // namespace | |
62 | |
63 TEST_F(MessageCenterTrayTest, BasicMessageCenter) { | |
64 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
65 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
66 | |
67 message_center_tray_->ShowMessageCenterBubble(); | |
68 | |
69 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
70 ASSERT_TRUE(message_center_tray_->message_center_visible()); | |
71 | |
72 message_center_tray_->HideMessageCenterBubble(); | |
73 | |
74 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
75 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
76 | |
77 message_center_tray_->ToggleMessageCenterBubble(); | |
78 | |
79 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
80 ASSERT_TRUE(message_center_tray_->message_center_visible()); | |
81 | |
82 message_center_tray_->ToggleMessageCenterBubble(); | |
83 | |
84 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
85 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
86 } | |
87 | |
88 TEST_F(MessageCenterTrayTest, BasicPopup) { | |
89 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
90 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
91 | |
92 message_center_tray_->ShowPopupBubble(); | |
93 | |
94 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
95 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
96 | |
97 message_center_->AddNotification( | |
98 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
99 "BasicPopup", | |
100 ASCIIToUTF16("Test Web Notification"), | |
101 ASCIIToUTF16("Notification message body."), | |
102 ASCIIToUTF16("www.test.org"), | |
103 "" /* extension id */, | |
104 NULL /* optional_fields */); | |
105 | |
106 ASSERT_TRUE(message_center_tray_->popups_visible()); | |
107 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
108 | |
109 message_center_tray_->HidePopupBubble(); | |
110 | |
111 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
112 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
113 } | |
114 | |
115 TEST_F(MessageCenterTrayTest, MessageCenterClosesPopups) { | |
116 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
117 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
118 | |
119 message_center_->AddNotification( | |
120 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
121 "MessageCenterClosesPopups", | |
122 ASCIIToUTF16("Test Web Notification"), | |
123 ASCIIToUTF16("Notification message body."), | |
124 ASCIIToUTF16("www.test.org"), | |
125 "" /* extension id */, | |
126 NULL /* optional_fields */); | |
127 | |
128 ASSERT_TRUE(message_center_tray_->popups_visible()); | |
129 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
130 | |
131 message_center_tray_->ShowMessageCenterBubble(); | |
132 | |
133 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
134 ASSERT_TRUE(message_center_tray_->message_center_visible()); | |
135 | |
136 message_center_->AddNotification( | |
137 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
138 "MessageCenterClosesPopups2", | |
139 ASCIIToUTF16("Test Web Notification"), | |
140 ASCIIToUTF16("Notification message body."), | |
141 ASCIIToUTF16("www.test.org"), | |
142 "" /* extension id */, | |
143 NULL /* optional_fields */); | |
144 | |
145 message_center_tray_->ShowPopupBubble(); | |
146 | |
147 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
148 ASSERT_TRUE(message_center_tray_->message_center_visible()); | |
149 | |
150 message_center_tray_->HideMessageCenterBubble(); | |
151 | |
152 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
153 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
154 } | |
155 | |
156 TEST_F(MessageCenterTrayTest, ShowBubbleFails) { | |
157 // Now the delegate will signal that it was unable to show a bubble. | |
158 delegate_->show_popups_success_ = false; | |
159 delegate_->show_message_center_success_ = false; | |
160 | |
161 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
162 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
163 | |
164 message_center_->AddNotification( | |
165 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
166 "ShowBubbleFails", | |
167 ASCIIToUTF16("Test Web Notification"), | |
168 ASCIIToUTF16("Notification message body."), | |
169 ASCIIToUTF16("www.test.org"), | |
170 "" /* extension id */, | |
171 NULL /* optional_fields */); | |
172 | |
173 message_center_tray_->ShowPopupBubble(); | |
174 | |
Pete Williamson
2013/01/24 19:41:59
Why does show popup bubble fail here? It looks li
dewittj
2013/01/25 00:49:04
The delegate was configured to return false for Sh
| |
175 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
176 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
177 | |
178 message_center_tray_->ShowMessageCenterBubble(); | |
179 | |
180 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
181 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
182 | |
183 message_center_tray_->HideMessageCenterBubble(); | |
184 | |
185 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
186 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
187 | |
188 message_center_tray_->ToggleMessageCenterBubble(); | |
189 | |
190 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
191 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
192 | |
193 message_center_tray_->HidePopupBubble(); | |
194 | |
195 ASSERT_FALSE(message_center_tray_->popups_visible()); | |
196 ASSERT_FALSE(message_center_tray_->message_center_visible()); | |
197 } | |
198 | |
199 } // namespace ui | |
OLD | NEW |