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 "base/files/scoped_temp_dir.h" | 5 #include "base/files/scoped_temp_dir.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "content/browser/browser_thread_impl.h" | 8 #include "content/browser/browser_thread_impl.h" |
9 #include "content/browser/service_worker/embedded_worker_registry.h" | 9 #include "content/browser/service_worker/embedded_worker_registry.h" |
10 #include "content/browser/service_worker/embedded_worker_test_helper.h" | 10 #include "content/browser/service_worker/embedded_worker_test_helper.h" |
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 EXPECT_EQ(ServiceWorkerVersion::RUNNING, | 728 EXPECT_EQ(ServiceWorkerVersion::RUNNING, |
729 version->running_status()); | 729 version->running_status()); |
730 EXPECT_EQ(ServiceWorkerVersion::INSTALLED, version->status()); | 730 EXPECT_EQ(ServiceWorkerVersion::INSTALLED, version->status()); |
731 | 731 |
732 called = false; | 732 called = false; |
733 job_coordinator()->Unregister(GURL("http://www.example.com/*"), | 733 job_coordinator()->Unregister(GURL("http://www.example.com/*"), |
734 SaveUnregistration(SERVICE_WORKER_OK, &called)); | 734 SaveUnregistration(SERVICE_WORKER_OK, &called)); |
735 base::RunLoop().RunUntilIdle(); | 735 base::RunLoop().RunUntilIdle(); |
736 ASSERT_TRUE(called); | 736 ASSERT_TRUE(called); |
737 | 737 |
738 EXPECT_EQ(ServiceWorkerVersion::RUNNING, | 738 // The version should be stopped since there is no controllee after |
739 version->running_status()); | 739 // unregistration. |
| 740 EXPECT_EQ(ServiceWorkerVersion::STOPPED, version->running_status()); |
740 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); | 741 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); |
741 } | 742 } |
742 | 743 |
743 // Tests that the active worker enters the 'redundant' state upon | 744 // Tests that the active worker enters the 'redundant' state upon |
744 // unregistration. | 745 // unregistration. |
745 TEST_F(ServiceWorkerJobTest, UnregisterActiveSetsRedundant) { | 746 TEST_F(ServiceWorkerJobTest, UnregisterActiveSetsRedundant) { |
746 scoped_refptr<ServiceWorkerRegistration> registration; | 747 scoped_refptr<ServiceWorkerRegistration> registration; |
747 bool called = false; | 748 bool called = false; |
748 job_coordinator()->Register( | 749 job_coordinator()->Register( |
749 GURL("http://www.example.com/*"), | 750 GURL("http://www.example.com/*"), |
750 GURL("http://www.example.com/service_worker.js"), | 751 GURL("http://www.example.com/service_worker.js"), |
751 render_process_id_, | 752 render_process_id_, |
752 SaveRegistration(SERVICE_WORKER_OK, &called, ®istration)); | 753 SaveRegistration(SERVICE_WORKER_OK, &called, ®istration)); |
753 base::RunLoop().RunUntilIdle(); | 754 base::RunLoop().RunUntilIdle(); |
754 ASSERT_TRUE(called); | 755 ASSERT_TRUE(called); |
755 ASSERT_TRUE(registration); | 756 ASSERT_TRUE(registration); |
756 | 757 |
757 scoped_refptr<ServiceWorkerVersion> version = registration->active_version(); | 758 scoped_refptr<ServiceWorkerVersion> version = registration->active_version(); |
758 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); | 759 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); |
759 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, version->status()); | 760 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, version->status()); |
760 | 761 |
761 called = false; | 762 called = false; |
762 job_coordinator()->Unregister(GURL("http://www.example.com/*"), | 763 job_coordinator()->Unregister(GURL("http://www.example.com/*"), |
763 SaveUnregistration(SERVICE_WORKER_OK, &called)); | 764 SaveUnregistration(SERVICE_WORKER_OK, &called)); |
764 base::RunLoop().RunUntilIdle(); | 765 base::RunLoop().RunUntilIdle(); |
765 ASSERT_TRUE(called); | 766 ASSERT_TRUE(called); |
766 | 767 |
767 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); | 768 // The version should be stopped since there is no controllee after |
| 769 // unregistration. |
| 770 EXPECT_EQ(ServiceWorkerVersion::STOPPED, version->running_status()); |
768 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); | 771 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); |
769 } | 772 } |
770 | 773 |
771 // Tests that the active worker enters the 'redundant' state upon | 774 // Tests that the active worker enters the 'redundant' state upon |
772 // unregistration. | 775 // unregistration. |
773 TEST_F(ServiceWorkerJobTest, | 776 TEST_F(ServiceWorkerJobTest, |
774 UnregisterActiveSetsRedundant_WaitForNoControllee) { | 777 UnregisterActiveSetsRedundant_WaitForNoControllee) { |
775 scoped_refptr<ServiceWorkerRegistration> registration; | 778 scoped_refptr<ServiceWorkerRegistration> registration; |
776 bool called = false; | 779 bool called = false; |
777 job_coordinator()->Register( | 780 job_coordinator()->Register( |
(...skipping 15 matching lines...) Expand all Loading... |
793 scoped_refptr<ServiceWorkerVersion> version = registration->active_version(); | 796 scoped_refptr<ServiceWorkerVersion> version = registration->active_version(); |
794 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); | 797 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); |
795 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, version->status()); | 798 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, version->status()); |
796 | 799 |
797 called = false; | 800 called = false; |
798 job_coordinator()->Unregister(GURL("http://www.example.com/*"), | 801 job_coordinator()->Unregister(GURL("http://www.example.com/*"), |
799 SaveUnregistration(SERVICE_WORKER_OK, &called)); | 802 SaveUnregistration(SERVICE_WORKER_OK, &called)); |
800 base::RunLoop().RunUntilIdle(); | 803 base::RunLoop().RunUntilIdle(); |
801 ASSERT_TRUE(called); | 804 ASSERT_TRUE(called); |
802 | 805 |
| 806 // The version should be running since there is still a controllee. |
803 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); | 807 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); |
804 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, version->status()); | 808 EXPECT_EQ(ServiceWorkerVersion::ACTIVATED, version->status()); |
805 | 809 |
806 registration->active_version()->RemoveControllee(host.get()); | 810 registration->active_version()->RemoveControllee(host.get()); |
807 base::RunLoop().RunUntilIdle(); | 811 base::RunLoop().RunUntilIdle(); |
808 EXPECT_EQ(ServiceWorkerVersion::RUNNING, version->running_status()); | 812 |
| 813 // The version should be stopped since there is no controllee. |
| 814 EXPECT_EQ(ServiceWorkerVersion::STOPPED, version->running_status()); |
809 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); | 815 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); |
810 } | 816 } |
811 | 817 |
812 } // namespace content | 818 } // namespace content |
OLD | NEW |