Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: chrome/browser/services/gcm/push_messaging_browsertest.cc

Issue 785993003: [Push] Register: require user-visible to be present in the manifest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 gcm_service_ = static_cast<FakeGCMProfileService*>( 134 gcm_service_ = static_cast<FakeGCMProfileService*>(
135 GCMProfileServiceFactory::GetInstance()->SetTestingFactoryAndUse( 135 GCMProfileServiceFactory::GetInstance()->SetTestingFactoryAndUse(
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 virtual 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("files/push_messaging/test.html"));
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 private: 165 private:
166 scoped_ptr<net::SpawnedTestServer> https_server_; 166 scoped_ptr<net::SpawnedTestServer> https_server_;
167 FakeGCMProfileService* gcm_service_; 167 FakeGCMProfileService* gcm_service_;
168 168
169 DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest); 169 DISALLOW_COPY_AND_ASSIGN(PushMessagingBrowserTest);
170 }; 170 };
171 171
172 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterSuccess) { 172 class PushMessagingBadManifestBrowserTest : public PushMessagingBrowserTest {
173 void loadTestPage() override {
174 ui_test_utils::NavigateToURL(
175 browser(),
176 https_server()->GetURL("files/push_messaging/test_bad_manifest.html"));
Michael van Ouwerkerk 2014/12/11 15:55:35 Well, if you really prefer to use a subclass: all
Miguel Garcia 2014/12/11 16:20:07 Done.
177 };
178 };
179
180 IN_PROC_BROWSER_TEST_F(PushMessagingBadManifestBrowserTest,
181 RegisterFailsNotVisibleMessages) {
173 std::string script_result; 182 std::string script_result;
174 183
175 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 184 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
185 ASSERT_EQ("ok - service worker registered", script_result);
186 ASSERT_TRUE(RunScript("registerPush()", &script_result));
187 EXPECT_EQ("AbortError - Registration failed - permission denied",
188 script_result);
189 }
190
191 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
192 RegisterSuccessNotificationsGranted) {
193 std::string script_result;
194
195 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
176 ASSERT_EQ("ok - service worker registered", script_result); 196 ASSERT_EQ("ok - service worker registered", script_result);
177 197
178 InfoBarResponder accepting_responder(browser(), true); 198 InfoBarResponder accepting_responder(browser(), true);
179 ASSERT_TRUE(RunScript("requestNotificationPermission()", &script_result)); 199 ASSERT_TRUE(RunScript("requestNotificationPermission()", &script_result));
180 ASSERT_EQ("permission status - granted", script_result); 200 ASSERT_EQ("permission status - granted", script_result);
181 201
182 ASSERT_TRUE(RunScript("registerPush()", &script_result)); 202 ASSERT_TRUE(RunScript("registerPush()", &script_result));
183 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1", script_result); 203 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1", script_result);
184 204
185 PushMessagingApplicationId app_id(https_server()->GetURL(""), 0L); 205 PushMessagingApplicationId app_id(https_server()->GetURL(""), 0L);
186 EXPECT_EQ(app_id.ToString(), gcm_service()->last_registered_app_id()); 206 EXPECT_EQ(app_id.ToString(), gcm_service()->last_registered_app_id());
187 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]); 207 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
188 } 208 }
189 209
190 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 210 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
191 RegisterFailureNoPushPermission) { 211 RegisterSuccessNotificationsPrompt) {
192 std::string script_result; 212 std::string script_result;
193 213
194 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 214 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
195 ASSERT_EQ("ok - service worker registered", script_result); 215 ASSERT_EQ("ok - service worker registered", script_result);
196 216
217 InfoBarResponder accepting_responder(browser(), true);
197 ASSERT_TRUE(RunScript("registerPush()", &script_result)); 218 ASSERT_TRUE(RunScript("registerPush()", &script_result));
198 EXPECT_EQ("AbortError - Registration failed - permission denied", 219 EXPECT_EQ(std::string(kPushMessagingEndpoint) + " - 1", script_result);
199 script_result); 220
221 PushMessagingApplicationId app_id(https_server()->GetURL(""), 0L);
222 EXPECT_EQ(app_id.ToString(), gcm_service()->last_registered_app_id());
223 EXPECT_EQ("1234567890", gcm_service()->last_registered_sender_ids()[0]);
200 } 224 }
201 225
202 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, 226 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest,
203 RegisterFailureNotificationsBlocked) { 227 RegisterFailureNotificationsBlocked) {
204 std::string script_result; 228 std::string script_result;
205 229
206 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 230 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
207 ASSERT_EQ("ok - service worker registered", script_result); 231 ASSERT_EQ("ok - service worker registered", script_result);
208 232
209 InfoBarResponder cancelling_responder(browser(), false); 233 InfoBarResponder cancelling_responder(browser(), false);
210 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result)); 234 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
211 ASSERT_EQ("permission status - denied", script_result); 235 ASSERT_EQ("permission status - denied", script_result);
212 236
213 ASSERT_TRUE(RunScript("registerPush()", &script_result)); 237 ASSERT_TRUE(RunScript("registerPush()", &script_result));
214 EXPECT_EQ("AbortError - Registration failed - permission denied", 238 EXPECT_EQ("AbortError - Registration failed - permission denied",
215 script_result); 239 script_result);
216 } 240 }
217 241
218 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterFailureNoSenderId) { 242 IN_PROC_BROWSER_TEST_F(PushMessagingBrowserTest, RegisterFailureNoManifest) {
219 std::string script_result; 243 std::string script_result;
220 244
221 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result)); 245 ASSERT_TRUE(RunScript("registerServiceWorker()", &script_result));
222 ASSERT_EQ("ok - service worker registered", script_result); 246 ASSERT_EQ("ok - service worker registered", script_result);
223 247
224 InfoBarResponder accepting_responder(browser(), true); 248 InfoBarResponder accepting_responder(browser(), true);
225 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result)); 249 ASSERT_TRUE(RunScript("requestNotificationPermission();", &script_result));
226 ASSERT_EQ("permission status - granted", script_result); 250 ASSERT_EQ("permission status - granted", script_result);
227 251
228 ASSERT_TRUE(RunScript("removeManifest()", &script_result)); 252 ASSERT_TRUE(RunScript("removeManifest()", &script_result));
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 428
405 ASSERT_TRUE(RunScript("registerPush()", &script_result)); 429 ASSERT_TRUE(RunScript("registerPush()", &script_result));
406 EXPECT_EQ("AbortError - Registration failed - permission denied", 430 EXPECT_EQ("AbortError - Registration failed - permission denied",
407 script_result); 431 script_result);
408 432
409 ASSERT_TRUE(RunScript("hasPermission()", &script_result)); 433 ASSERT_TRUE(RunScript("hasPermission()", &script_result));
410 EXPECT_EQ("permission status - denied", script_result); 434 EXPECT_EQ("permission status - denied", script_result);
411 } 435 }
412 436
413 } // namespace gcm 437 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698