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

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: Rebase 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
« no previous file with comments | « no previous file | content/test/data/background_sync/background_sync_test_helpers.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 // Sets the BackgroundSyncManager's max sync attempts per registration. 175 // Sets the BackgroundSyncManager's max sync attempts per registration.
176 void SetMaxSyncAttempts(int max_sync_attempts); 176 void SetMaxSyncAttempts(int max_sync_attempts);
177 177
178 void ClearStoragePartitionData(); 178 void ClearStoragePartitionData();
179 179
180 std::string PopConsoleString(); 180 std::string PopConsoleString();
181 bool PopConsole(const std::string& expected_msg); 181 bool PopConsole(const std::string& expected_msg);
182 bool RegisterServiceWorker(); 182 bool RegisterServiceWorker();
183 bool RegisterOneShot(const std::string& tag); 183 bool RegisterOneShot(const std::string& tag);
184 bool RegisterOneShotFromServiceWorker(const std::string& tag); 184 bool RegisterOneShotFromServiceWorker(const std::string& tag);
185 bool UnregisterOneShot(const std::string& tag);
186 bool UnregisterOneShotTwice(const std::string& tag);
187 bool GetRegistrationOneShot(const std::string& tag); 185 bool GetRegistrationOneShot(const std::string& tag);
188 bool GetRegistrationOneShotFromServiceWorker(const std::string& tag); 186 bool GetRegistrationOneShotFromServiceWorker(const std::string& tag);
189 bool MatchRegistrations(const std::string& script_result, 187 bool MatchRegistrations(const std::string& script_result,
190 const std::vector<std::string>& expected_tags); 188 const std::vector<std::string>& expected_tags);
191 bool GetRegistrationsOneShot(const std::vector<std::string>& expected_tags); 189 bool GetRegistrationsOneShot(const std::vector<std::string>& expected_tags);
192 bool GetRegistrationsOneShotFromServiceWorker( 190 bool GetRegistrationsOneShotFromServiceWorker(
193 const std::vector<std::string>& expected_tags); 191 const std::vector<std::string>& expected_tags);
194 bool CompleteDelayedOneShot(); 192 bool CompleteDelayedOneShot();
195 bool RejectDelayedOneShot(); 193 bool RejectDelayedOneShot();
196 bool NotifyWhenFinishedOneShot(const std::string& tag);
197 bool NotifyWhenFinishedImmediateOneShot(const std::string& expected_msg);
198 bool StoreRegistrationOneShot(const std::string& tag);
199 194
200 private: 195 private:
201 scoped_ptr<net::EmbeddedTestServer> https_server_; 196 scoped_ptr<net::EmbeddedTestServer> https_server_;
202 Shell* shell_ = nullptr; 197 Shell* shell_ = nullptr;
203 198
204 DISALLOW_COPY_AND_ASSIGN(BackgroundSyncBrowserTest); 199 DISALLOW_COPY_AND_ASSIGN(BackgroundSyncBrowserTest);
205 }; 200 };
206 201
207 void BackgroundSyncBrowserTest::SetOnline(bool online) { 202 void BackgroundSyncBrowserTest::SetOnline(bool online) {
208 ASSERT_TRUE(shell_); 203 ASSERT_TRUE(shell_);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 311
317 bool BackgroundSyncBrowserTest::RegisterOneShotFromServiceWorker( 312 bool BackgroundSyncBrowserTest::RegisterOneShotFromServiceWorker(
318 const std::string& tag) { 313 const std::string& tag) {
319 std::string script_result; 314 std::string script_result;
320 EXPECT_TRUE( 315 EXPECT_TRUE(
321 RunScript(BuildScriptString("registerOneShotFromServiceWorker", tag), 316 RunScript(BuildScriptString("registerOneShotFromServiceWorker", tag),
322 &script_result)); 317 &script_result));
323 return script_result == BuildExpectedResult(tag, "register sent to SW"); 318 return script_result == BuildExpectedResult(tag, "register sent to SW");
324 } 319 }
325 320
326 bool BackgroundSyncBrowserTest::UnregisterOneShot(const std::string& tag) {
327 std::string script_result;
328 EXPECT_TRUE(
329 RunScript(BuildScriptString("unregisterOneShot", tag), &script_result));
330 return script_result == BuildExpectedResult(tag, "unregistered");
331 }
332
333 bool BackgroundSyncBrowserTest::UnregisterOneShotTwice(const std::string& tag) {
334 std::string script_result;
335 EXPECT_TRUE(RunScript(BuildScriptString("unregisterOneShotTwice", tag),
336 &script_result));
337 return script_result ==
338 BuildExpectedResult(tag, "failed to unregister twice");
339 }
340
341 bool BackgroundSyncBrowserTest::GetRegistrationOneShot(const std::string& tag) { 321 bool BackgroundSyncBrowserTest::GetRegistrationOneShot(const std::string& tag) {
342 std::string script_result; 322 std::string script_result;
343 EXPECT_TRUE(RunScript(BuildScriptString("getRegistrationOneShot", tag), 323 EXPECT_TRUE(RunScript(BuildScriptString("getRegistrationOneShot", tag),
344 &script_result)); 324 &script_result));
345 return script_result == BuildExpectedResult(tag, "found"); 325 return script_result == BuildExpectedResult(tag, "found");
346 } 326 }
347 327
348 bool BackgroundSyncBrowserTest::GetRegistrationOneShotFromServiceWorker( 328 bool BackgroundSyncBrowserTest::GetRegistrationOneShotFromServiceWorker(
349 const std::string& tag) { 329 const std::string& tag) {
350 std::string script_result; 330 std::string script_result;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 EXPECT_TRUE(RunScript("completeDelayedOneShot()", &script_result)); 373 EXPECT_TRUE(RunScript("completeDelayedOneShot()", &script_result));
394 return script_result == BuildExpectedResult("delay", "completing"); 374 return script_result == BuildExpectedResult("delay", "completing");
395 } 375 }
396 376
397 bool BackgroundSyncBrowserTest::RejectDelayedOneShot() { 377 bool BackgroundSyncBrowserTest::RejectDelayedOneShot() {
398 std::string script_result; 378 std::string script_result;
399 EXPECT_TRUE(RunScript("rejectDelayedOneShot()", &script_result)); 379 EXPECT_TRUE(RunScript("rejectDelayedOneShot()", &script_result));
400 return script_result == BuildExpectedResult("delay", "rejecting"); 380 return script_result == BuildExpectedResult("delay", "rejecting");
401 } 381 }
402 382
403 bool BackgroundSyncBrowserTest::NotifyWhenFinishedOneShot(
404 const std::string& tag) {
405 EXPECT_TRUE(content::ExecuteScript(
406 shell_->web_contents(),
407 BuildScriptString("notifyWhenFinishedOneShot", tag)));
408 return PopConsole(BuildExpectedResult(tag, "finished"));
409 }
410
411 bool BackgroundSyncBrowserTest::NotifyWhenFinishedImmediateOneShot(
412 const std::string& expected_msg) {
413 std::string script_result;
414 EXPECT_TRUE(
415 RunScript("notifyWhenFinishedImmediateOneShot()", &script_result));
416 return script_result == expected_msg;
417 }
418
419 bool BackgroundSyncBrowserTest::StoreRegistrationOneShot(
420 const std::string& tag) {
421 std::string script_result;
422 EXPECT_TRUE(
423 RunScript(BuildScriptString("storeRegistration", tag), &script_result));
424 return script_result == BuildExpectedResult(tag, "stored");
425 }
426
427 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, OneShotFires) { 383 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, OneShotFires) {
428 EXPECT_TRUE(RegisterServiceWorker()); 384 EXPECT_TRUE(RegisterServiceWorker());
429 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. 385 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
430 386
431 EXPECT_TRUE(RegisterOneShot("foo")); 387 EXPECT_TRUE(RegisterOneShot("foo"));
432 EXPECT_TRUE(PopConsole("foo fired")); 388 EXPECT_TRUE(PopConsole("foo fired"));
433 EXPECT_FALSE(GetRegistrationOneShot("foo")); 389 EXPECT_FALSE(GetRegistrationOneShot("foo"));
434 } 390 }
435 391
436 // Verify that Register works in a service worker 392 // Verify that Register works in a service worker
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 426
471 // Verify that it is firing. 427 // Verify that it is firing.
472 EXPECT_TRUE(GetRegistrationOneShot("delay")); 428 EXPECT_TRUE(GetRegistrationOneShot("delay"));
473 EXPECT_FALSE(OneShotPending("delay")); 429 EXPECT_FALSE(OneShotPending("delay"));
474 430
475 // Complete the task. 431 // Complete the task.
476 EXPECT_TRUE(CompleteDelayedOneShot()); 432 EXPECT_TRUE(CompleteDelayedOneShot());
477 EXPECT_TRUE(PopConsole("ok - delay completed")); 433 EXPECT_TRUE(PopConsole("ok - delay completed"));
478 434
479 // Verify that it finished firing. 435 // Verify that it finished firing.
480 // TODO(jkarlin): Use registration.finished to verify that the event actually
481 // completed successfully.
482 EXPECT_FALSE(GetRegistrationOneShot("delay")); 436 EXPECT_FALSE(GetRegistrationOneShot("delay"));
483 } 437 }
484 438
485 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, WaitUntilReject) { 439 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, WaitUntilReject) {
486 EXPECT_TRUE(RegisterServiceWorker()); 440 EXPECT_TRUE(RegisterServiceWorker());
487 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. 441 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
488 442
489 SetOnline(true); 443 SetOnline(true);
490 EXPECT_TRUE(RegisterOneShot("delay")); 444 EXPECT_TRUE(RegisterOneShot("delay"));
491 445
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 std::vector<std::string> registered_tags; 533 std::vector<std::string> registered_tags;
580 EXPECT_TRUE(GetRegistrationsOneShot(registered_tags)); 534 EXPECT_TRUE(GetRegistrationsOneShot(registered_tags));
581 535
582 SetOnline(false); 536 SetOnline(false);
583 537
584 EXPECT_TRUE(RegisterOneShotFromServiceWorker("foo_sw")); 538 EXPECT_TRUE(RegisterOneShotFromServiceWorker("foo_sw"));
585 EXPECT_TRUE(PopConsole("ok - foo_sw registered in SW")); 539 EXPECT_TRUE(PopConsole("ok - foo_sw registered in SW"));
586 EXPECT_TRUE(GetRegistrationOneShotFromServiceWorker("foo_sw")); 540 EXPECT_TRUE(GetRegistrationOneShotFromServiceWorker("foo_sw"));
587 } 541 }
588 542
589 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, Unregister) {
590 EXPECT_TRUE(RegisterServiceWorker());
591 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
592
593 SetOnline(false);
594 EXPECT_TRUE(RegisterOneShot("foo"));
595 EXPECT_TRUE(UnregisterOneShot("foo"));
596 EXPECT_FALSE(GetRegistrationOneShot("foo"));
597 }
598
599 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, UnregisterTwice) {
600 EXPECT_TRUE(RegisterServiceWorker());
601 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
602
603 SetOnline(false);
604 EXPECT_TRUE(RegisterOneShot("foo"));
605 EXPECT_TRUE(UnregisterOneShotTwice("foo"));
606 EXPECT_FALSE(GetRegistrationOneShot("foo"));
607 }
608
609 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, UnregisterMidSync) {
610 EXPECT_TRUE(RegisterServiceWorker());
611 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
612
613 EXPECT_TRUE(RegisterOneShot("unregister"));
614 EXPECT_TRUE(PopConsole("ok - unregister completed"));
615 }
616
617 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
618 CallFinishedBeforeSyncSucceeds) {
619 EXPECT_TRUE(RegisterServiceWorker());
620 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
621
622 SetOnline(false);
623 EXPECT_TRUE(RegisterOneShot("foo"));
624 EXPECT_TRUE(NotifyWhenFinishedOneShot("foo"));
625
626 SetOnline(true);
627 // The ordering of PopConsole messages tells us that the event fired
628 // before finished resolved.
629 EXPECT_TRUE(PopConsole("foo fired"));
630 EXPECT_TRUE(PopConsole("foo finished result: true"));
631 }
632
633 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallFinishedBeforeSyncFails) {
634 EXPECT_TRUE(RegisterServiceWorker());
635 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
636
637 SetOnline(true);
638 EXPECT_TRUE(RegisterOneShot("delay"));
639 EXPECT_FALSE(OneShotPending("delay"));
640 EXPECT_TRUE(NotifyWhenFinishedOneShot("delay"));
641
642 EXPECT_TRUE(RejectDelayedOneShot());
643 // The ordering of PopConsole messages tells us that the event fired
644 // before finished resolved.
645 EXPECT_TRUE(PopConsole("ok - delay rejected"));
646 EXPECT_TRUE(PopConsole("delay finished result: false"));
647 }
648
649 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
650 CallFinishedAfterSyncSucceeds) {
651 EXPECT_TRUE(RegisterServiceWorker());
652 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
653
654 SetOnline(false);
655 EXPECT_TRUE(RegisterOneShot("foo"));
656 EXPECT_TRUE(StoreRegistrationOneShot("foo"));
657
658 SetOnline(true);
659 EXPECT_TRUE(PopConsole("foo fired"));
660 EXPECT_FALSE(GetRegistrationOneShot("foo"));
661 EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - foo result: true"));
662 }
663
664 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
665 CallFinishedAfterSyncUnregistered) {
666 EXPECT_TRUE(RegisterServiceWorker());
667 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
668
669 SetOnline(false);
670 EXPECT_TRUE(RegisterOneShot("foo"));
671 EXPECT_TRUE(StoreRegistrationOneShot("foo"));
672 EXPECT_TRUE(UnregisterOneShot("foo"));
673 EXPECT_FALSE(GetRegistrationOneShot("foo"));
674 EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - foo result: false"));
675 }
676
677 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallFinishedAfterSyncFails) {
678 EXPECT_TRUE(RegisterServiceWorker());
679 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
680
681 SetOnline(true);
682 EXPECT_TRUE(RegisterOneShot("delay"));
683 EXPECT_FALSE(OneShotPending("delay"));
684 EXPECT_TRUE(StoreRegistrationOneShot("delay"));
685
686 EXPECT_TRUE(RejectDelayedOneShot());
687 EXPECT_TRUE(PopConsole("ok - delay rejected"));
688 EXPECT_TRUE(NotifyWhenFinishedImmediateOneShot("ok - delay result: false"));
689 }
690
691 // Verify that a background sync registration is deleted when site data is 543 // Verify that a background sync registration is deleted when site data is
692 // cleared. 544 // cleared.
693 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, 545 IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
694 SyncRegistrationDeletedWhenClearingSiteData) { 546 SyncRegistrationDeletedWhenClearingSiteData) {
695 EXPECT_TRUE(RegisterServiceWorker()); 547 EXPECT_TRUE(RegisterServiceWorker());
696 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page. 548 EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
697 549
698 // Prevent firing by going offline. 550 // Prevent firing by going offline.
699 SetOnline(false); 551 SetOnline(false);
700 EXPECT_TRUE(RegisterOneShot("foo")); 552 EXPECT_TRUE(RegisterOneShot("foo"));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 643
792 EXPECT_TRUE(RegisterOneShot("delay")); 644 EXPECT_TRUE(RegisterOneShot("delay"));
793 EXPECT_TRUE(RejectDelayedOneShot()); 645 EXPECT_TRUE(RejectDelayedOneShot());
794 EXPECT_TRUE(PopConsole("ok - delay rejected")); 646 EXPECT_TRUE(PopConsole("ok - delay rejected"));
795 647
796 // Verify that the oneshot is still around and waiting to try again. 648 // Verify that the oneshot is still around and waiting to try again.
797 EXPECT_TRUE(OneShotPending("delay")); 649 EXPECT_TRUE(OneShotPending("delay"));
798 } 650 }
799 651
800 } // namespace content 652 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/test/data/background_sync/background_sync_test_helpers.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698