Commit 2966d8ec authored by Eric Willigers's avatar Eric Willigers Committed by Commit Bot

Port ShelfAppBrowserTest bookmark tests off Extensions APIs


TabbedHostedAndBookmarkApps and WindowedHostedAndBookmarkApps tests
are replaced with TabbedHostedAndWebApps and WindowedHostedAndWebApps
tests that use no Extensions APIs to create or inspect web apps.

Bug: 1054116
Change-Id: Ib3713f63cc9e0708cca7dbebc674ba610ec439b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2087309Reviewed-by: default avatarNancy Wang <nancylingwang@chromium.org>
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#747197}
parent 5a2d1318
...@@ -420,6 +420,7 @@ class ShelfWebAppBrowserTest ...@@ -420,6 +420,7 @@ class ShelfWebAppBrowserTest
cert_verifier_.TearDownInProcessBrowserTestFixture(); cert_verifier_.TearDownInProcessBrowserTestFixture();
} }
void SetUpCommandLine(base::CommandLine* command_line) override { void SetUpCommandLine(base::CommandLine* command_line) override {
ShelfAppBrowserTest::SetUpCommandLine(command_line);
cert_verifier_.SetUpCommandLine(command_line); cert_verifier_.SetUpCommandLine(command_line);
} }
void SetUpOnMainThread() override { void SetUpOnMainThread() override {
...@@ -2080,9 +2081,8 @@ IN_PROC_BROWSER_TEST_P(ShelfWebAppBrowserTest, SettingsAndTaskManagerWindows) { ...@@ -2080,9 +2081,8 @@ IN_PROC_BROWSER_TEST_P(ShelfWebAppBrowserTest, SettingsAndTaskManagerWindows) {
// crbug.com/230464. // crbug.com/230464.
} }
// Check that tabbed hosted and bookmark apps have correct shelf presence. // Check that tabbed hosted and web apps have correct shelf presence.
// TODO(crbug.com/1054116): Port bookmark test to ShelfWebAppBrowserTest. IN_PROC_BROWSER_TEST_P(ShelfWebAppBrowserTest, TabbedHostedAndWebApps) {
IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, TabbedHostedAndBookmarkApps) {
// Load and pin a hosted app. // Load and pin a hosted app.
const Extension* hosted_app = const Extension* hosted_app =
LoadExtension(test_data_dir_.AppendASCII("app1/")); LoadExtension(test_data_dir_.AppendASCII("app1/"));
...@@ -2090,37 +2090,34 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, TabbedHostedAndBookmarkApps) { ...@@ -2090,37 +2090,34 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, TabbedHostedAndBookmarkApps) {
controller_->PinAppWithID(hosted_app->id()); controller_->PinAppWithID(hosted_app->id());
const ash::ShelfID hosted_app_shelf_id(hosted_app->id()); const ash::ShelfID hosted_app_shelf_id(hosted_app->id());
// Load and pin a bookmark app. // Load and pin a web app.
const Extension* bookmark_app = InstallExtensionWithSourceAndFlags( const GURL web_app_url = GetSecureAppURL();
test_data_dir_.AppendASCII("app2/"), 1, extensions::Manifest::INTERNAL, const web_app::AppId web_app_id = InstallWebApp(web_app_url);
extensions::Extension::FROM_BOOKMARK); controller_->PinAppWithID(web_app_id);
ASSERT_TRUE(bookmark_app); const ash::ShelfID web_app_shelf_id(web_app_id);
controller_->PinAppWithID(bookmark_app->id());
const ash::ShelfID bookmark_app_shelf_id(bookmark_app->id());
// The apps should be closed. // The apps should be closed.
EXPECT_EQ(ash::STATUS_CLOSED, EXPECT_EQ(ash::STATUS_CLOSED,
shelf_model()->ItemByID(hosted_app_shelf_id)->status); shelf_model()->ItemByID(hosted_app_shelf_id)->status);
EXPECT_EQ(ash::STATUS_CLOSED, EXPECT_EQ(ash::STATUS_CLOSED,
shelf_model()->ItemByID(bookmark_app_shelf_id)->status); shelf_model()->ItemByID(web_app_shelf_id)->status);
// Navigate to the app's launch URLs in two tabs. // Navigate to the app's launch URLs in two tabs.
ui_test_utils::NavigateToURL( ui_test_utils::NavigateToURL(
browser(), extensions::AppLaunchInfo::GetLaunchWebURL(hosted_app)); browser(), extensions::AppLaunchInfo::GetLaunchWebURL(hosted_app));
ui_test_utils::NavigateToURLWithDisposition( ui_test_utils::NavigateToURLWithDisposition(
browser(), extensions::AppLaunchInfo::GetLaunchWebURL(bookmark_app), browser(), web_app_url, WindowOpenDisposition::NEW_FOREGROUND_TAB, 0);
WindowOpenDisposition::NEW_FOREGROUND_TAB, 0);
// The apps should now be running. // The apps should now be running.
EXPECT_EQ(ash::STATUS_RUNNING, EXPECT_EQ(ash::STATUS_RUNNING,
shelf_model()->ItemByID(hosted_app_shelf_id)->status); shelf_model()->ItemByID(hosted_app_shelf_id)->status);
EXPECT_EQ(ash::STATUS_RUNNING, EXPECT_EQ(ash::STATUS_RUNNING,
shelf_model()->ItemByID(bookmark_app_shelf_id)->status); shelf_model()->ItemByID(web_app_shelf_id)->status);
// Now use the launcher controller to activate the apps. // Now use the launcher controller to activate the apps.
controller_->ActivateApp(hosted_app->id(), ash::LAUNCH_FROM_APP_LIST, 0, controller_->ActivateApp(hosted_app->id(), ash::LAUNCH_FROM_APP_LIST, 0,
display::kInvalidDisplayId); display::kInvalidDisplayId);
controller_->ActivateApp(bookmark_app->id(), ash::LAUNCH_FROM_APP_LIST, 0, controller_->ActivateApp(web_app_id, ash::LAUNCH_FROM_APP_LIST, 0,
display::kInvalidDisplayId); display::kInvalidDisplayId);
// There should be no new browsers or tabs as both apps were already open. // There should be no new browsers or tabs as both apps were already open.
...@@ -2128,9 +2125,8 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, TabbedHostedAndBookmarkApps) { ...@@ -2128,9 +2125,8 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, TabbedHostedAndBookmarkApps) {
EXPECT_EQ(2, browser()->tab_strip_model()->count()); EXPECT_EQ(2, browser()->tab_strip_model()->count());
} }
// Check that windowed hosted and bookmark apps have correct shelf presence. // Check that windowed hosted and web apps have correct shelf presence.
// TODO(crbug.com/1054116): Port bookmark test to ShelfWebAppBrowserTest. IN_PROC_BROWSER_TEST_P(ShelfWebAppBrowserTest, WindowedHostedAndWebApps) {
IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, WindowedHostedAndBookmarkApps) {
// Load and pin a hosted app. // Load and pin a hosted app.
const Extension* hosted_app = const Extension* hosted_app =
LoadExtension(test_data_dir_.AppendASCII("app1/")); LoadExtension(test_data_dir_.AppendASCII("app1/"));
...@@ -2138,46 +2134,42 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, WindowedHostedAndBookmarkApps) { ...@@ -2138,46 +2134,42 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, WindowedHostedAndBookmarkApps) {
controller_->PinAppWithID(hosted_app->id()); controller_->PinAppWithID(hosted_app->id());
const ash::ShelfID hosted_app_shelf_id(hosted_app->id()); const ash::ShelfID hosted_app_shelf_id(hosted_app->id());
// Load and pin a bookmark app. // Load and pin a web app.
const Extension* bookmark_app = InstallExtensionWithSourceAndFlags( const GURL web_app_url = GetSecureAppURL();
test_data_dir_.AppendASCII("app2/"), 1, extensions::Manifest::INTERNAL, const web_app::AppId web_app_id = InstallWebApp(web_app_url);
extensions::Extension::FROM_BOOKMARK); controller_->PinAppWithID(web_app_id);
ASSERT_TRUE(bookmark_app); const ash::ShelfID web_app_shelf_id(web_app_id);
controller_->PinAppWithID(bookmark_app->id());
const ash::ShelfID bookmark_app_shelf_id(bookmark_app->id());
// Set both apps to open in windows. // Set both apps to open in windows.
extensions::SetLaunchType(browser()->profile(), hosted_app->id(), extensions::SetLaunchType(browser()->profile(), hosted_app->id(),
extensions::LAUNCH_TYPE_WINDOW); extensions::LAUNCH_TYPE_WINDOW);
extensions::SetLaunchType(browser()->profile(), bookmark_app->id(), extensions::SetLaunchType(browser()->profile(), web_app_id,
extensions::LAUNCH_TYPE_WINDOW); extensions::LAUNCH_TYPE_WINDOW);
// The apps should be closed. // The apps should be closed.
EXPECT_EQ(ash::STATUS_CLOSED, EXPECT_EQ(ash::STATUS_CLOSED,
shelf_model()->ItemByID(hosted_app_shelf_id)->status); shelf_model()->ItemByID(hosted_app_shelf_id)->status);
EXPECT_EQ(ash::STATUS_CLOSED, EXPECT_EQ(ash::STATUS_CLOSED,
shelf_model()->ItemByID(bookmark_app_shelf_id)->status); shelf_model()->ItemByID(web_app_shelf_id)->status);
// Navigate to the app's launch URLs in two tabs. // Navigate to the app's launch URLs in two tabs.
ui_test_utils::NavigateToURL( ui_test_utils::NavigateToURL(
browser(), extensions::AppLaunchInfo::GetLaunchWebURL(hosted_app)); browser(), extensions::AppLaunchInfo::GetLaunchWebURL(hosted_app));
ui_test_utils::NavigateToURLWithDisposition( ui_test_utils::NavigateToURLWithDisposition(
browser(), extensions::AppLaunchInfo::GetLaunchWebURL(bookmark_app), browser(), web_app_url, WindowOpenDisposition::NEW_FOREGROUND_TAB, 0);
WindowOpenDisposition::NEW_FOREGROUND_TAB, 0);
// The apps should still be closed. // The apps should still be closed.
EXPECT_EQ(ash::STATUS_CLOSED, EXPECT_EQ(ash::STATUS_CLOSED,
shelf_model()->ItemByID(hosted_app_shelf_id)->status); shelf_model()->ItemByID(hosted_app_shelf_id)->status);
EXPECT_EQ(ash::STATUS_CLOSED, EXPECT_EQ(ash::STATUS_CLOSED,
shelf_model()->ItemByID(bookmark_app_shelf_id)->status); shelf_model()->ItemByID(web_app_shelf_id)->status);
// Now use the launcher controller to activate the apps. // Now use the launcher controller to activate the apps.
ActivateAppAndFlushMojoCallsForAppService(hosted_app->id(), ActivateAppAndFlushMojoCallsForAppService(hosted_app->id(),
ash::LAUNCH_FROM_APP_LIST, 0, ash::LAUNCH_FROM_APP_LIST, 0,
display::kInvalidDisplayId); display::kInvalidDisplayId);
ActivateAppAndFlushMojoCallsForAppService(bookmark_app->id(), ActivateAppAndFlushMojoCallsForAppService(
ash::LAUNCH_FROM_APP_LIST, 0, web_app_id, ash::LAUNCH_FROM_APP_LIST, 0, display::kInvalidDisplayId);
display::kInvalidDisplayId);
// There should be two new browsers. // There should be two new browsers.
EXPECT_EQ(3u, chrome::GetBrowserCount(browser()->profile())); EXPECT_EQ(3u, chrome::GetBrowserCount(browser()->profile()));
...@@ -2186,7 +2178,7 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, WindowedHostedAndBookmarkApps) { ...@@ -2186,7 +2178,7 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, WindowedHostedAndBookmarkApps) {
EXPECT_EQ(ash::STATUS_RUNNING, EXPECT_EQ(ash::STATUS_RUNNING,
shelf_model()->ItemByID(hosted_app_shelf_id)->status); shelf_model()->ItemByID(hosted_app_shelf_id)->status);
EXPECT_EQ(ash::STATUS_RUNNING, EXPECT_EQ(ash::STATUS_RUNNING,
shelf_model()->ItemByID(bookmark_app_shelf_id)->status); shelf_model()->ItemByID(web_app_shelf_id)->status);
} }
// Windowed progressive web apps should have shelf activity indicator showing // Windowed progressive web apps should have shelf activity indicator showing
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment