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 MessageCenterTrayObserver { | |
17 public: | |
18 MockDelegate() | |
19 : show_popups_success_(true), | |
20 show_message_center_success_(true) {} | |
21 virtual ~MockDelegate() {} virtual void OnMessageCenterTrayChanged() {} | |
stevenjb
2013/01/18 23:11:46
two lines
dewittj
2013/01/20 19:02:06
Done.
| |
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_tray_.reset(new MessageCenterTray(delegate_.get())); | |
48 message_center_ = message_center_tray_->message_center(); | |
49 } | |
50 | |
51 protected: | |
52 scoped_ptr<MockDelegate> delegate_; | |
53 scoped_ptr<MessageCenterTray> message_center_tray_; | |
54 message_center::MessageCenter* message_center_; | |
55 | |
56 private: | |
57 DISALLOW_COPY_AND_ASSIGN(MessageCenterTrayTest); | |
58 }; | |
59 | |
60 } // namespace | |
61 | |
62 TEST_F(MessageCenterTrayTest, BasicMessageCenter) { | |
63 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
64 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
65 | |
66 message_center_tray_->ShowMessageCenterBubble(); | |
67 | |
68 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
69 ASSERT_TRUE(message_center_tray_->IsMessageCenterVisible()); | |
70 | |
71 message_center_tray_->HideMessageCenterBubble(); | |
72 | |
73 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
74 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
75 | |
76 message_center_tray_->ToggleMessageCenterBubble(); | |
77 | |
78 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
79 ASSERT_TRUE(message_center_tray_->IsMessageCenterVisible()); | |
80 | |
81 message_center_tray_->ToggleMessageCenterBubble(); | |
82 | |
83 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
84 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
85 } | |
86 | |
87 TEST_F(MessageCenterTrayTest, BasicPopup) { | |
88 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
89 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
90 | |
91 message_center_tray_->ShowPopupBubble(); | |
92 | |
93 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
94 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
95 | |
96 message_center_->AddNotification( | |
97 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
98 "BasicPopup", | |
99 ASCIIToUTF16("Test Web Notification"), | |
100 ASCIIToUTF16("Notification message body."), | |
101 ASCIIToUTF16("www.test.org"), | |
102 "" /* extension id */, | |
103 NULL /* optional_fields */); | |
104 | |
105 ASSERT_TRUE(message_center_tray_->IsPopupVisible()); | |
106 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
107 | |
108 message_center_tray_->HidePopupBubble(); | |
109 | |
110 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
111 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
112 } | |
113 | |
114 TEST_F(MessageCenterTrayTest, MessageCenterClosesPopups) { | |
115 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
116 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
117 | |
118 message_center_->AddNotification( | |
119 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
120 "MessageCenterClosesPopups", | |
121 ASCIIToUTF16("Test Web Notification"), | |
122 ASCIIToUTF16("Notification message body."), | |
123 ASCIIToUTF16("www.test.org"), | |
124 "" /* extension id */, | |
125 NULL /* optional_fields */); | |
126 | |
127 ASSERT_TRUE(message_center_tray_->IsPopupVisible()); | |
128 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
129 | |
130 message_center_tray_->ShowMessageCenterBubble(); | |
131 | |
132 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
133 ASSERT_TRUE(message_center_tray_->IsMessageCenterVisible()); | |
134 | |
135 message_center_->AddNotification( | |
136 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
137 "MessageCenterClosesPopups2", | |
138 ASCIIToUTF16("Test Web Notification"), | |
139 ASCIIToUTF16("Notification message body."), | |
140 ASCIIToUTF16("www.test.org"), | |
141 "" /* extension id */, | |
142 NULL /* optional_fields */); | |
143 | |
144 message_center_tray_->ShowPopupBubble(); | |
145 | |
146 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
147 ASSERT_TRUE(message_center_tray_->IsMessageCenterVisible()); | |
148 | |
149 message_center_tray_->HideMessageCenterBubble(); | |
150 | |
151 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
152 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
153 } | |
154 | |
155 TEST_F(MessageCenterTrayTest, ShowBubbleFails) { | |
156 // Now the delegate will signal that it was unable to show a bubble. | |
157 delegate_->show_popups_success_ = false; | |
158 delegate_->show_message_center_success_ = false; | |
159 | |
160 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
161 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
162 | |
163 message_center_->AddNotification( | |
164 ui::notifications::NOTIFICATION_TYPE_SIMPLE, | |
165 "ShowBubbleFails", | |
166 ASCIIToUTF16("Test Web Notification"), | |
167 ASCIIToUTF16("Notification message body."), | |
168 ASCIIToUTF16("www.test.org"), | |
169 "" /* extension id */, | |
170 NULL /* optional_fields */); | |
171 | |
172 message_center_tray_->ShowPopupBubble(); | |
173 | |
174 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
175 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
176 | |
177 message_center_tray_->ShowMessageCenterBubble(); | |
178 | |
179 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
180 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
181 | |
182 message_center_tray_->HideMessageCenterBubble(); | |
183 | |
184 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
185 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
186 | |
187 message_center_tray_->ToggleMessageCenterBubble(); | |
188 | |
189 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
190 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
191 | |
192 message_center_tray_->HidePopupBubble(); | |
193 | |
194 ASSERT_FALSE(message_center_tray_->IsPopupVisible()); | |
195 ASSERT_FALSE(message_center_tray_->IsMessageCenterVisible()); | |
196 } | |
197 | |
198 } // namespace ui | |
OLD | NEW |