| Index: ash/shelf/shelf_window_watcher_unittest.cc
|
| diff --git a/ash/shelf/shelf_window_watcher_unittest.cc b/ash/shelf/shelf_window_watcher_unittest.cc
|
| deleted file mode 100644
|
| index 25a2cd3bc9a30d5304bb3c2c89c51e962d3f3dfa..0000000000000000000000000000000000000000
|
| --- a/ash/shelf/shelf_window_watcher_unittest.cc
|
| +++ /dev/null
|
| @@ -1,272 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ash/shelf/shelf_window_watcher.h"
|
| -
|
| -#include "ash/aura/wm_window_aura.h"
|
| -#include "ash/common/ash_switches.h"
|
| -#include "ash/common/shelf/shelf_item_types.h"
|
| -#include "ash/common/shelf/shelf_model.h"
|
| -#include "ash/common/shell_window_ids.h"
|
| -#include "ash/common/wm/window_resizer.h"
|
| -#include "ash/common/wm/window_state.h"
|
| -#include "ash/common/wm_shell.h"
|
| -#include "ash/shelf/shelf_util.h"
|
| -#include "ash/shell.h"
|
| -#include "ash/test/ash_test_base.h"
|
| -#include "ash/wm/window_state_aura.h"
|
| -#include "ash/wm/window_util.h"
|
| -#include "base/command_line.h"
|
| -#include "ui/aura/client/aura_constants.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/base/hit_test.h"
|
| -
|
| -namespace ash {
|
| -
|
| -class ShelfWindowWatcherTest : public test::AshTestBase {
|
| - public:
|
| - ShelfWindowWatcherTest() : model_(NULL) {}
|
| - ~ShelfWindowWatcherTest() override {}
|
| -
|
| - void SetUp() override {
|
| - test::AshTestBase::SetUp();
|
| - model_ = WmShell::Get()->shelf_model();
|
| - }
|
| -
|
| - void TearDown() override {
|
| - model_ = NULL;
|
| - test::AshTestBase::TearDown();
|
| - }
|
| -
|
| - ShelfID CreateShelfItem(aura::Window* window) {
|
| - ShelfID id = model_->next_id();
|
| - ShelfItemDetails item_details;
|
| - item_details.type = TYPE_PLATFORM_APP;
|
| - SetShelfItemDetailsForWindow(window, item_details);
|
| - return id;
|
| - }
|
| -
|
| - // Creates a window with ShelfItemDetails and adds it to the default window
|
| - // container.
|
| - std::unique_ptr<aura::Window> CreateWindowWithShelfItemDetails() {
|
| - std::unique_ptr<aura::Window> window(new aura::Window(nullptr));
|
| - window->SetType(ui::wm::WINDOW_TYPE_NORMAL);
|
| - window->Init(ui::LAYER_TEXTURED);
|
| - window->Show();
|
| -
|
| - CreateShelfItem(window.get());
|
| -
|
| - ParentWindowInPrimaryRootWindow(window.get());
|
| - return window;
|
| - }
|
| -
|
| - protected:
|
| - ShelfModel* model_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ShelfWindowWatcherTest);
|
| -};
|
| -
|
| -// Tests that shelf items are added and removed as windows are opened and
|
| -// closed.
|
| -TEST_F(ShelfWindowWatcherTest, OpenAndClose) {
|
| - // ShelfModel only has an APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - // Adding windows with ShelfItemDetails properties adds shelf items.
|
| - std::unique_ptr<aura::Window> w1(CreateWindowWithShelfItemDetails());
|
| - EXPECT_EQ(2, model_->item_count());
|
| - std::unique_ptr<aura::Window> w2(CreateWindowWithShelfItemDetails());
|
| - EXPECT_EQ(3, model_->item_count());
|
| -
|
| - // Each ShelfItem is removed when the associated window is destroyed.
|
| - w1.reset();
|
| - EXPECT_EQ(2, model_->item_count());
|
| - w2.reset();
|
| - EXPECT_EQ(1, model_->item_count());
|
| -}
|
| -
|
| -TEST_F(ShelfWindowWatcherTest, CreateAndRemoveShelfItemDetails) {
|
| - // ShelfModel only has an APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - // Creating windows without ShelfItemDetails does not add items.
|
| - std::unique_ptr<aura::Window> w1(CreateTestWindowInShellWithId(0));
|
| - std::unique_ptr<aura::Window> w2(CreateTestWindowInShellWithId(0));
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - // Create a ShelfItem for w1.
|
| - ShelfID id_w1 = CreateShelfItem(w1.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| -
|
| - int index_w1 = model_->ItemIndexByID(id_w1);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w1].status);
|
| -
|
| - // Create a ShelfItem for w2.
|
| - ShelfID id_w2 = CreateShelfItem(w2.get());
|
| - EXPECT_EQ(3, model_->item_count());
|
| -
|
| - int index_w2 = model_->ItemIndexByID(id_w2);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w2].status);
|
| -
|
| - // ShelfItem is removed when its window property is cleared.
|
| - ClearShelfItemDetailsForWindow(w1.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| - ClearShelfItemDetailsForWindow(w2.get());
|
| - EXPECT_EQ(1, model_->item_count());
|
| - // Clearing twice doesn't do anything.
|
| - ClearShelfItemDetailsForWindow(w2.get());
|
| - EXPECT_EQ(1, model_->item_count());
|
| -}
|
| -
|
| -TEST_F(ShelfWindowWatcherTest, ActivateWindow) {
|
| - // ShelfModel only have APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| - std::unique_ptr<aura::Window> w1(CreateTestWindowInShellWithId(0));
|
| - std::unique_ptr<aura::Window> w2(CreateTestWindowInShellWithId(0));
|
| -
|
| - // Create a ShelfItem for w1.
|
| - ShelfID id_w1 = CreateShelfItem(w1.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| - int index_w1 = model_->ItemIndexByID(id_w1);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w1].status);
|
| -
|
| - // Create a ShelfItem for w2.
|
| - ShelfID id_w2 = CreateShelfItem(w2.get());
|
| - EXPECT_EQ(3, model_->item_count());
|
| - int index_w2 = model_->ItemIndexByID(id_w2);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w1].status);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w2].status);
|
| -
|
| - // ShelfItem for w1 is active when w1 is activated.
|
| - wm::ActivateWindow(w1.get());
|
| - EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w1].status);
|
| -
|
| - // ShelfItem for w2 is active state when w2 is activated.
|
| - wm::ActivateWindow(w2.get());
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w1].status);
|
| - EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w2].status);
|
| -}
|
| -
|
| -TEST_F(ShelfWindowWatcherTest, UpdateWindowProperty) {
|
| - // ShelfModel only has an APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
|
| -
|
| - // Create a ShelfItem for |window|.
|
| - ShelfID id = CreateShelfItem(window.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| -
|
| - int index = model_->ItemIndexByID(id);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
|
| -
|
| - // Update ShelfItem for |window|.
|
| - ShelfItemDetails details;
|
| - details.type = TYPE_PLATFORM_APP;
|
| -
|
| - SetShelfItemDetailsForWindow(window.get(), details);
|
| - // No new item is created after updating a launcher item.
|
| - EXPECT_EQ(2, model_->item_count());
|
| - // index and id are not changed after updating a launcher item.
|
| - EXPECT_EQ(index, model_->ItemIndexByID(id));
|
| - EXPECT_EQ(id, model_->items()[index].id);
|
| -}
|
| -
|
| -TEST_F(ShelfWindowWatcherTest, MaximizeAndRestoreWindow) {
|
| - // ShelfModel only has an APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
|
| - wm::WindowState* window_state = wm::GetWindowState(window.get());
|
| -
|
| - // Create a ShelfItem for |window|.
|
| - ShelfID id = CreateShelfItem(window.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| -
|
| - int index = model_->ItemIndexByID(id);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
|
| -
|
| - // Maximize window |window|.
|
| - EXPECT_FALSE(window_state->IsMaximized());
|
| - window_state->Maximize();
|
| - EXPECT_TRUE(window_state->IsMaximized());
|
| - // No new item is created after maximizing a window |window|.
|
| - EXPECT_EQ(2, model_->item_count());
|
| - // index and id are not changed after maximizing a window |window|.
|
| - EXPECT_EQ(index, model_->ItemIndexByID(id));
|
| - EXPECT_EQ(id, model_->items()[index].id);
|
| -
|
| - // Restore window |window|.
|
| - window_state->Restore();
|
| - EXPECT_FALSE(window_state->IsMaximized());
|
| - // No new item is created after restoring a window |window|.
|
| - EXPECT_EQ(2, model_->item_count());
|
| - // Index and id are not changed after maximizing a window |window|.
|
| - EXPECT_EQ(index, model_->ItemIndexByID(id));
|
| - EXPECT_EQ(id, model_->items()[index].id);
|
| -}
|
| -
|
| -// Check that an item is maintained when its associated Window is docked.
|
| -TEST_F(ShelfWindowWatcherTest, DockWindow) {
|
| - // ShelfModel only has an APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
|
| - window->set_owned_by_parent(false);
|
| -
|
| - // Create a ShelfItem for |window|.
|
| - ShelfID id = CreateShelfItem(window.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| -
|
| - int index = model_->ItemIndexByID(id);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
|
| -
|
| - aura::Window* root_window = window->GetRootWindow();
|
| - aura::Window* default_container =
|
| - Shell::GetContainer(root_window, kShellWindowId_DefaultContainer);
|
| - EXPECT_EQ(default_container, window->parent());
|
| -
|
| - aura::Window* docked_container =
|
| - Shell::GetContainer(root_window, kShellWindowId_DockedContainer);
|
| -
|
| - // Check |window|'s item is not removed when it is re-parented to the dock.
|
| - docked_container->AddChild(window.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| -
|
| - // The shelf item is removed when the window is closed, even if it is in the
|
| - // docked container at the time.
|
| - window.reset();
|
| - EXPECT_EQ(1, model_->item_count());
|
| -}
|
| -
|
| -// Check |window|'s item is not changed during the dragging.
|
| -// TODO(simonhong): Add a test for removing a Window during the dragging.
|
| -TEST_F(ShelfWindowWatcherTest, DragWindow) {
|
| - // ShelfModel only has an APP_LIST item.
|
| - EXPECT_EQ(1, model_->item_count());
|
| -
|
| - std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(0));
|
| -
|
| - // Create a ShelfItem for |window|.
|
| - ShelfID id = CreateShelfItem(window.get());
|
| - EXPECT_EQ(2, model_->item_count());
|
| -
|
| - int index = model_->ItemIndexByID(id);
|
| - EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
|
| -
|
| - // Simulate dragging of |window| and check its item is not changed.
|
| - std::unique_ptr<WindowResizer> resizer(
|
| - CreateWindowResizer(WmWindowAura::Get(window.get()), gfx::Point(),
|
| - HTCAPTION, aura::client::WINDOW_MOVE_SOURCE_MOUSE));
|
| - ASSERT_TRUE(resizer.get());
|
| - resizer->Drag(gfx::Point(50, 50), 0);
|
| - resizer->CompleteDrag();
|
| -
|
| - // Index and id are not changed after dragging a |window|.
|
| - EXPECT_EQ(index, model_->ItemIndexByID(id));
|
| - EXPECT_EQ(id, model_->items()[index].id);
|
| -}
|
| -
|
| -} // namespace ash
|
|
|