summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-13 22:30:47 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-13 22:30:47 +0000
commit4b3ac5b5d828f48e0fb451b832eee57d2712bce9 (patch)
treed7ef74f2af2974a3b6798d9cf0fb68afdc24a372
parentcf84a6486182531622c9cca2f6e21b0af8af864f (diff)
downloadchromium_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.cc1
-rw-r--r--ash/launcher/launcher_view_unittest.cc39
-rw-r--r--chrome/browser/ui/views/ash/launcher/launcher_platform_app_browsertest.cc20
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);
+}