Chromium Code Reviews| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_browsertest.cc |
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_browsertest.cc |
| index 23b41f79528fb7b282e57da85bd96b896abaa2a5..72975e298a2eac0acb884912f4fedbbc1531169c 100644 |
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_browsertest.cc |
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app_browsertest.cc |
| @@ -17,6 +17,7 @@ |
| #include "ash/test/launcher_view_test_api.h" |
| #include "ash/test/shell_test_api.h" |
| #include "ash/wm/window_util.h" |
| +#include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/apps/app_browsertest_util.h" |
| #include "chrome/browser/automation/automation_util.h" |
| @@ -251,6 +252,13 @@ class LauncherPerAppAppBrowserTest : public ExtensionBrowserTest { |
| launcher_->ActivateLauncherItem(id); |
| } |
| + ash::LauncherID PinFakeApp(const std::string& name) { |
| + ChromeLauncherController* controller = |
| + static_cast<ChromeLauncherController*>(launcher_->delegate()); |
| + return controller->CreateAppShortcutLauncherItem( |
| + name, model_->item_count()); |
| + } |
| + |
| ash::Launcher* launcher_; |
| ash::LauncherModel* model_; |
| @@ -1290,6 +1298,26 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformPerAppAppBrowserTest, |
| EXPECT_TRUE(window1a->IsActive()); |
| } |
| +// Test that we can launch a platform app panel and get a running item. |
| +IN_PROC_BROWSER_TEST_F(LauncherPlatformPerAppAppBrowserTest, |
| + LaunchPanelWindow) { |
| + int item_count = launcher_model()->item_count(); |
| + const Extension* extension = LoadAndLaunchPlatformApp("launch"); |
| + ShellWindow::CreateParams params; |
| + params.window_type = ShellWindow::WINDOW_TYPE_PANEL; |
| + params.focused = false; |
| + ShellWindow* window = CreateShellWindowFromParams(extension, params); |
| + ++item_count; |
| + ASSERT_EQ(item_count, launcher_model()->item_count()); |
| + const ash::LauncherItem& item = GetLastLauncherPanelItem(); |
| + EXPECT_EQ(ash::TYPE_APP_PANEL, item.type); |
| + // Opening a panel does not activate it. |
| + EXPECT_EQ(ash::STATUS_RUNNING, item.status); |
| + CloseShellWindow(window); |
| + --item_count; |
| + EXPECT_EQ(item_count, launcher_model()->item_count()); |
| +} |
| + |
| // Checks that the browser Alt "tabbing" is properly done. |
| IN_PROC_BROWSER_TEST_F(LauncherPerAppAppBrowserTestNoDefaultBrowser, |
| AltNumberBrowserTabbing) { |
| @@ -1614,3 +1642,35 @@ IN_PROC_BROWSER_TEST_F(LauncherPerAppAppBrowserTest, |
| EXPECT_EQ(0, browser()->tab_strip_model()->active_index()); |
| EXPECT_EQ(browser_id, controller->GetIDByWindow(window)); |
| } |
| + |
| +IN_PROC_BROWSER_TEST_F(LauncherPerAppAppBrowserTest, OverflowBubble) { |
|
Mr4D (OOO till 08-26)
2013/08/16 22:43:22
How did this get into this CL?
simonhong_
2013/08/19 05:26:11
This test is moved from (previous)chrome_launcher_
|
| + // Make sure to have a browser window |
| + chrome::NewTab(browser()); |
| + |
| + // No overflow yet. |
| + EXPECT_FALSE(launcher_->IsShowingOverflowBubble()); |
| + |
| + ash::test::LauncherViewTestAPI test(launcher_->GetLauncherViewForTest()); |
| + |
| + int items_added = 0; |
| + while (!test.IsOverflowButtonVisible()) { |
| + std::string fake_app_id = base::StringPrintf("fake_app_%d", items_added); |
| + PinFakeApp(fake_app_id); |
| + |
| + ++items_added; |
| + ASSERT_LT(items_added, 10000); |
| + } |
| + |
| + // Now show overflow bubble. |
| + test.ShowOverflowBubble(); |
| + EXPECT_TRUE(launcher_->IsShowingOverflowBubble()); |
| + |
| + // Unpin first pinned app and there should be no crash. |
| + ChromeLauncherController* controller = |
| + static_cast<ChromeLauncherController*>(launcher_->delegate()); |
| + controller->UnpinAppsWithID(std::string("fake_app_0")); |
| + |
| + test.RunMessageLoopUntilAnimationsDone(); |
| + EXPECT_FALSE(launcher_->IsShowingOverflowBubble()); |
| +} |
| + |