Chromium Code Reviews| Index: chrome/browser/installable/installable_manager_browsertest.cc |
| diff --git a/chrome/browser/installable/installable_manager_browsertest.cc b/chrome/browser/installable/installable_manager_browsertest.cc |
| index 58cabb85b4996b4dd1ff2f2960ffff70113aa860..38312a3ac49ba2261b680a7030108e788160785e 100644 |
| --- a/chrome/browser/installable/installable_manager_browsertest.cc |
| +++ b/chrome/browser/installable/installable_manager_browsertest.cc |
| @@ -214,7 +214,8 @@ IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, |
| EXPECT_FALSE(manager->is_installable()); |
| EXPECT_EQ(NO_ERROR_DETECTED, manager->manifest_error()); |
| - EXPECT_EQ(NO_ERROR_DETECTED, manager->installable_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->valid_manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->worker_error()); |
| EXPECT_TRUE(manager->tasks_.empty()); |
| } |
| @@ -543,7 +544,8 @@ IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, CheckWebapp) { |
| EXPECT_FALSE((manager->icon_url(kPrimaryIconParams).is_empty())); |
| EXPECT_NE(nullptr, (manager->icon(kPrimaryIconParams))); |
| EXPECT_EQ(NO_ERROR_DETECTED, manager->manifest_error()); |
| - EXPECT_EQ(NO_ERROR_DETECTED, manager->installable_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->valid_manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->worker_error()); |
| EXPECT_EQ(NO_ERROR_DETECTED, (manager->icon_error(kPrimaryIconParams))); |
| EXPECT_TRUE(manager->tasks_.empty()); |
| } |
| @@ -579,7 +581,8 @@ IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, CheckWebapp) { |
| EXPECT_FALSE((manager->icon_url(kPrimaryIconParams).is_empty())); |
| EXPECT_NE(nullptr, (manager->icon(kPrimaryIconParams))); |
| EXPECT_EQ(NO_ERROR_DETECTED, manager->manifest_error()); |
| - EXPECT_EQ(NO_ERROR_DETECTED, manager->installable_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->valid_manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->worker_error()); |
| EXPECT_EQ(NO_ERROR_DETECTED, (manager->icon_error(kPrimaryIconParams))); |
| EXPECT_TRUE(manager->tasks_.empty()); |
| } |
| @@ -594,7 +597,8 @@ IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, CheckWebapp) { |
| EXPECT_FALSE(manager->is_installable()); |
| EXPECT_TRUE(manager->icons_.empty()); |
| EXPECT_EQ(NO_ERROR_DETECTED, manager->manifest_error()); |
| - EXPECT_EQ(NO_ERROR_DETECTED, manager->installable_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->valid_manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->worker_error()); |
| EXPECT_TRUE(manager->tasks_.empty()); |
| } |
| } |
| @@ -622,51 +626,57 @@ IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, CheckWebappInIframe) { |
| InstallabilityCheckStatus::COMPLETE_NON_PROGRESSIVE_WEB_APP); |
| } |
| -IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, |
| - CheckPageWithManifestAndNoServiceWorker) { |
|
benwells
2017/06/14 11:39:06
Is the no service worker case tested at all?
dominickn
2017/06/15 04:16:07
I can restore the no service worker test with the
|
| - // Just fetch the manifest. This should have no error. |
| +IN_PROC_BROWSER_TEST_F(InstallableManagerBrowserTest, CheckLazyServiceWorker) { |
| { |
| base::RunLoop run_loop; |
| std::unique_ptr<CallbackTester> tester( |
| new CallbackTester(run_loop.QuitClosure())); |
| NavigateAndRunInstallableManager( |
| - tester.get(), GetManifestParams(), |
| - "/banners/manifest_no_service_worker.html"); |
| + tester.get(), GetWebAppParams(), |
| + "/banners/lazy_service_worker_test_page.html"); |
| run_loop.Run(); |
| EXPECT_FALSE(tester->manifest().IsEmpty()); |
| EXPECT_FALSE(tester->manifest_url().is_empty()); |
| - |
| - EXPECT_TRUE(tester->primary_icon_url().is_empty()); |
| - EXPECT_EQ(nullptr, tester->primary_icon()); |
| - EXPECT_FALSE(tester->is_installable()); |
| + EXPECT_FALSE(tester->primary_icon_url().is_empty()); |
| + EXPECT_NE(nullptr, tester->primary_icon()); |
| + EXPECT_TRUE(tester->is_installable()); |
| EXPECT_TRUE(tester->badge_icon_url().is_empty()); |
| EXPECT_EQ(nullptr, tester->badge_icon()); |
| EXPECT_EQ(NO_ERROR_DETECTED, tester->error_code()); |
| - EXPECT_EQ(GetStatus(), InstallabilityCheckStatus::NOT_COMPLETED); |
| - } |
| + EXPECT_EQ(GetStatus(), |
| + InstallabilityCheckStatus::COMPLETE_PROGRESSIVE_WEB_APP); |
| - // Fetch the full criteria should fail. |
| - { |
| - base::RunLoop run_loop; |
| - std::unique_ptr<CallbackTester> tester( |
| - new CallbackTester(run_loop.QuitClosure())); |
| + // Verify that the returned state matches manager internal state. |
| + InstallableManager* manager = GetManager(); |
| - RunInstallableManager(tester.get(), GetWebAppParams()); |
| - run_loop.Run(); |
| + EXPECT_FALSE(manager->manifest().IsEmpty()); |
| + EXPECT_FALSE(manager->manifest_url().is_empty()); |
| + EXPECT_TRUE(manager->is_installable()); |
| + EXPECT_EQ(1u, manager->icons_.size()); |
| + EXPECT_FALSE((manager->icon_url(kPrimaryIconParams).is_empty())); |
| + EXPECT_NE(nullptr, (manager->icon(kPrimaryIconParams))); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->valid_manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->worker_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, (manager->icon_error(kPrimaryIconParams))); |
| + EXPECT_TRUE(manager->tasks_.empty()); |
| + } |
| - EXPECT_FALSE(tester->manifest().IsEmpty()); |
| - EXPECT_FALSE(tester->manifest_url().is_empty()); |
| + { |
| + // Check that a subsequent navigation resets state. |
| + ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); |
| + InstallableManager* manager = GetManager(); |
| - EXPECT_FALSE(tester->primary_icon_url().is_empty()); |
| - EXPECT_NE(nullptr, tester->primary_icon()); |
| - EXPECT_FALSE(tester->is_installable()); |
| - EXPECT_TRUE(tester->badge_icon_url().is_empty()); |
| - EXPECT_EQ(nullptr, tester->badge_icon()); |
| - EXPECT_EQ(NO_MATCHING_SERVICE_WORKER, tester->error_code()); |
| - EXPECT_EQ(GetStatus(), |
| - InstallabilityCheckStatus::COMPLETE_NON_PROGRESSIVE_WEB_APP); |
| + EXPECT_TRUE(manager->manifest().IsEmpty()); |
| + EXPECT_TRUE(manager->manifest_url().is_empty()); |
| + EXPECT_FALSE(manager->is_installable()); |
| + EXPECT_TRUE(manager->icons_.empty()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->valid_manifest_error()); |
| + EXPECT_EQ(NO_ERROR_DETECTED, manager->worker_error()); |
| + EXPECT_TRUE(manager->tasks_.empty()); |
| } |
| } |