OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <map> | 5 #include <map> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 browser()->profile(), &FakeGCMProfileService::Build)); | 136 browser()->profile(), &FakeGCMProfileService::Build)); |
137 gcm_service_->set_collect(true); | 137 gcm_service_->set_collect(true); |
138 | 138 |
139 loadTestPage(); | 139 loadTestPage(); |
140 | 140 |
141 InProcessBrowserTest::SetUpOnMainThread(); | 141 InProcessBrowserTest::SetUpOnMainThread(); |
142 } | 142 } |
143 | 143 |
144 void loadTestPage() { | 144 void loadTestPage() { |
145 ui_test_utils::NavigateToURL( | 145 ui_test_utils::NavigateToURL( |
146 browser(), https_server_->GetURL("files/push_messaging/test.html")); | 146 browser(), https_server_->GetURL(GetTestURL())); |
147 } | 147 } |
148 | 148 |
149 bool RunScript(const std::string& script, std::string* result) { | 149 bool RunScript(const std::string& script, std::string* result) { |
150 return content::ExecuteScriptAndExtractString( | 150 return content::ExecuteScriptAndExtractString( |
151 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(), | 151 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(), |
152 script, | 152 script, |
153 result); | 153 result); |
154 } | 154 } |
155 | 155 |
156 net::SpawnedTestServer* https_server() const { return https_server_.get(); } | 156 net::SpawnedTestServer* https_server() const { return https_server_.get(); } |
157 | 157 |
158 FakeGCMProfileService* gcm_service() const { return gcm_service_; } | 158 FakeGCMProfileService* gcm_service() const { return gcm_service_; } |
159 | 159 |
160 PushMessagingServiceImpl* push_service() { | 160 PushMessagingServiceImpl* push_service() { |
161 return static_cast<PushMessagingServiceImpl*>( | 161 return static_cast<PushMessagingServiceImpl*>( |
162 gcm_service_->push_messaging_service()); | 162 gcm_service_->push_messaging_service()); |
163 } | 163 } |
164 | 164 |
| 165 protected: |
| 166 virtual std::string GetTestURL() { |
| 167 return "files/push_messaging/test.html"; |
| 168 } |
| 169 |
165 private: | 170 private: |
166 scoped_ptr<net::SpawnedTestServer> https_server_; | 171 scoped_ptr<net::SpawnedTestServer> https_server_; |
167 FakeGCMProfileService* gcm_service_; | 172 FakeGCMProfileService* gcm_service_; |
168 | 173 |
169 DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest); | 174 DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest); |
170 }; | 175 }; |
171 | 176 |
172 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterSuccess) { | 177 class PushMessagingBadManifestBrowserTest : public PushMessagingBrowserTest { |
| 178 std::string GetTestURL() override { |
| 179 return "files/push_messaging/test_bad_manifest.html"; |
| 180 } |
| 181 }; |
| 182 |
| 183 IN_PROC_BROWSER_TEST_F(PushMessagingBadManifestBrowserTest, |
| 184 RegisterFailsNotVisibleMessages) { |
173 std::string script_result; | 185 std::string script_result; |
174 | 186 |
175 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); | 187 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); |
| 188 ASSERT_EQ("ok - service worker registered", script_result); |
| 189 ASSERT_TRUE(RunScript("registerPush()", &script_result)); |
| 190 EXPECT_EQ("AbortError - Registration failed - permission denied", |
| 191 script_result); |
| 192 } |
| 193 |
| 194 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
| 195 RegisterSuccessNotificationsGranted) { |
| 196 std::string script_result; |
| 197 |
| 198 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); |
176 ASSERT_EQ("ok - service worker registered", script_result); | 199 ASSERT_EQ("ok - service worker registered", script_result); |
177 | 200 |
178 InfoBarResponder accepting_responder(browser(), true); | 201 InfoBarResponder accepting_responder(browser(), true); |
179 ASSERT_TRUE(RunScript("requestNotificationPermission()", &script_result)); | 202 ASSERT_TRUE(RunScript("requestNotificationPermission()", &script_result)); |
180 ASSERT_EQ("permission status - granted", script_result); | 203 ASSERT_EQ("permission status - granted", script_result); |
181 | 204 |
182 ASSERT_TRUE(RunScript("registerPush()", &script_result)); | 205 ASSERT_TRUE(RunScript("registerPush()", &script_result)); |
183 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1-0", script_result); | 206 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1-0", script_result); |
184 | 207 |
185 PushMessagingApplicationId app_id(https_server()->GetURL(""), 0L); | 208 PushMessagingApplicationId app_id(https_server()->GetURL(""), 0L); |
186 EXPECT_EQ(app_id.ToString(), gcm_service()->last_registered_app_id()); | 209 EXPECT_EQ(app_id.ToString(), gcm_service()->last_registered_app_id()); |
187 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); | 210 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); |
188 } | 211 } |
189 | 212 |
190 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, | 213 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
191 RegisterFailureNoPushPermission) { | 214 RegisterSuccessNotificationsPrompt) { |
192 std::string script_result; | 215 std::string script_result; |
193 | 216 |
194 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); | 217 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); |
195 ASSERT_EQ("ok - service worker registered", script_result); | 218 ASSERT_EQ("ok - service worker registered", script_result); |
196 | 219 |
| 220 InfoBarResponder accepting_responder(browser(), true); |
197 ASSERT_TRUE(RunScript("registerPush()", &script_result)); | 221 ASSERT_TRUE(RunScript("registerPush()", &script_result)); |
198 EXPECT_EQ("AbortError - Registration failed - permission denied", | 222 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1-0", script_result); |
199 script_result); | 223 |
| 224 PushMessagingApplicationId app_id(https_server()->GetURL(""), 0L); |
| 225 EXPECT_EQ(app_id.ToString(), gcm_service()->last_registered_app_id()); |
| 226 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); |
200 } | 227 } |
201 | 228 |
202 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, | 229 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, |
203 RegisterFailureNotificationsBlocked) { | 230 RegisterFailureNotificationsBlocked) { |
204 std::string script_result; | 231 std::string script_result; |
205 | 232 |
206 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); | 233 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); |
207 ASSERT_EQ("ok - service worker registered", script_result); | 234 ASSERT_EQ("ok - service worker registered", script_result); |
208 | 235 |
209 InfoBarResponder cancelling_responder(browser(), false); | 236 InfoBarResponder cancelling_responder(browser(), false); |
210 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result)); | 237 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result)); |
211 ASSERT_EQ("permission status - denied", script_result); | 238 ASSERT_EQ("permission status - denied", script_result); |
212 | 239 |
213 ASSERT_TRUE(RunScript("registerPush()", &script_result)); | 240 ASSERT_TRUE(RunScript("registerPush()", &script_result)); |
214 EXPECT_EQ("AbortError - Registration failed - permission denied", | 241 EXPECT_EQ("AbortError - Registration failed - permission denied", |
215 script_result); | 242 script_result); |
216 } | 243 } |
217 | 244 |
218 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterFailureNoSenderId) { | 245 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterFailureNoManifest) { |
219 std::string script_result; | 246 std::string script_result; |
220 | 247 |
221 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); | 248 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); |
222 ASSERT_EQ("ok - service worker registered", script_result); | 249 ASSERT_EQ("ok - service worker registered", script_result); |
223 | 250 |
224 InfoBarResponder accepting_responder(browser(), true); | 251 InfoBarResponder accepting_responder(browser(), true); |
225 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result)); | 252 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result)); |
226 ASSERT_EQ("permission status - granted", script_result); | 253 ASSERT_EQ("permission status - granted", script_result); |
227 | 254 |
228 ASSERT_TRUE(RunScript("removeManifest()", &script_result)); | 255 ASSERT_TRUE(RunScript("removeManifest()", &script_result)); |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 | 431 |
405 ASSERT_TRUE(RunScript("registerPush()", &script_result)); | 432 ASSERT_TRUE(RunScript("registerPush()", &script_result)); |
406 EXPECT_EQ("AbortError - Registration failed - permission denied", | 433 EXPECT_EQ("AbortError - Registration failed - permission denied", |
407 script_result); | 434 script_result); |
408 | 435 |
409 ASSERT_TRUE(RunScript("hasPermission()", &script_result)); | 436 ASSERT_TRUE(RunScript("hasPermission()", &script_result)); |
410 EXPECT_EQ("permission status - denied", script_result); | 437 EXPECT_EQ("permission status - denied", script_result); |
411 } | 438 } |
412 | 439 |
413 } // namespace gcm | 440 } // namespace gcm |
OLD | NEW |