Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3126)

Unified Diff: ash/common/shelf/shelf_window_watcher_unittest.cc

Issue 2211463002: mash: Move ShelfWindowWatcher[ItemDelegate] to ash/common. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move ShelfWindowWatcher to WmShell. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/common/shelf/shelf_window_watcher_unittest.cc
diff --git a/ash/shelf/shelf_window_watcher_unittest.cc b/ash/common/shelf/shelf_window_watcher_unittest.cc
similarity index 57%
rename from ash/shelf/shelf_window_watcher_unittest.cc
rename to ash/common/shelf/shelf_window_watcher_unittest.cc
index 25a2cd3bc9a30d5304bb3c2c89c51e962d3f3dfa..0d91372cdbd737d4c2f9ef6319847b353555299e 100644
--- a/ash/shelf/shelf_window_watcher_unittest.cc
+++ b/ash/common/shelf/shelf_window_watcher_unittest.cc
@@ -2,31 +2,26 @@
// 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/common/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_lookup.h"
#include "ash/common/wm_shell.h"
-#include "ash/shelf/shelf_util.h"
-#include "ash/shell.h"
+#include "ash/common/wm_window.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"
+#include "ui/views/widget/widget.h"
namespace ash {
class ShelfWindowWatcherTest : public test::AshTestBase {
public:
- ShelfWindowWatcherTest() : model_(NULL) {}
+ ShelfWindowWatcherTest() : model_(nullptr) {}
~ShelfWindowWatcherTest() override {}
void SetUp() override {
@@ -35,32 +30,18 @@ class ShelfWindowWatcherTest : public test::AshTestBase {
}
void TearDown() override {
- model_ = NULL;
+ model_ = nullptr;
test::AshTestBase::TearDown();
}
- ShelfID CreateShelfItem(aura::Window* window) {
+ ShelfID CreateShelfItem(WmWindow* window) {
ShelfID id = model_->next_id();
ShelfItemDetails item_details;
item_details.type = TYPE_PLATFORM_APP;
- SetShelfItemDetailsForWindow(window, item_details);
+ window->SetShelfItemDetails(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_;
@@ -68,22 +49,25 @@ class ShelfWindowWatcherTest : public test::AshTestBase {
DISALLOW_COPY_AND_ASSIGN(ShelfWindowWatcherTest);
};
-// Tests that shelf items are added and removed as windows are opened and
-// closed.
+// Ensure 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());
+ std::unique_ptr<views::Widget> widget1 =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ CreateShelfItem(WmLookup::Get()->GetWindowForWidget(widget1.get()));
EXPECT_EQ(2, model_->item_count());
- std::unique_ptr<aura::Window> w2(CreateWindowWithShelfItemDetails());
+ std::unique_ptr<views::Widget> widget2 =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ CreateShelfItem(WmLookup::Get()->GetWindowForWidget(widget2.get()));
EXPECT_EQ(3, model_->item_count());
// Each ShelfItem is removed when the associated window is destroyed.
- w1.reset();
+ widget1.reset();
EXPECT_EQ(2, model_->item_count());
- w2.reset();
+ widget2.reset();
EXPECT_EQ(1, model_->item_count());
}
@@ -92,59 +76,68 @@ TEST_F(ShelfWindowWatcherTest, CreateAndRemoveShelfItemDetails) {
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));
+ std::unique_ptr<views::Widget> widget1 =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window1 = WmLookup::Get()->GetWindowForWidget(widget1.get());
+ std::unique_ptr<views::Widget> widget2 =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window2 = WmLookup::Get()->GetWindowForWidget(widget2.get());
EXPECT_EQ(1, model_->item_count());
- // Create a ShelfItem for w1.
- ShelfID id_w1 = CreateShelfItem(w1.get());
+ // Create a ShelfItem for the first window.
+ ShelfID id_w1 = CreateShelfItem(window1);
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());
+ // Create a ShelfItem for the second window.
+ ShelfID id_w2 = CreateShelfItem(window2);
EXPECT_EQ(3, model_->item_count());
int index_w2 = model_->ItemIndexByID(id_w2);
- EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w2].status);
+ EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w2].status);
// ShelfItem is removed when its window property is cleared.
- ClearShelfItemDetailsForWindow(w1.get());
+ window1->ClearShelfItemDetails();
EXPECT_EQ(2, model_->item_count());
- ClearShelfItemDetailsForWindow(w2.get());
+ window2->ClearShelfItemDetails();
EXPECT_EQ(1, model_->item_count());
// Clearing twice doesn't do anything.
- ClearShelfItemDetailsForWindow(w2.get());
+ window2->ClearShelfItemDetails();
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());
+ std::unique_ptr<views::Widget> widget1 =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window1 = WmLookup::Get()->GetWindowForWidget(widget1.get());
+ std::unique_ptr<views::Widget> widget2 =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window2 = WmLookup::Get()->GetWindowForWidget(widget2.get());
+
+ // Create a ShelfItem for the first window.
+ ShelfID id_w1 = CreateShelfItem(window1);
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());
+ // Create a ShelfItem for the second window.
+ ShelfID id_w2 = CreateShelfItem(window2);
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);
+ EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w2].status);
- // ShelfItem for w1 is active when w1 is activated.
- wm::ActivateWindow(w1.get());
+ // The ShelfItem for the first window is active when the window is activated.
+ widget1->Activate();
EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w1].status);
+ EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w2].status);
- // ShelfItem for w2 is active state when w2 is activated.
- wm::ActivateWindow(w2.get());
+ // The ShelfItem for the second window is active when the window is activated.
+ widget2->Activate();
EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w1].status);
EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w2].status);
}
@@ -153,20 +146,22 @@ 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));
+ std::unique_ptr<views::Widget> widget =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget.get());
// Create a ShelfItem for |window|.
- ShelfID id = CreateShelfItem(window.get());
+ ShelfID id = CreateShelfItem(window);
EXPECT_EQ(2, model_->item_count());
int index = model_->ItemIndexByID(id);
- EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
+ EXPECT_EQ(STATUS_ACTIVE, model_->items()[index].status);
// Update ShelfItem for |window|.
ShelfItemDetails details;
details.type = TYPE_PLATFORM_APP;
- SetShelfItemDetailsForWindow(window.get(), details);
+ window->SetShelfItemDetails(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.
@@ -178,15 +173,17 @@ 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());
+ std::unique_ptr<views::Widget> widget =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget.get());
+ wm::WindowState* window_state = window->GetWindowState();
// Create a ShelfItem for |window|.
- ShelfID id = CreateShelfItem(window.get());
+ ShelfID id = CreateShelfItem(window);
EXPECT_EQ(2, model_->item_count());
int index = model_->ItemIndexByID(id);
- EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
+ EXPECT_EQ(STATUS_ACTIVE, model_->items()[index].status);
// Maximize window |window|.
EXPECT_FALSE(window_state->IsMaximized());
@@ -213,31 +210,33 @@ 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);
+ std::unique_ptr<views::Widget> widget =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget.get());
// Create a ShelfItem for |window|.
- ShelfID id = CreateShelfItem(window.get());
+ ShelfID id = CreateShelfItem(window);
EXPECT_EQ(2, model_->item_count());
int index = model_->ItemIndexByID(id);
- EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
+ EXPECT_EQ(STATUS_ACTIVE, 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());
+ WmWindow* root_window = window->GetRootWindow();
+ WmWindow* default_container =
+ root_window->GetChildByShellWindowId(kShellWindowId_DefaultContainer);
+ EXPECT_EQ(default_container, window->GetParent());
- aura::Window* docked_container =
- Shell::GetContainer(root_window, kShellWindowId_DockedContainer);
+ WmWindow* docked_container =
+ root_window->GetChildByShellWindowId(kShellWindowId_DockedContainer);
// Check |window|'s item is not removed when it is re-parented to the dock.
- docked_container->AddChild(window.get());
+ docked_container->AddChild(window);
+ EXPECT_EQ(docked_container, window->GetParent());
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();
+ widget.reset();
EXPECT_EQ(1, model_->item_count());
}
@@ -247,19 +246,20 @@ 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));
+ std::unique_ptr<views::Widget> widget =
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect());
+ WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget.get());
// Create a ShelfItem for |window|.
- ShelfID id = CreateShelfItem(window.get());
+ ShelfID id = CreateShelfItem(window);
EXPECT_EQ(2, model_->item_count());
int index = model_->ItemIndexByID(id);
- EXPECT_EQ(STATUS_RUNNING, model_->items()[index].status);
+ EXPECT_EQ(STATUS_ACTIVE, 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));
+ std::unique_ptr<WindowResizer> resizer(CreateWindowResizer(
+ window, gfx::Point(), HTCAPTION, aura::client::WINDOW_MOVE_SOURCE_MOUSE));
ASSERT_TRUE(resizer.get());
resizer->Drag(gfx::Point(50, 50), 0);
resizer->CompleteDrag();

Powered by Google App Engine
This is Rietveld 408576698