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

Side by Side Diff: content/browser/background_sync/background_sync_browsertest.cc

Issue 1437883002: [Background Sync] Align exposed API with spec (Closed) Base URL: https://chromium.googlesource.com/chromium/src@remove-periodic
Patch Set: Created 5 years, 1 month 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/string_split.h" 10 #include "base/strings/string_split.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 // (assertion failure) if the tag isn't registered. 165 // (assertion failure) if the tag isn't registered.
166 bool OneShotPending(const std::string& tag); 166 bool OneShotPending(const std::string& tag);
167 167
168 void ClearStoragePartitionData(); 168 void ClearStoragePartitionData();
169 169
170 std::string PopConsoleString(); 170 std::string PopConsoleString();
171 bool PopConsole(const std::string& expected_msg); 171 bool PopConsole(const std::string& expected_msg);
172 bool RegisterServiceWorker(); 172 bool RegisterServiceWorker();
173 bool RegisterOneShot(const std::string& tag); 173 bool RegisterOneShot(const std::string& tag);
174 bool RegisterOneShotFromServiceWorker(const std::string& tag); 174 bool RegisterOneShotFromServiceWorker(const std::string& tag);
175 bool UnregisterOneShot(const std::string& tag);
176 bool UnregisterOneShotTwice(const std::string& tag);
177 bool GetRegistrationOneShot(const std::string& tag); 175 bool GetRegistrationOneShot(const std::string& tag);
178 bool GetRegistrationOneShotFromServiceWorker(const std::string& tag); 176 bool GetRegistrationOneShotFromServiceWorker(const std::string& tag);
179 bool MatchRegistrations(const std::string& script_result, 177 bool MatchRegistrations(const std::string& script_result,
180 const std::vector<std::string>& expected_tags); 178 const std::vector<std::string>& expected_tags);
181 bool GetRegistrationsOneShot(const std::vector<std::string>& expected_tags); 179 bool GetRegistrationsOneShot(const std::vector<std::string>& expected_tags);
182 bool GetRegistrationsOneShotFromServiceWorker( 180 bool GetRegistrationsOneShotFromServiceWorker(
183 const std::vector<std::string>& expected_tags); 181 const std::vector<std::string>& expected_tags);
184 bool CompleteDelayedOneShot(); 182 bool CompleteDelayedOneShot();
185 bool RejectDelayedOneShot(); 183 bool RejectDelayedOneShot();
186 bool NotifyWhenFinishedOneShot(const std::string& tag);
187 bool NotifyWhenFinishedImmediateOneShot(const std::string& expected_msg);
188 bool StoreRegistrationOneShot(const std::string& tag);
189 184
190 private: 185 private:
191 scoped_ptr<net::EmbeddedTestServer> https_server_; 186 scoped_ptr<net::EmbeddedTestServer> https_server_;
192 Shell* shell_ = nullptr; 187 Shell* shell_ = nullptr;
193 188
194 DISALLOW_COPY_AND_ASSIGN(BackgroundSyncBrowserTest); 189 DISALLOW_COPY_AND_ASSIGN(BackgroundSyncBrowserTest);
195 }; 190 };
196 191
197 void BackgroundSyncBrowserTest::SetOnline(bool online) { 192 void BackgroundSyncBrowserTest::SetOnline(bool online) {
198 ASSERT_TRUE(shell_); 193 ASSERT_TRUE(shell_);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 286
292 bool BackgroundSyncBrowserTest::RegisterOneShotFromServiceWorker( 287 bool BackgroundSyncBrowserTest::RegisterOneShotFromServiceWorker(
293 const std::string& tag) { 288 const std::string& tag) {
294 std::string script_result; 289 std::string script_result;
295 EXPECT_TRUE( 290 EXPECT_TRUE(
296 RunScript(BuildScriptString("registerOneShotFromServiceWorker", tag), 291 RunScript(BuildScriptString("registerOneShotFromServiceWorker", tag),
297 &script_result)); 292 &script_result));
298 return script_result == BuildExpectedResult(tag, "register sent to SW"); 293 return script_result == BuildExpectedResult(tag, "register sent to SW");
299 } 294 }
300 295
301 bool BackgroundSyncBrowserTest::UnregisterOneShot(const std::string& tag) {
302 std::string script_result;
303 EXPECT_TRUE(
304 RunScript(BuildScriptString("unregisterOneShot", tag), &script_result));
305 return script_result == BuildExpectedResult(tag, "unregistered");
306 }
307
308 bool BackgroundSyncBrowserTest::UnregisterOneShotTwice(const std::string& tag) {
309 std::string script_result;
310 EXPECT_TRUE(RunScript(BuildScriptString("unregisterOneShotTwice", tag),
311 &script_result));
312 return script_result ==
313 BuildExpectedResult(tag, "failed to unregister twice");
314 }
315
316 bool BackgroundSyncBrowserTest::GetRegistrationOneShot(const std::string& tag) { 296 bool BackgroundSyncBrowserTest::GetRegistrationOneShot(const std::string& tag) {
317 std::string script_result; 297 std::string script_result;
318 EXPECT_TRUE(RunScript(BuildScriptString("getRegistrationOneShot", tag), 298 EXPECT_TRUE(RunScript(BuildScriptString("getRegistrationOneShot", tag),
319 &script_result)); 299 &script_result));
320 return script_result == BuildExpectedResult(tag, "found"); 300 return script_result == BuildExpectedResult(tag, "found");
321 } 301 }
322 302
323 bool BackgroundSyncBrowserTest::GetRegistrationOneShotFromServiceWorker( 303 bool BackgroundSyncBrowserTest::GetRegistrationOneShotFromServiceWorker(
324 const std::string& tag) { 304 const std::string& tag) {
325 std::string script_result; 305 std::string script_result;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 EXPECT_TRUE(RunScript("completeDelayedOneShot()", &script_result)); 348 EXPECT_TRUE(RunScript("completeDelayedOneShot()", &script_result));
369 return script_result == BuildExpectedResult("delay", "completing"); 349 return script_result == BuildExpectedResult("delay", "completing");
370 } 350 }
371 351
372 bool BackgroundSyncBrowserTest::RejectDelayedOneShot() { 352 bool BackgroundSyncBrowserTest::RejectDelayedOneShot() {
373 std::string script_result; 353 std::string script_result;
374 EXPECT_TRUE(RunScript("rejectDelayedOneShot()", &script_result)); 354 EXPECT_TRUE(RunScript("rejectDelayedOneShot()", &script_result));
375 return script_result == BuildExpectedResult("delay", "rejecting"); 355 return script_result == BuildExpectedResult("delay", "rejecting");
376 } 356 }
377 357
378 bool BackgroundSyncBrowserTest::NotifyWhenFinishedOneShot(
379 const std::string& tag) {
380 EXPECT_TRUE(content::ExecuteScript(
381 shell_->web_contents(),
382 BuildScriptString("notifyWhenFinishedOneShot", tag)));
383 return PopConsole(BuildExpectedResult(tag, "finished"));
384 }
385
386 bool BackgroundSyncBrowserTest::NotifyWhenFinishedImmediateOneShot(
387 const std::string& expected_msg) {
388 std::string script_result;
389 EXPECT_TRUE(
390 RunScript("notifyWhenFinishedImmediateOneShot()", &script_result));
391 return script_result == expected_msg;
392 }
393
394 bool BackgroundSyncBrowserTest::StoreRegistrationOneShot(
395 const std::string& tag) {
396 std::string script_result;
397 EXPECT_TRUE(
398 RunScript(BuildScriptString("storeRegistration", tag), &script_result));
399 return script_result == BuildExpectedResult(tag, "stored");
400 }
401
402 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, OneShotFires) { 358 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, OneShotFires) {
403 EXPECT_TRUE(RegisterServiceWorker()); 359 EXPECT_TRUE(RegisterServiceWorker());
404 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. 360 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
405 361
406 EXPECT_TRUE(RegisterOneShot("foo")); 362 EXPECT_TRUE(RegisterOneShot("foo"));
407 EXPECT_TRUE(PopConsole("foo fired")); 363 EXPECT_TRUE(PopConsole("foo fired"));
408 EXPECT_FALSE(GetRegistrationOneShot("foo")); 364 EXPECT_FALSE(GetRegistrationOneShot("foo"));
409 } 365 }
410 366
411 // Verify that Register works in a service worker 367 // Verify that Register works in a service worker
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 401
446 // Verify that it is firing. 402 // Verify that it is firing.
447 EXPECT_TRUE(GetRegistrationOneShot("delay")); 403 EXPECT_TRUE(GetRegistrationOneShot("delay"));
448 EXPECT_FALSE(OneShotPending("delay")); 404 EXPECT_FALSE(OneShotPending("delay"));
449 405
450 // Complete the task. 406 // Complete the task.
451 EXPECT_TRUE(CompleteDelayedOneShot()); 407 EXPECT_TRUE(CompleteDelayedOneShot());
452 EXPECT_TRUE(PopConsole("ok - delay completed")); 408 EXPECT_TRUE(PopConsole("ok - delay completed"));
453 409
454 // Verify that it finished firing. 410 // Verify that it finished firing.
455 // TODO(jkarlin): Use registration.finished to verify that the event actually
456 // completed successfully.
457 EXPECT_FALSE(GetRegistrationOneShot("delay")); 411 EXPECT_FALSE(GetRegistrationOneShot("delay"));
458 } 412 }
459 413
460 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, WaitUntilReject) { 414 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, WaitUntilReject) {
461 EXPECT_TRUE(RegisterServiceWorker()); 415 EXPECT_TRUE(RegisterServiceWorker());
462 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. 416 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
463 417
464 SetOnline(true); 418 SetOnline(true);
465 EXPECT_TRUE(RegisterOneShot("delay")); 419 EXPECT_TRUE(RegisterOneShot("delay"));
466 420
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 std::vector<std::string> registered_tags; 508 std::vector<std::string> registered_tags;
555 EXPECT_TRUE(GetRegistrationsOneShot(registered_tags)); 509 EXPECT_TRUE(GetRegistrationsOneShot(registered_tags));
556 510
557 SetOnline(false); 511 SetOnline(false);
558 512
559 EXPECT_TRUE(RegisterOneShotFromServiceWorker("foo_sw")); 513 EXPECT_TRUE(RegisterOneShotFromServiceWorker("foo_sw"));
560 EXPECT_TRUE(PopConsole("ok - foo_sw registered in SW")); 514 EXPECT_TRUE(PopConsole("ok - foo_sw registered in SW"));
561 EXPECT_TRUE(GetRegistrationOneShotFromServiceWorker("foo_sw")); 515 EXPECT_TRUE(GetRegistrationOneShotFromServiceWorker("foo_sw"));
562 } 516 }
563 517
564 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, Unregister) {
565 EXPECT_TRUE(RegisterServiceWorker());
566 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
567
568 SetOnline(false);
569 EXPECT_TRUE(RegisterOneShot("foo"));
570 EXPECT_TRUE(UnregisterOneShot("foo"));
571 EXPECT_FALSE(GetRegistrationOneShot("foo"));
572 }
573
574 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, UnregisterTwice) {
575 EXPECT_TRUE(RegisterServiceWorker());
576 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
577
578 SetOnline(false);
579 EXPECT_TRUE(RegisterOneShot("foo"));
580 EXPECT_TRUE(UnregisterOneShotTwice("foo"));
581 EXPECT_FALSE(GetRegistrationOneShot("foo"));
582 }
583
584 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, UnregisterMidSync) {
585 EXPECT_TRUE(RegisterServiceWorker());
586 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
587
588 EXPECT_TRUE(RegisterOneShot("unregister"));
589 EXPECT_TRUE(PopConsole("ok - unregister completed"));
590 }
591
592 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
593 CallFinishedBeforeSyncSucceeds) {
594 EXPECT_TRUE(RegisterServiceWorker());
595 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
596
597 SetOnline(false);
598 EXPECT_TRUE(RegisterOneShot("foo"));
599 EXPECT_TRUE(NotifyWhenFinishedOneShot("foo"));
600
601 SetOnline(true);
602 // The ordering of PopConsole messages tells us that the event fired
603 // before finished resolved.
604 EXPECT_TRUE(PopConsole("foo fired"));
605 EXPECT_TRUE(PopConsole("foo finished result: true"));
606 }
607
608 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallFinishedBeforeSyncFails) {
609 EXPECT_TRUE(RegisterServiceWorker());
610 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
611
612 SetOnline(true);
613 EXPECT_TRUE(RegisterOneShot("delay"));
614 EXPECT_FALSE(OneShotPending("delay"));
615 EXPECT_TRUE(NotifyWhenFinishedOneShot("delay"));
616
617 EXPECT_TRUE(RejectDelayedOneShot());
618 // The ordering of PopConsole messages tells us that the event fired
619 // before finished resolved.
620 EXPECT_TRUE(PopConsole("ok - delay rejected"));
621 EXPECT_TRUE(PopConsole("delay finished result: false"));
622 }
623
624 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
625 CallFinishedAfterSyncSucceeds) {
626 EXPECT_TRUE(RegisterServiceWorker());
627 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
628
629 SetOnline(false);
630 EXPECT_TRUE(RegisterOneShot("foo"));
631 EXPECT_TRUE(StoreRegistrationOneShot("foo"));
632
633 SetOnline(true);
634 EXPECT_TRUE(PopConsole("foo fired"));
635 EXPECT_FALSE(GetRegistrationOneShot("foo"));
636 EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - foo result: true"));
637 }
638
639 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
640 CallFinishedAfterSyncUnregistered) {
641 EXPECT_TRUE(RegisterServiceWorker());
642 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
643
644 SetOnline(false);
645 EXPECT_TRUE(RegisterOneShot("foo"));
646 EXPECT_TRUE(StoreRegistrationOneShot("foo"));
647 EXPECT_TRUE(UnregisterOneShot("foo"));
648 EXPECT_FALSE(GetRegistrationOneShot("foo"));
649 EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - foo result: false"));
650 }
651
652 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallFinishedAfterSyncFails) {
653 EXPECT_TRUE(RegisterServiceWorker());
654 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
655
656 SetOnline(true);
657 EXPECT_TRUE(RegisterOneShot("delay"));
658 EXPECT_FALSE(OneShotPending("delay"));
659 EXPECT_TRUE(StoreRegistrationOneShot("delay"));
660
661 EXPECT_TRUE(RejectDelayedOneShot());
662 EXPECT_TRUE(PopConsole("ok - delay rejected"));
663 EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - delay result: false"));
664 }
665
666 // Verify that a background sync registration is deleted when site data is 518 // Verify that a background sync registration is deleted when site data is
667 // cleared. 519 // cleared.
668 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, 520 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
669 SyncRegistrationDeletedWhenClearingSiteData) { 521 SyncRegistrationDeletedWhenClearingSiteData) {
670 EXPECT_TRUE(RegisterServiceWorker()); 522 EXPECT_TRUE(RegisterServiceWorker());
671 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. 523 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
672 524
673 // Prevent firing by going offline. 525 // Prevent firing by going offline.
674 SetOnline(false); 526 SetOnline(false);
675 EXPECT_TRUE(RegisterOneShot("foo")); 527 EXPECT_TRUE(RegisterOneShot("foo"));
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 604
753 // Simulate a user clearing site data (including Service Workers, crucially), 605 // Simulate a user clearing site data (including Service Workers, crucially),
754 // by clearing data from the storage partition. 606 // by clearing data from the storage partition.
755 ClearStoragePartitionData(); 607 ClearStoragePartitionData();
756 608
757 // Verify that it was deleted. 609 // Verify that it was deleted.
758 EXPECT_FALSE(GetRegistrationOneShot("delay")); 610 EXPECT_FALSE(GetRegistrationOneShot("delay"));
759 } 611 }
760 612
761 } // namespace content 613 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698