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 #include "chrome/browser/extensions/api/notification/notification_api.h" | 5 #include "chrome/browser/extensions/api/notification/notification_api.h" |
6 #include "chrome/browser/extensions/extension_apitest.h" | 6 #include "chrome/browser/extensions/extension_apitest.h" |
7 #include "chrome/browser/extensions/extension_function_test_utils.h" | 7 #include "chrome/browser/extensions/extension_function_test_utils.h" |
8 #include "chrome/common/chrome_switches.h" | 8 #include "chrome/common/chrome_switches.h" |
9 | 9 |
10 using extensions::Extension; | 10 using extensions::Extension; |
(...skipping 22 matching lines...) Expand all Loading... |
33 notification_function( | 33 notification_function( |
34 new extensions::NotificationCreateFunction()); | 34 new extensions::NotificationCreateFunction()); |
35 | 35 |
36 notification_function->set_extension(empty_extension.get()); | 36 notification_function->set_extension(empty_extension.get()); |
37 notification_function->set_has_callback(true); | 37 notification_function->set_has_callback(true); |
38 | 38 |
39 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( | 39 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( |
40 notification_function, | 40 notification_function, |
41 "[\"\", " // Empty string: ask API to generate ID | 41 "[\"\", " // Empty string: ask API to generate ID |
42 "{" | 42 "{" |
43 "\"type\": \"simple\"," | 43 "\"templateType\": \"simple\"," |
44 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" | 44 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" |
45 "common/images/chrome_logo_2x.png\"," | 45 "common/images/chrome_logo_2x.png\"," |
46 "\"title\": \"Attention!\"," | 46 "\"title\": \"Attention!\"," |
47 "\"message\": \"Check out Cirque du Soleil\"" | 47 "\"message\": \"Check out Cirque du Soleil\"" |
48 "}]", | 48 "}]", |
49 browser(), utils::NONE)); | 49 browser(), utils::NONE)); |
50 | 50 |
51 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType()); | 51 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType()); |
52 ASSERT_TRUE(result->GetAsString(¬ification_id)); | 52 ASSERT_TRUE(result->GetAsString(¬ification_id)); |
53 ASSERT_TRUE(notification_id.length() > 0); | 53 ASSERT_TRUE(notification_id.length() > 0); |
54 } | 54 } |
55 | 55 |
56 // Update the existing notification. | 56 // Update the existing notification. |
57 { | 57 { |
58 scoped_refptr<extensions::NotificationUpdateFunction> | 58 scoped_refptr<extensions::NotificationUpdateFunction> |
59 notification_function( | 59 notification_function( |
60 new extensions::NotificationUpdateFunction()); | 60 new extensions::NotificationUpdateFunction()); |
61 | 61 |
62 notification_function->set_extension(empty_extension.get()); | 62 notification_function->set_extension(empty_extension.get()); |
63 notification_function->set_has_callback(true); | 63 notification_function->set_has_callback(true); |
64 | 64 |
65 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( | 65 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( |
66 notification_function, | 66 notification_function, |
67 "[\"" + notification_id + "\", " | 67 "[\"" + notification_id + "\", " |
68 "{" | 68 "{" |
69 "\"type\": \"simple\"," | 69 "\"templateType\": \"simple\"," |
70 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" | 70 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" |
71 "common/images/chrome_logo_2x.png\"," | 71 "common/images/chrome_logo_2x.png\"," |
72 "\"title\": \"Attention!\"," | 72 "\"title\": \"Attention!\"," |
73 "\"message\": \"Too late! The show ended yesterday\"" | 73 "\"message\": \"Too late! The show ended yesterday\"" |
74 "}]", | 74 "}]", |
75 browser(), utils::NONE)); | 75 browser(), utils::NONE)); |
76 | 76 |
77 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType()); | 77 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType()); |
78 bool copy_bool_value = false; | 78 bool copy_bool_value = false; |
79 ASSERT_TRUE(result->GetAsBoolean(©_bool_value)); | 79 ASSERT_TRUE(result->GetAsBoolean(©_bool_value)); |
(...skipping 12 matching lines...) Expand all Loading... |
92 notification_function( | 92 notification_function( |
93 new extensions::NotificationUpdateFunction()); | 93 new extensions::NotificationUpdateFunction()); |
94 | 94 |
95 notification_function->set_extension(empty_extension.get()); | 95 notification_function->set_extension(empty_extension.get()); |
96 notification_function->set_has_callback(true); | 96 notification_function->set_has_callback(true); |
97 | 97 |
98 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( | 98 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( |
99 notification_function, | 99 notification_function, |
100 "[\"xxxxxxxxxxxx\", " | 100 "[\"xxxxxxxxxxxx\", " |
101 "{" | 101 "{" |
102 "\"type\": \"simple\"," | 102 "\"templateType\": \"simple\"," |
103 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" | 103 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" |
104 "common/images/chrome_logo_2x.png\"," | 104 "common/images/chrome_logo_2x.png\"," |
105 "\"title\": \"!\"," | 105 "\"title\": \"!\"," |
106 "\"message\": \"!\"" | 106 "\"message\": \"!\"" |
107 "}]", | 107 "}]", |
108 browser(), utils::NONE)); | 108 browser(), utils::NONE)); |
109 | 109 |
110 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType()); | 110 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType()); |
111 bool copy_bool_value = false; | 111 bool copy_bool_value = false; |
112 ASSERT_TRUE(result->GetAsBoolean(©_bool_value)); | 112 ASSERT_TRUE(result->GetAsBoolean(©_bool_value)); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 new extensions::NotificationCreateFunction()); | 158 new extensions::NotificationCreateFunction()); |
159 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); | 159 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); |
160 | 160 |
161 notification_create_function->set_extension(empty_extension.get()); | 161 notification_create_function->set_extension(empty_extension.get()); |
162 notification_create_function->set_has_callback(true); | 162 notification_create_function->set_has_callback(true); |
163 | 163 |
164 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( | 164 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( |
165 notification_create_function, | 165 notification_create_function, |
166 "[\"\", " | 166 "[\"\", " |
167 "{" | 167 "{" |
168 "\"type\": \"base\"," | 168 "\"templateType\": \"basic\"," |
169 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" | 169 "\"iconUrl\": \"http://www.google.com/intl/en/chrome/assets/" |
170 "common/images/chrome_logo_2x.png\"," | 170 "common/images/chrome_logo_2x.png\"," |
171 "\"title\": \"Attention!\"," | 171 "\"title\": \"Attention!\"," |
172 "\"message\": \"Check out Cirque du Soleil\"," | 172 "\"message\": \"Check out Cirque du Soleil\"," |
173 "\"priority\": 1," | 173 "\"priority\": 1," |
174 "\"timestamp\": \"Tue, 15 Nov 1994 12:45:26 GMT\"," | 174 "\"eventTime\": \"Tue, 15 Nov 1994 12:45:26 GMT\"," |
175 "\"secondIconUrl\": \"http://www.google.com/logos/2012/" | 175 "\"buttons\": [" |
176 "Day-Of-The-Dead-12-hp.jpg\"," | 176 " {" |
177 "\"unreadCount\": 42," | 177 " \"title\": \"Up\"," |
178 "\"buttonOneTitle\": \"Up\"," | 178 " \"iconUrl\":\"http://www.google.com/logos/2012/\"" |
179 "\"buttonTwoTitle\": \"Down\"," | 179 " }," |
| 180 " {" |
| 181 " \"title\": \"Down\"" // note: no iconUrl |
| 182 " }" |
| 183 "]," |
180 "\"expandedMessage\": \"This is a longer expanded message.\"," | 184 "\"expandedMessage\": \"This is a longer expanded message.\"," |
181 "\"imageUrl\": \"http://www.google.com/logos/2012/election12-hp.jpg\"" | 185 "\"imageUrl\": \"http://www.google.com/logos/2012/election12-hp.jpg\"" |
182 "}]", | 186 "}]", |
183 browser(), utils::NONE)); | 187 browser(), utils::NONE)); |
184 | 188 |
185 std::string notification_id; | 189 std::string notification_id; |
186 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType()); | 190 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType()); |
187 ASSERT_TRUE(result->GetAsString(¬ification_id)); | 191 ASSERT_TRUE(result->GetAsString(¬ification_id)); |
188 ASSERT_TRUE(notification_id.length() > 0); | 192 ASSERT_TRUE(notification_id.length() > 0); |
189 } | 193 } |
190 | 194 |
191 IN_PROC_BROWSER_TEST_F(NotificationApiTest, TestMultipleItemNotification) { | 195 IN_PROC_BROWSER_TEST_F(NotificationApiTest, TestMultipleItemNotification) { |
192 scoped_refptr<extensions::NotificationCreateFunction> | 196 scoped_refptr<extensions::NotificationCreateFunction> |
193 notification_create_function( | 197 notification_create_function( |
194 new extensions::NotificationCreateFunction()); | 198 new extensions::NotificationCreateFunction()); |
195 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); | 199 scoped_refptr<Extension> empty_extension(utils::CreateEmptyExtension()); |
196 | 200 |
197 notification_create_function->set_extension(empty_extension.get()); | 201 notification_create_function->set_extension(empty_extension.get()); |
198 notification_create_function->set_has_callback(true); | 202 notification_create_function->set_has_callback(true); |
199 | 203 |
200 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( | 204 scoped_ptr<base::Value> result(utils::RunFunctionAndReturnSingleResult( |
201 notification_create_function, | 205 notification_create_function, |
202 "[\"\", " | 206 "[\"\", " |
203 "{" | 207 "{" |
204 "\"type\": \"multiple\"," | 208 "\"templateType\": \"list\"," |
205 "\"iconUrl\": \"https://code.google.com/p/chromium/logo\"," | 209 "\"iconUrl\": \"https://code.google.com/p/chromium/logo\"," |
206 "\"title\": \"Multiple Item Notification Title\"," | 210 "\"title\": \"Multiple Item Notification Title\"," |
207 "\"message\": \"Multiple item notification message.\"," | 211 "\"message\": \"Multiple item notification message.\"," |
208 "\"items\": [" | 212 "\"items\": [" |
209 " {\"title\": \"Brett Boe\"," | 213 " {\"title\": \"Brett Boe\"," |
210 " \"message\": \"This is an important message!\"}," | 214 " \"message\": \"This is an important message!\"}," |
211 " {\"title\": \"Carla Coe\"," | 215 " {\"title\": \"Carla Coe\"," |
212 " \"message\": \"Just took a look at the proposal\"}," | 216 " \"message\": \"Just took a look at the proposal\"}," |
213 " {\"title\": \"Donna Doe\"," | 217 " {\"title\": \"Donna Doe\"," |
214 " \"message\": \"I see that you went to the conference\"}," | 218 " \"message\": \"I see that you went to the conference\"}," |
215 " {\"title\": \"Frank Foe\"," | 219 " {\"title\": \"Frank Foe\"," |
216 " \"message\": \"I ate Harry's sandwich!\"}," | 220 " \"message\": \"I ate Harry's sandwich!\"}," |
217 " {\"title\": \"Grace Goe\"," | 221 " {\"title\": \"Grace Goe\"," |
218 " \"message\": \"I saw Frank steal a sandwich :-)\"}" | 222 " \"message\": \"I saw Frank steal a sandwich :-)\"}" |
219 "]," | 223 "]," |
220 "\"priority\": 1," | 224 "\"priority\": 1," |
221 "\"timestamp\": \"Fri, 16 Nov 2012 01:17:15 GMT\"" | 225 "\"eventTime\": \"Fri, 16 Nov 2012 01:17:15 GMT\"" |
222 "}]", | 226 "}]", |
223 browser(), utils::NONE)); | 227 browser(), utils::NONE)); |
224 // TODO(dharcourt): [...], items = [{title: foo, message: bar}, ...], [...] | 228 // TODO(dharcourt): [...], items = [{title: foo, message: bar}, ...], [...] |
225 | 229 |
226 std::string notification_id; | 230 std::string notification_id; |
227 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType()); | 231 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType()); |
228 ASSERT_TRUE(result->GetAsString(¬ification_id)); | 232 ASSERT_TRUE(result->GetAsString(¬ification_id)); |
229 ASSERT_TRUE(notification_id.length() > 0); | 233 ASSERT_TRUE(notification_id.length() > 0); |
230 } | 234 } |
231 | 235 |
232 IN_PROC_BROWSER_TEST_F(NotificationApiTest, TestEvents) { | 236 IN_PROC_BROWSER_TEST_F(NotificationApiTest, TestEvents) { |
233 ASSERT_TRUE(RunExtensionTest("notification/api/events")) << message_; | 237 ASSERT_TRUE(RunExtensionTest("notification/api/events")) << message_; |
234 } | 238 } |
OLD | NEW |