Chromium Code Reviews| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc |
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc |
| index be049feecb137888a33dc696f5b51ac4c7067900..4febe025e1cf5e44d270c8cebe0f47d3a61a5437 100644 |
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc |
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc |
| @@ -36,6 +36,7 @@ |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_commands.h" |
| #include "chrome/browser/ui/browser_finder.h" |
| +#include "chrome/browser/ui/browser_iterator.h" |
| #include "chrome/browser/ui/browser_list.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/browser/ui/chrome_pages.h" |
| @@ -44,6 +45,7 @@ |
| #include "chrome/browser/ui/host_desktop.h" |
| #include "chrome/browser/ui/settings_window_manager.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| +#include "chrome/browser/web_applications/web_app.h" |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| @@ -1299,6 +1301,42 @@ IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, AsyncActivationStateCheck) { |
| EXPECT_EQ(ash::STATUS_CLOSED, model_->ItemByID(shortcut_id)->status); |
| } |
| +// Test that the App window could restore to its previous window state from |
| +// before it was closed. |
| +IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, AppWindowRestoreBehaviorTest) { |
| + const Extension* extension = LoadAndLaunchExtension( |
| + "app1", extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW); |
| + Browser* app_browser = nullptr; |
| + for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
| + std::string browser_app_id = |
| + web_app::GetExtensionIdFromApplicationName((*it)->app_name()); |
| + if (browser_app_id == extension->id()) { |
| + app_browser = *it; |
| + break; |
| + } |
| + } |
|
stevenjb
2015/07/09 19:41:09
ASSERT_TRUE(app_browser);
oshima
2015/07/09 20:14:04
ASSERT_TRUE is for the precondition that will othe
|
| + aura::Window* window = app_browser->window()->GetNativeWindow(); |
| + EXPECT_FALSE(ash::wm::GetWindowState(window)->IsMaximized()); |
| + ash::wm::GetWindowState(window)->Maximize(); |
| + EXPECT_TRUE(ash::wm::GetWindowState(window)->IsMaximized()); |
| + app_browser->window()->Close(); |
|
stevenjb
2015/07/09 19:41:09
test that the window is closed here.
xdai1
2015/07/09 22:46:46
Done.
|
| + |
| + // Reopen it. |
| + extension = LoadAndLaunchExtension( |
| + "app1", extensions::LAUNCH_CONTAINER_WINDOW, NEW_WINDOW); |
| + app_browser = nullptr; |
| + for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
| + std::string browser_app_id = |
| + web_app::GetExtensionIdFromApplicationName((*it)->app_name()); |
| + if (browser_app_id == extension->id()) { |
| + app_browser = *it; |
| + break; |
| + } |
| + } |
|
stevenjb
2015/07/09 19:41:09
Put the above code into a helper function in an an
xdai1
2015/07/09 22:46:46
Done.
|
| + window = app_browser->window()->GetNativeWindow(); |
| + EXPECT_TRUE(ash::wm::GetWindowState(window)->IsMaximized()); |
|
stevenjb
2015/07/09 19:41:09
For completeness we should un-maximize the window,
xdai1
2015/07/09 22:46:46
Done.
|
| +} |
| + |
| // Checks that a windowed application does not add an item to the browser list. |
| IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTestNoDefaultBrowser, |
| WindowedAppDoesNotAddToBrowser) { |