Chromium Code Reviews| Index: chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc |
| diff --git a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc |
| deleted file mode 100644 |
| index 0f20bc2d49d912ce789dbe736538fc186649e428..0000000000000000000000000000000000000000 |
| --- a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc |
| +++ /dev/null |
| @@ -1,543 +0,0 @@ |
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
|
Mr4D (OOO till 08-26)
2013/08/19 16:13:56
Not quite sure if it was a good idea to remove thi
simonhong_
2013/08/19 21:00:57
I removed this file with per-browser related tests
|
| -// Use of this source code is governed by a BSD-style license that can be |
| -// found in the LICENSE file. |
| - |
| -#include "chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h" |
| - |
| -#include <map> |
| -#include <string> |
| - |
| -#include "ash/ash_switches.h" |
| -#include "ash/launcher/launcher_model.h" |
| -#include "base/command_line.h" |
| -#include "base/memory/scoped_ptr.h" |
| -#include "chrome/browser/favicon/favicon_tab_helper.h" |
| -#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" |
| -#include "chrome/browser/ui/ash/launcher/launcher_item_controller.h" |
| -#include "chrome/browser/ui/tabs/tab_strip_model.h" |
| -#include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h" |
| -#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| -#include "chrome/test/base/testing_profile.h" |
| -#include "content/public/browser/web_contents.h" |
| -#include "testing/gtest/include/gtest/gtest.h" |
| -#include "third_party/skia/include/core/SkBitmap.h" |
| -#include "ui/aura/client/activation_change_observer.h" |
| -#include "ui/aura/client/activation_delegate.h" |
| -#include "ui/aura/client/aura_constants.h" |
| -#include "ui/aura/root_window.h" |
| -#include "ui/aura/test/test_activation_client.h" |
| -#include "ui/aura/test/test_window_delegate.h" |
| -#include "ui/aura/window.h" |
| -#include "ui/aura/window_delegate.h" |
| -#include "ui/base/events/event.h" |
| - |
| -// TODO(skuhne): Remove this module together with the |
| -// browser_launcher_item_controller.* when the old launcher goes away. |
| - |
| -namespace { |
| - |
| -// Test implementation of AppTabHelper. |
| -class AppTabHelperImpl : public ChromeLauncherController::AppTabHelper { |
| - public: |
| - AppTabHelperImpl() {} |
| - virtual ~AppTabHelperImpl() {} |
| - |
| - // Sets the id for the specified tab. The id is removed if Remove() is |
| - // invoked. |
| - void SetAppID(content::WebContents* tab, const std::string& id) { |
| - tab_id_map_[tab] = id; |
| - } |
| - |
| - // Returns true if there is an id registered for |tab|. |
| - bool HasAppID(content::WebContents* tab) const { |
| - return tab_id_map_.find(tab) != tab_id_map_.end(); |
| - } |
| - |
| - // AppTabHelper implementation: |
| - virtual std::string GetAppID(content::WebContents* tab) OVERRIDE { |
| - return tab_id_map_.find(tab) != tab_id_map_.end() ? tab_id_map_[tab] : |
| - std::string(); |
| - } |
| - |
| - virtual bool IsValidID(const std::string& id) OVERRIDE { |
| - for (TabToStringMap::const_iterator i = tab_id_map_.begin(); |
| - i != tab_id_map_.end(); ++i) { |
| - if (i->second == id) |
| - return true; |
| - } |
| - return false; |
| - } |
| - |
| - private: |
| - typedef std::map<content::WebContents*, std::string> TabToStringMap; |
| - |
| - TabToStringMap tab_id_map_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(AppTabHelperImpl); |
| -}; |
| - |
| -// Test implementation of AppIconLoader. |
| -class AppIconLoaderImpl : public extensions::AppIconLoader { |
| - public: |
| - AppIconLoaderImpl() : fetch_count_(0) {} |
| - virtual ~AppIconLoaderImpl() {} |
| - |
| - // Returns the number of times FetchImage() has been invoked and resets the |
| - // count to 0. |
| - int GetAndClearFetchCount() { |
| - int value = fetch_count_; |
| - fetch_count_ = 0; |
| - return value; |
| - } |
| - |
| - // AppIconLoader implementation: |
| - virtual void FetchImage(const std::string& id) OVERRIDE { |
| - fetch_count_++; |
| - } |
| - virtual void ClearImage(const std::string& id) OVERRIDE { |
| - } |
| - virtual void UpdateImage(const std::string& id) OVERRIDE { |
| - } |
| - |
| - private: |
| - int fetch_count_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(AppIconLoaderImpl); |
| -}; |
| - |
| -// Test implementation of TabStripModelDelegate. |
| -class TabHelperTabStripModelDelegate : public TestTabStripModelDelegate { |
| - public: |
| - TabHelperTabStripModelDelegate() {} |
| - virtual ~TabHelperTabStripModelDelegate() {} |
| - |
| - virtual void WillAddWebContents(content::WebContents* contents) OVERRIDE { |
| - // BrowserLauncherItemController assumes that all WebContents passed to it |
| - // have attached an extensions::TabHelper and a FaviconTabHelper. The |
| - // TestTabStripModelDelegate adds an extensions::TabHelper. |
| - TestTabStripModelDelegate::WillAddWebContents(contents); |
| - FaviconTabHelper::CreateForWebContents(contents); |
| - } |
| - |
| - private: |
| - DISALLOW_COPY_AND_ASSIGN(TabHelperTabStripModelDelegate); |
| -}; |
| - |
| -} // namespace |
| - |
| -// TODO(skuhne): Several of these unit tests need to be moved into a new home |
| -// when the old launcher & the browser launcher item controller are removed |
| -// (several of these tests are not testing the BrowserLauncherItemController - |
| -// but the LauncherController framework). |
| -class LauncherItemControllerPerAppTest |
| - : public ChromeRenderViewHostTestHarness { |
| - public: |
| - virtual void SetUp() OVERRIDE { |
| - ChromeRenderViewHostTestHarness::SetUp(); |
| - |
| - activation_client_.reset( |
| - new aura::test::TestActivationClient(root_window())); |
| - launcher_model_.reset(new ash::LauncherModel); |
| - launcher_delegate_.reset( |
| - ChromeLauncherController::CreateInstance(profile(), |
| - launcher_model_.get())); |
| - app_tab_helper_ = new AppTabHelperImpl; |
| - app_icon_loader_ = new AppIconLoaderImpl; |
| - launcher_delegate_->SetAppTabHelperForTest(app_tab_helper_); |
| - launcher_delegate_->SetAppIconLoaderForTest(app_icon_loader_); |
| - launcher_delegate_->Init(); |
| - } |
| - |
| - virtual void TearDown() OVERRIDE { |
| - launcher_delegate_.reset(); |
| - ChromeRenderViewHostTestHarness::TearDown(); |
| - } |
| - |
| - protected: |
| - // Contains all the objects needed to create a BrowserLauncherItemController. |
| - struct State : public aura::client::ActivationDelegate, |
| - public aura::client::ActivationChangeObserver { |
| - public: |
| - State(LauncherItemControllerPerAppTest* test, |
| - const std::string& app_id, |
| - BrowserLauncherItemController::Type launcher_type) |
| - : launcher_test(test), |
| - window(NULL), |
| - tab_strip(&tab_strip_delegate, test->profile()), |
| - updater(launcher_type, |
| - &window, |
| - &tab_strip, |
| - test->launcher_delegate_.get(), |
| - app_id) { |
| - window.Init(ui::LAYER_NOT_DRAWN); |
| - launcher_test->root_window()->AddChild(&window); |
| - launcher_test->activation_client_->ActivateWindow(&window); |
| - aura::client::SetActivationDelegate(&window, this); |
| - aura::client::SetActivationChangeObserver(&window, this); |
| - updater.Init(); |
| - } |
| - |
| - ash::LauncherItem GetUpdaterItem() { |
| - ash::LauncherID launcher_id = |
| - BrowserLauncherItemController::TestApi(&updater).item_id(); |
| - int index = launcher_test->launcher_model_->ItemIndexByID(launcher_id); |
| - return launcher_test->launcher_model_->items()[index]; |
| - } |
| - |
| - // aura::client::ActivationDelegate overrides. |
| - virtual bool ShouldActivate() const OVERRIDE { |
| - return true; |
| - } |
| - |
| - // aura::client::ActivationChangeObserver overrides: |
| - virtual void OnWindowActivated(aura::Window* gained_active, |
| - aura::Window* lost_active) OVERRIDE { |
| - DCHECK(&window == gained_active || &window == lost_active); |
| - updater.BrowserActivationStateChanged(); |
| - } |
| - |
| - LauncherItemControllerPerAppTest* launcher_test; |
| - aura::Window window; |
| - TabHelperTabStripModelDelegate tab_strip_delegate; |
| - TabStripModel tab_strip; |
| - BrowserLauncherItemController updater; |
| - |
| - private: |
| - DISALLOW_COPY_AND_ASSIGN(State); |
| - }; |
| - |
| - const std::string& GetAppID(ash::LauncherID id) const { |
| - return launcher_delegate_->GetAppIdFromLauncherIdForTest(id); |
| - } |
| - |
| - void ResetAppTabHelper() { |
| - launcher_delegate_->SetAppTabHelperForTest(app_tab_helper_); |
| - } |
| - |
| - void ResetAppIconLoader() { |
| - launcher_delegate_->SetAppIconLoaderForTest(app_icon_loader_); |
| - } |
| - |
| - void UnpinAppsWithID(const std::string& app_id) { |
| - launcher_delegate_->UnpinAppsWithID(app_id); |
| - } |
| - |
| - const ash::LauncherItem& GetItem(BrowserLauncherItemController* updater) { |
| - int index = launcher_model_->ItemIndexByID( |
| - BrowserLauncherItemController::TestApi(updater).item_id()); |
| - return launcher_model_->items()[index]; |
| - } |
| - |
| - scoped_ptr<ash::LauncherModel> launcher_model_; |
| - scoped_ptr<ChromeLauncherController> launcher_delegate_; |
| - |
| - // Owned by BrowserLauncherItemController. |
| - AppTabHelperImpl* app_tab_helper_; |
| - AppIconLoaderImpl* app_icon_loader_; |
| - |
| - scoped_ptr<aura::test::TestActivationClient> activation_client_; |
| -}; |
| - |
| -// Verify that the launcher item positions are persisted and restored. |
| -TEST_F(LauncherItemControllerPerAppTest, PersistLauncherItemPositions) { |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[0].type); |
| - EXPECT_EQ(ash::TYPE_APP_LIST, |
| - launcher_model_->items()[1].type); |
| - scoped_ptr<content::WebContents> tab1(CreateTestWebContents()); |
| - scoped_ptr<content::WebContents> tab2(CreateTestWebContents()); |
| - app_tab_helper_->SetAppID(tab1.get(), "1"); |
| - app_tab_helper_->SetAppID(tab1.get(), "2"); |
| - |
| - EXPECT_FALSE(launcher_delegate_->IsAppPinned("1")); |
| - launcher_delegate_->PinAppWithID("1"); |
| - EXPECT_TRUE(launcher_delegate_->IsAppPinned("1")); |
| - launcher_delegate_->PinAppWithID("2"); |
| - |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[0].type); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[1].type); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[2].type); |
| - EXPECT_EQ(ash::TYPE_APP_LIST, |
| - launcher_model_->items()[3].type); |
| - |
| - launcher_model_->Move(0, 2); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[0].type); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[1].type); |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[2].type); |
| - EXPECT_EQ(ash::TYPE_APP_LIST, |
| - launcher_model_->items()[3].type); |
| - |
| - launcher_delegate_.reset(); |
| - launcher_model_.reset(new ash::LauncherModel); |
| - launcher_delegate_.reset( |
| - ChromeLauncherController::CreateInstance(profile(), |
| - launcher_model_.get())); |
| - app_tab_helper_ = new AppTabHelperImpl; |
| - app_tab_helper_->SetAppID(tab1.get(), "1"); |
| - app_tab_helper_->SetAppID(tab2.get(), "2"); |
| - ResetAppTabHelper(); |
| - |
| - launcher_delegate_->Init(); |
| - |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[0].type); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[1].type); |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[2].type); |
| - EXPECT_EQ(ash::TYPE_APP_LIST, |
| - launcher_model_->items()[3].type); |
| -} |
| - |
| -class BrowserLauncherItemControllerTest |
| - : public LauncherItemControllerPerAppTest { |
| - public: |
| - BrowserLauncherItemControllerTest() {} |
| - |
| - virtual void SetUp() OVERRIDE { |
| - CommandLine::ForCurrentProcess()->AppendSwitch( |
| - ash::switches::kAshDisablePerAppLauncher); |
| - |
| - LauncherItemControllerPerAppTest::SetUp(); |
| - } |
| - |
| - virtual void TearDown() OVERRIDE { |
| - LauncherItemControllerPerAppTest::TearDown(); |
| - } |
| -}; |
| - |
| -// Verifies a new launcher item is added for TYPE_TABBED. |
| -TEST_F(BrowserLauncherItemControllerTest, TabbedSetup) { |
| - size_t initial_size = launcher_model_->items().size(); |
| - { |
| - scoped_ptr<content::WebContents> web_contents(CreateTestWebContents()); |
| - State state(this, std::string(), |
| - BrowserLauncherItemController::TYPE_TABBED); |
| - |
| - // There should be one more item. |
| - ASSERT_EQ(initial_size + 1, launcher_model_->items().size()); |
| - // New item should be added at the end. |
| - EXPECT_EQ(ash::TYPE_TABBED, state.GetUpdaterItem().type); |
| - } |
| - |
| - // Deleting the BrowserLauncherItemController should have removed the item. |
| - ASSERT_EQ(initial_size, launcher_model_->items().size()); |
| - |
| - // Do the same, but this time add the tab first. |
| - { |
| - scoped_ptr<content::WebContents> web_contents(CreateTestWebContents()); |
| - |
| - TabHelperTabStripModelDelegate tab_strip_delegate; |
| - TabStripModel tab_strip(&tab_strip_delegate, profile()); |
| - tab_strip.InsertWebContentsAt(0, |
| - web_contents.get(), |
| - TabStripModel::ADD_ACTIVE); |
| - aura::Window window(NULL); |
| - window.Init(ui::LAYER_NOT_DRAWN); |
| - root_window()->AddChild(&window); |
| - BrowserLauncherItemController updater( |
| - LauncherItemController::TYPE_TABBED, |
| - &window, &tab_strip, launcher_delegate_.get(), |
| - std::string()); |
| - updater.Init(); |
| - |
| - // There should be one more item. |
| - ASSERT_EQ(initial_size + 1, launcher_model_->items().size()); |
| - // New item should be added at the end. |
| - EXPECT_EQ(ash::TYPE_TABBED, GetItem(&updater).type); |
| - } |
| -} |
| - |
| -// Verifies pinned apps are persisted and restored. |
| -TEST_F(BrowserLauncherItemControllerTest, PersistPinned) { |
| - size_t initial_size = launcher_model_->items().size(); |
| - scoped_ptr<content::WebContents> tab1(CreateTestWebContents()); |
| - |
| - app_tab_helper_->SetAppID(tab1.get(), "1"); |
| - |
| - app_icon_loader_->GetAndClearFetchCount(); |
| - launcher_delegate_->PinAppWithID("1"); |
| - ash::LauncherID id = launcher_delegate_->GetLauncherIDForAppID("1"); |
| - int app_index = launcher_model_->ItemIndexByID(id); |
| - EXPECT_GT(app_icon_loader_->GetAndClearFetchCount(), 0); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[app_index].type); |
| - EXPECT_TRUE(launcher_delegate_->IsAppPinned("1")); |
| - EXPECT_FALSE(launcher_delegate_->IsAppPinned("0")); |
| - EXPECT_EQ(initial_size + 1, launcher_model_->items().size()); |
| - |
| - launcher_delegate_.reset(); |
| - launcher_model_.reset(new ash::LauncherModel); |
| - launcher_delegate_.reset( |
| - ChromeLauncherController::CreateInstance(profile(), |
| - launcher_model_.get())); |
| - app_tab_helper_ = new AppTabHelperImpl; |
| - app_tab_helper_->SetAppID(tab1.get(), "1"); |
| - ResetAppTabHelper(); |
| - app_icon_loader_ = new AppIconLoaderImpl; |
| - ResetAppIconLoader(); |
| - launcher_delegate_->Init(); |
| - EXPECT_GT(app_icon_loader_->GetAndClearFetchCount(), 0); |
| - ASSERT_EQ(initial_size + 1, launcher_model_->items().size()); |
| - EXPECT_TRUE(launcher_delegate_->IsAppPinned("1")); |
| - EXPECT_FALSE(launcher_delegate_->IsAppPinned("0")); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[app_index].type); |
| - |
| - UnpinAppsWithID("1"); |
| - ASSERT_EQ(initial_size, launcher_model_->items().size()); |
| -} |
| - |
| -// Verify that launcher item positions are persisted and restored. |
| -TEST_F(BrowserLauncherItemControllerTest, |
| - PersistLauncherItemPositionsPerBrowser) { |
| - int browser_shortcut_index = 0; |
| - int app_list_index = 1; |
| - |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[browser_shortcut_index].type); |
| - EXPECT_EQ(ash::TYPE_APP_LIST, |
| - launcher_model_->items()[app_list_index].type); |
| - |
| - scoped_ptr<content::WebContents> tab1(CreateTestWebContents()); |
| - scoped_ptr<content::WebContents> tab2(CreateTestWebContents()); |
| - |
| - app_tab_helper_->SetAppID(tab1.get(), "1"); |
| - app_tab_helper_->SetAppID(tab2.get(), "2"); |
| - |
| - app_icon_loader_->GetAndClearFetchCount(); |
| - launcher_delegate_->PinAppWithID("1"); |
| - ash::LauncherID id = launcher_delegate_->GetLauncherIDForAppID("1"); |
| - int app1_index = launcher_model_->ItemIndexByID(id); |
| - |
| - launcher_delegate_->PinAppWithID("2"); |
| - id = launcher_delegate_->GetLauncherIDForAppID("2"); |
| - int app2_index = launcher_model_->ItemIndexByID(id); |
| - |
| - launcher_model_->Move(browser_shortcut_index, app1_index); |
| - |
| - browser_shortcut_index = 1; |
| - app1_index = 0; |
| - |
| - EXPECT_GT(app_icon_loader_->GetAndClearFetchCount(), 0); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[app1_index].type); |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[browser_shortcut_index].type); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[app2_index].type); |
| - |
| - launcher_delegate_.reset(); |
| - launcher_model_.reset(new ash::LauncherModel); |
| - launcher_delegate_.reset( |
| - ChromeLauncherController::CreateInstance(profile(), |
| - launcher_model_.get())); |
| - |
| - app_tab_helper_ = new AppTabHelperImpl; |
| - app_tab_helper_->SetAppID(tab1.get(), "1"); |
| - app_tab_helper_->SetAppID(tab2.get(), "2"); |
| - ResetAppTabHelper(); |
| - app_icon_loader_ = new AppIconLoaderImpl; |
| - ResetAppIconLoader(); |
| - launcher_delegate_->Init(); |
| - |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[app1_index].type); |
| - EXPECT_EQ(ash::TYPE_BROWSER_SHORTCUT, |
| - launcher_model_->items()[browser_shortcut_index].type); |
| - EXPECT_EQ(ash::TYPE_APP_SHORTCUT, |
| - launcher_model_->items()[app2_index].type); |
| -} |
| - |
| -// Confirm that tabbed browsers handle activation correctly. |
| -TEST_F(BrowserLauncherItemControllerTest, ActivateBrowsers) { |
| - State state1(this, std::string(), BrowserLauncherItemController::TYPE_TABBED); |
| - |
| - // First browser is active. |
| - EXPECT_EQ(ash::STATUS_ACTIVE, state1.GetUpdaterItem().status); |
| - |
| - { |
| - // Both running. |
| - State state2(this, std::string(), |
| - BrowserLauncherItemController::TYPE_TABBED); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, state2.GetUpdaterItem().status); |
| - EXPECT_EQ(ash::STATUS_RUNNING, state1.GetUpdaterItem().status); |
| - |
| - // Make first browser active again. |
| - activation_client_->ActivateWindow(&state1.window); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, state1.GetUpdaterItem().status); |
| - EXPECT_EQ(ash::STATUS_RUNNING, state2.GetUpdaterItem().status); |
| - |
| - // And back to second. |
| - activation_client_->ActivateWindow(&state2.window); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, state2.GetUpdaterItem().status); |
| - EXPECT_EQ(ash::STATUS_RUNNING, state1.GetUpdaterItem().status); |
| - } |
| - |
| - // First browser should be active again after second is closed. |
| - EXPECT_EQ(ash::STATUS_ACTIVE, state1.GetUpdaterItem().status); |
| -} |
| - |
| -// Confirm that window activation works through the model. |
| -TEST_F(BrowserLauncherItemControllerTest, SwitchDirectlyToApp) { |
| - State state1(this, std::string(), |
| - BrowserLauncherItemController::TYPE_TABBED); |
| - int index1 = launcher_model_->ItemIndexByID(state1.GetUpdaterItem().id); |
| - |
| - // Second app is active and first is inactive. |
| - State state2(this, std::string(), |
| - BrowserLauncherItemController::TYPE_TABBED); |
| - int index2 = launcher_model_->ItemIndexByID(state2.GetUpdaterItem().id); |
| - |
| - EXPECT_EQ(ash::STATUS_RUNNING, state1.GetUpdaterItem().status); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, state2.GetUpdaterItem().status); |
| - EXPECT_EQ(&state2.window, activation_client_->GetActiveWindow()); |
| - |
| - // Test that we can properly switch to the first item. |
| - ash::LauncherItem new_item1(launcher_model_->items()[index1]); |
| - new_item1.status = ash::STATUS_ACTIVE; |
| - launcher_model_->Set(index1, new_item1); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, launcher_model_->items()[index1].status); |
| - EXPECT_EQ(ash::STATUS_RUNNING, launcher_model_->items()[index2].status); |
| - EXPECT_EQ(&state1.window, activation_client_->GetActiveWindow()); |
| - |
| - // And to the second item active. |
| - ash::LauncherItem new_item2(launcher_model_->items()[index2]); |
| - new_item2.status = ash::STATUS_ACTIVE; |
| - launcher_model_->Set(index2, new_item2); |
| - EXPECT_EQ(ash::STATUS_RUNNING, launcher_model_->items()[index1].status); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, launcher_model_->items()[index2].status); |
| - EXPECT_EQ(&state2.window, activation_client_->GetActiveWindow()); |
| -} |
| - |
| -// Test attention states of windows. |
| -TEST_F(BrowserLauncherItemControllerTest, FlashWindow) { |
| - // App panel first |
| - State app_state(this, "1", BrowserLauncherItemController::TYPE_APP_PANEL); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, app_state.GetUpdaterItem().status); |
| - |
| - // Active windows don't show attention. |
| - app_state.window.SetProperty(aura::client::kDrawAttentionKey, true); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, app_state.GetUpdaterItem().status); |
| - |
| - // Then browser window |
| - State browser_state( |
| - this, std::string(), BrowserLauncherItemController::TYPE_TABBED); |
| - // First browser is active. |
| - EXPECT_EQ(ash::STATUS_ACTIVE, browser_state.GetUpdaterItem().status); |
| - EXPECT_EQ(ash::STATUS_RUNNING, app_state.GetUpdaterItem().status); |
| - |
| - // App window should go to attention state. |
| - app_state.window.SetProperty(aura::client::kDrawAttentionKey, true); |
| - EXPECT_EQ(ash::STATUS_ATTENTION, app_state.GetUpdaterItem().status); |
| - |
| - // Activating app window should clear attention state. |
| - activation_client_->ActivateWindow(&app_state.window); |
| - EXPECT_EQ(ash::STATUS_ACTIVE, app_state.GetUpdaterItem().status); |
| -} |