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 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 storage()->FindRegistrationForPattern( | 693 storage()->FindRegistrationForPattern( |
694 pattern, | 694 pattern, |
695 SaveFoundRegistration( | 695 SaveFoundRegistration( |
696 SERVICE_WORKER_ERROR_NOT_FOUND, &find_called, ®istration)); | 696 SERVICE_WORKER_ERROR_NOT_FOUND, &find_called, ®istration)); |
697 | 697 |
698 base::RunLoop().RunUntilIdle(); | 698 base::RunLoop().RunUntilIdle(); |
699 ASSERT_TRUE(find_called); | 699 ASSERT_TRUE(find_called); |
700 EXPECT_EQ(scoped_refptr<ServiceWorkerRegistration>(), registration); | 700 EXPECT_EQ(scoped_refptr<ServiceWorkerRegistration>(), registration); |
701 } | 701 } |
702 | 702 |
703 // Tests that the waiting worker enters the 'redundant' state upon | |
704 // unregistration. | |
705 TEST_F(ServiceWorkerJobTest, UnregisterSetsRedundant) { | |
706 scoped_refptr<ServiceWorkerRegistration> registration; | |
707 bool called = false; | |
708 job_coordinator()->Register( | |
709 GURL("http://www.example.com/*"), | |
710 GURL("http://www.example.com/service_worker.js"), | |
711 render_process_id_, | |
712 SaveRegistration(SERVICE_WORKER_OK, &called, ®istration)); | |
713 base::RunLoop().RunUntilIdle(); | |
714 ASSERT_TRUE(called); | |
715 ASSERT_TRUE(registration); | |
716 | |
717 // Manually create the waiting worker since there is no way to become a | |
718 // waiting worker until Update is implemented. | |
719 scoped_refptr<ServiceWorkerVersion> version = new ServiceWorkerVersion( | |
720 registration, 1L, helper_->context()->AsWeakPtr()); | |
721 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; | |
722 version->StartWorker(CreateReceiverOnCurrentThread(&status)); | |
723 base::RunLoop().RunUntilIdle(); | |
724 ASSERT_EQ(SERVICE_WORKER_OK, status); | |
725 | |
726 version->SetStatus(ServiceWorkerVersion::INSTALLED); | |
727 registration->SetWaitingVersion(version); | |
728 EXPECT_EQ(ServiceWorkerVersion::RUNNING, | |
729 version->running_status()); | |
730 EXPECT_EQ(ServiceWorkerVersion::INSTALLED, version->status()); | |
731 | |
732 called = false; | |
733 job_coordinator()->Unregister(GURL("http://www.example.com/*"), | |
734 SaveUnregistration(SERVICE_WORKER_OK, &called)); | |
735 base::RunLoop().RunUntilIdle(); | |
736 ASSERT_TRUE(called); | |
737 | |
738 EXPECT_EQ(ServiceWorkerVersion::RUNNING, | |
739 version->running_status()); | |
740 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version->status()); | |
741 } | |
742 | |
743 } // namespace content | 703 } // namespace content |
OLD | NEW |