diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-13 22:30:47 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-13 22:30:47 +0000 |
commit | 4b3ac5b5d828f48e0fb451b832eee57d2712bce9 (patch) | |
tree | d7ef74f2af2974a3b6798d9cf0fb68afdc24a372 | |
parent | cf84a6486182531622c9cca2f6e21b0af8af864f (diff) | |
download | chromium_src-4b3ac5b5d828f48e0fb451b832eee57d2712bce9.zip chromium_src-4b3ac5b5d828f48e0fb451b832eee57d2712bce9.tar.gz chromium_src-4b3ac5b5d828f48e0fb451b832eee57d2712bce9.tar.bz2 |
Ensure that item status is reflected in view
BUG=131878
TEST=New LauncherViewTest.LauncherItemStatusPlatformApp
Review URL: https://chromiumcodereview.appspot.com/10537150
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142004 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/launcher/launcher_view.cc | 1 | ||||
-rw-r--r-- | ash/launcher/launcher_view_unittest.cc | 39 | ||||
-rw-r--r-- | chrome/browser/ui/views/ash/launcher/launcher_platform_app_browsertest.cc | 20 |
3 files changed, 60 insertions, 0 deletions
diff --git a/ash/launcher/launcher_view.cc b/ash/launcher/launcher_view.cc index c780039..9327c83 100644 --- a/ash/launcher/launcher_view.cc +++ b/ash/launcher/launcher_view.cc @@ -863,6 +863,7 @@ void LauncherView::LauncherItemChanged(int model_index, } case TYPE_APP_SHORTCUT: + case TYPE_PLATFORM_APP: case TYPE_APP_PANEL: { LauncherButton* button = static_cast<LauncherButton*>(view); ReflectItemStatus(item, button); diff --git a/ash/launcher/launcher_view_unittest.cc b/ash/launcher/launcher_view_unittest.cc index b9cc90b..53dd935 100644 --- a/ash/launcher/launcher_view_unittest.cc +++ b/ash/launcher/launcher_view_unittest.cc @@ -193,6 +193,22 @@ class LauncherViewTest : public aura::test::AuraTestBase { return id; } + LauncherID AddPlatformAppNoWait() { + LauncherItem item; + item.type = TYPE_PLATFORM_APP; + item.status = STATUS_RUNNING; + + LauncherID id = model_->next_id(); + model_->Add(item); + return id; + } + + LauncherID AddPlatformApp() { + LauncherID id = AddPlatformAppNoWait(); + test_api_->RunMessageLoopUntilAnimationsDone(); + return id; + } + void RemoveByID(LauncherID id) { model_->RemoveItemAt(model_->ItemIndexByID(id)); test_api_->RunMessageLoopUntilAnimationsDone(); @@ -433,5 +449,28 @@ TEST_F(LauncherViewTest, LauncherItemStatus) { ASSERT_EQ(internal::LauncherButton::STATE_PENDING, button->state()); } +// Confirm that item status changes are reflected in the buttons +// for platform apps. +TEST_F(LauncherViewTest, LauncherItemStatusPlatformApp) { + ASSERT_EQ(test_api_->GetLastVisibleIndex() + 1, + test_api_->GetButtonCount()); + + // Add tabbed browser. + LauncherID last_added = AddPlatformApp(); + LauncherItem item = GetItemByID(last_added); + int index = model_->ItemIndexByID(last_added); + internal::LauncherButton* button = GetButtonByID(last_added); + ASSERT_EQ(internal::LauncherButton::STATE_RUNNING, button->state()); + item.status = ash::STATUS_ACTIVE; + model_->Set(index, item); + ASSERT_EQ(internal::LauncherButton::STATE_ACTIVE, button->state()); + item.status = ash::STATUS_ATTENTION; + model_->Set(index, item); + ASSERT_EQ(internal::LauncherButton::STATE_ATTENTION, button->state()); + item.status = ash::STATUS_IS_PENDING; + model_->Set(index, item); + ASSERT_EQ(internal::LauncherButton::STATE_PENDING, button->state()); +} + } // namespace test } // namespace ash diff --git a/chrome/browser/ui/views/ash/launcher/launcher_platform_app_browsertest.cc b/chrome/browser/ui/views/ash/launcher/launcher_platform_app_browsertest.cc index 1200f07..6ce528b 100644 --- a/chrome/browser/ui/views/ash/launcher/launcher_platform_app_browsertest.cc +++ b/chrome/browser/ui/views/ash/launcher/launcher_platform_app_browsertest.cc @@ -21,6 +21,7 @@ #include "chrome/browser/tab_contents/render_view_context_menu.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" +#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/extensions/application_launch.h" #include "chrome/browser/ui/extensions/shell_window.h" #include "chrome/browser/ui/views/ash/launcher/chrome_launcher_controller.h" @@ -247,3 +248,22 @@ IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, WindowActivation) { EXPECT_EQ(item_count, launcher->model()->item_count()); } + +IN_PROC_BROWSER_TEST_F(LauncherPlatformAppBrowserTest, BrowserActivation) { + ash::Launcher* launcher = ash::Shell::GetInstance()->launcher(); + int item_count = launcher->model()->item_count(); + + // First run app. + const Extension* extension1 = LoadAndLaunchPlatformApp("launch"); + CreateShellWindow(extension1); + ++item_count; + ASSERT_EQ(item_count, launcher->model()->item_count()); + ash::LauncherItem item1 = + launcher->model()->items()[launcher->model()->item_count() - 2]; + ash::LauncherID item_id1 = item1.id; + EXPECT_EQ(ash::TYPE_PLATFORM_APP, item1.type); + EXPECT_EQ(ash::STATUS_ACTIVE, item1.status); + + ash::wm::ActivateWindow(browser()->window()->GetNativeWindow()); + EXPECT_EQ(ash::STATUS_RUNNING, launcher->model()->ItemByID(item_id1)->status); +} |