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 |
index 0cb5d9db6bf70915dfce0ce0107a4daefa897d9c..9a93712b3c1def7537f863184962be3770958dd2 100644 |
--- a/ash/shelf/shelf_window_watcher_unittest.cc |
+++ b/ash/shelf/shelf_window_watcher_unittest.cc |
@@ -16,6 +16,7 @@ |
#include "ash/test/ash_test_base.h" |
#include "ash/wm/window_resizer.h" |
#include "ash/wm/window_state.h" |
+#include "ash/wm/window_state_aura.h" |
#include "ash/wm_window.h" |
#include "base/strings/string_number_conversions.h" |
#include "ui/aura/window.h" |
@@ -39,12 +40,11 @@ class ShelfWindowWatcherTest : public test::AshTestBase { |
test::AshTestBase::TearDown(); |
} |
- static ShelfID CreateShelfItem(WmWindow* window) { |
+ static ShelfID CreateShelfItem(aura::Window* window) { |
static int id = 0; |
ShelfID shelf_id(base::IntToString(id++)); |
- window->aura_window()->SetProperty(kShelfIDKey, new ShelfID(shelf_id)); |
- window->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_DIALOG)); |
+ window->SetProperty(kShelfIDKey, new std::string(shelf_id.Serialize())); |
+ window->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_DIALOG)); |
return shelf_id; |
} |
@@ -63,11 +63,11 @@ TEST_F(ShelfWindowWatcherTest, OpenAndClose) { |
// Adding windows with valid ShelfItemType properties adds shelf items. |
std::unique_ptr<views::Widget> widget1 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- CreateShelfItem(WmWindow::Get(widget1->GetNativeWindow())); |
+ CreateShelfItem(widget1->GetNativeWindow()); |
EXPECT_EQ(2, model_->item_count()); |
std::unique_ptr<views::Widget> widget2 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- CreateShelfItem(WmWindow::Get(widget2->GetNativeWindow())); |
+ CreateShelfItem(widget2->GetNativeWindow()); |
EXPECT_EQ(3, model_->item_count()); |
// Each ShelfItem is removed when the associated window is destroyed. |
@@ -88,36 +88,34 @@ TEST_F(ShelfWindowWatcherTest, CreateAndRemoveShelfItemProperties) { |
// Creating windows without a valid ShelfItemType does not add items. |
std::unique_ptr<views::Widget> widget1 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window1 = WmWindow::Get(widget1->GetNativeWindow()); |
std::unique_ptr<views::Widget> widget2 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window2 = WmWindow::Get(widget2->GetNativeWindow()); |
EXPECT_EQ(1, model_->item_count()); |
// Create a ShelfItem for the first window. |
- ShelfID id_w1 = CreateShelfItem(window1); |
+ ShelfID id_w1 = CreateShelfItem(widget1->GetNativeWindow()); |
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 the second window. |
- ShelfID id_w2 = CreateShelfItem(window2); |
+ ShelfID id_w2 = CreateShelfItem(widget2->GetNativeWindow()); |
EXPECT_EQ(3, model_->item_count()); |
int index_w2 = model_->ItemIndexByID(id_w2); |
EXPECT_EQ(STATUS_ACTIVE, model_->items()[index_w2].status); |
// ShelfItem is removed when the item type window property is cleared. |
- window1->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_UNDEFINED)); |
+ widget1->GetNativeWindow()->SetProperty(kShelfItemTypeKey, |
+ static_cast<int32_t>(TYPE_UNDEFINED)); |
EXPECT_EQ(2, model_->item_count()); |
- window2->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_UNDEFINED)); |
+ widget2->GetNativeWindow()->SetProperty(kShelfItemTypeKey, |
+ static_cast<int32_t>(TYPE_UNDEFINED)); |
EXPECT_EQ(1, model_->item_count()); |
// Clearing twice doesn't do anything. |
- window2->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_UNDEFINED)); |
+ widget2->GetNativeWindow()->SetProperty(kShelfItemTypeKey, |
+ static_cast<int32_t>(TYPE_UNDEFINED)); |
EXPECT_EQ(1, model_->item_count()); |
} |
@@ -126,23 +124,21 @@ TEST_F(ShelfWindowWatcherTest, ActivateWindow) { |
if (Shell::GetAshConfig() == Config::MASH) |
return; |
- // ShelfModel only have APP_LIST item. |
+ // ShelfModel only has an APP_LIST item. |
EXPECT_EQ(1, model_->item_count()); |
std::unique_ptr<views::Widget> widget1 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window1 = WmWindow::Get(widget1->GetNativeWindow()); |
std::unique_ptr<views::Widget> widget2 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window2 = WmWindow::Get(widget2->GetNativeWindow()); |
// Create a ShelfItem for the first window. |
- ShelfID id_w1 = CreateShelfItem(window1); |
+ ShelfID id_w1 = CreateShelfItem(widget1->GetNativeWindow()); |
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 the second window. |
- ShelfID id_w2 = CreateShelfItem(window2); |
+ ShelfID id_w2 = CreateShelfItem(widget2->GetNativeWindow()); |
EXPECT_EQ(3, model_->item_count()); |
int index_w2 = model_->ItemIndexByID(id_w2); |
EXPECT_EQ(STATUS_RUNNING, model_->items()[index_w1].status); |
@@ -169,18 +165,17 @@ TEST_F(ShelfWindowWatcherTest, UpdateWindowProperty) { |
std::unique_ptr<views::Widget> widget = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window = WmWindow::Get(widget->GetNativeWindow()); |
// Create a ShelfItem for |window|. |
- ShelfID id = CreateShelfItem(window); |
+ ShelfID id = CreateShelfItem(widget->GetNativeWindow()); |
EXPECT_EQ(2, model_->item_count()); |
int index = model_->ItemIndexByID(id); |
EXPECT_EQ(STATUS_ACTIVE, model_->items()[index].status); |
- // Update the ShelfItemType for |window|. |
- window->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_APP)); |
+ // Update the window's ShelfItemType. |
+ widget->GetNativeWindow()->SetProperty(kShelfItemTypeKey, |
+ static_cast<int32_t>(TYPE_APP)); |
// 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. |
@@ -198,32 +193,31 @@ TEST_F(ShelfWindowWatcherTest, MaximizeAndRestoreWindow) { |
std::unique_ptr<views::Widget> widget = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window = WmWindow::Get(widget->GetNativeWindow()); |
- wm::WindowState* window_state = window->GetWindowState(); |
+ wm::WindowState* window_state = wm::GetWindowState(widget->GetNativeWindow()); |
- // Create a ShelfItem for |window|. |
- ShelfID id = CreateShelfItem(window); |
+ // Create a ShelfItem for the window. |
+ ShelfID id = CreateShelfItem(widget->GetNativeWindow()); |
EXPECT_EQ(2, model_->item_count()); |
int index = model_->ItemIndexByID(id); |
EXPECT_EQ(STATUS_ACTIVE, model_->items()[index].status); |
- // Maximize window |window|. |
+ // Maximize the window. |
EXPECT_FALSE(window_state->IsMaximized()); |
window_state->Maximize(); |
EXPECT_TRUE(window_state->IsMaximized()); |
- // No new item is created after maximizing a window |window|. |
+ // No new item is created after maximizing the window. |
EXPECT_EQ(2, model_->item_count()); |
- // index and id are not changed after maximizing a window |window|. |
+ // index and id are not changed after maximizing the window. |
EXPECT_EQ(index, model_->ItemIndexByID(id)); |
EXPECT_EQ(id, model_->items()[index].id); |
- // Restore window |window|. |
+ // Restore the window. |
window_state->Restore(); |
EXPECT_FALSE(window_state->IsMaximized()); |
- // No new item is created after restoring a window |window|. |
+ // No new item is created after restoring the window. |
EXPECT_EQ(2, model_->item_count()); |
- // Index and id are not changed after maximizing a window |window|. |
+ // Index and id are not changed after maximizing the window. |
EXPECT_EQ(index, model_->ItemIndexByID(id)); |
EXPECT_EQ(id, model_->items()[index].id); |
} |
@@ -240,23 +234,23 @@ TEST_F(ShelfWindowWatcherTest, DragWindow) { |
std::unique_ptr<views::Widget> widget = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window = WmWindow::Get(widget->GetNativeWindow()); |
- // Create a ShelfItem for |window|. |
- ShelfID id = CreateShelfItem(window); |
+ // Create a ShelfItem for the window. |
+ ShelfID id = CreateShelfItem(widget->GetNativeWindow()); |
EXPECT_EQ(2, model_->item_count()); |
int index = model_->ItemIndexByID(id); |
EXPECT_EQ(STATUS_ACTIVE, model_->items()[index].status); |
- // Simulate dragging of |window| and check its item is not changed. |
+ // Simulate dragging of the window and check its item is not changed. |
std::unique_ptr<WindowResizer> resizer(CreateWindowResizer( |
- window, gfx::Point(), HTCAPTION, aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
+ WmWindow::Get(widget->GetNativeWindow()), 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|. |
+ // Index and id are not changed after dragging the window. |
EXPECT_EQ(index, model_->ItemIndexByID(id)); |
EXPECT_EQ(id, model_->items()[index].id); |
} |
@@ -272,18 +266,16 @@ TEST_F(ShelfWindowWatcherTest, PanelWindow) { |
// Adding windows with valid ShelfItemType properties adds shelf items. |
std::unique_ptr<views::Widget> widget1 = |
- CreateTestWidget(nullptr, kShellWindowId_PanelContainer, gfx::Rect()); |
- WmWindow* window1 = WmWindow::Get(widget1->GetNativeWindow()); |
- window1->aura_window()->SetProperty(kShelfIDKey, new ShelfID("foo")); |
- window1->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_APP_PANEL)); |
+ CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
+ aura::Window* window1 = widget1->GetNativeWindow(); |
+ window1->SetProperty(kShelfIDKey, new std::string(ShelfID("a").Serialize())); |
+ window1->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_APP)); |
EXPECT_EQ(2, model_->item_count()); |
std::unique_ptr<views::Widget> widget2 = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window2 = WmWindow::Get(widget2->GetNativeWindow()); |
- window2->aura_window()->SetProperty(kShelfIDKey, new ShelfID("bar")); |
- window2->aura_window()->SetProperty(kShelfItemTypeKey, |
- static_cast<int32_t>(TYPE_APP_PANEL)); |
+ aura::Window* window2 = widget2->GetNativeWindow(); |
+ window2->SetProperty(kShelfIDKey, new std::string(ShelfID("b").Serialize())); |
+ window2->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_DIALOG)); |
EXPECT_EQ(3, model_->item_count()); |
// Create a panel-type widget to mimic Chrome's app panel windows. |
@@ -297,10 +289,11 @@ TEST_F(ShelfWindowWatcherTest, PanelWindow) { |
&panel_widget, kShellWindowId_PanelContainer, &panel_params); |
panel_widget.Init(panel_params); |
panel_widget.Show(); |
- WmWindow* panel_window = WmWindow::Get(panel_widget.GetNativeWindow()); |
- panel_window->aura_window()->SetProperty(kShelfIDKey, new ShelfID("baz")); |
- panel_window->aura_window()->SetProperty( |
- kShelfItemTypeKey, static_cast<int32_t>(TYPE_APP_PANEL)); |
+ aura::Window* panel_window = panel_widget.GetNativeWindow(); |
+ panel_window->SetProperty(kShelfIDKey, |
+ new std::string(ShelfID("c").Serialize())); |
+ panel_window->SetProperty(kShelfItemTypeKey, |
+ static_cast<int32_t>(TYPE_APP_PANEL)); |
EXPECT_EQ(4, model_->item_count()); |
// Each ShelfItem is removed when the associated window is destroyed. |
@@ -318,7 +311,7 @@ TEST_F(ShelfWindowWatcherTest, DontCreateShelfEntriesForChildWindows) { |
std::unique_ptr<aura::Window> window( |
base::MakeUnique<aura::Window>(nullptr, ui::wm::WINDOW_TYPE_NORMAL)); |
window->Init(ui::LAYER_NOT_DRAWN); |
- window->SetProperty(kShelfIDKey, new ShelfID("foo")); |
+ window->SetProperty(kShelfIDKey, new std::string(ShelfID("foo").Serialize())); |
window->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_APP)); |
Shell::GetPrimaryRootWindow() |
->GetChildById(kShellWindowId_DefaultContainer) |
@@ -353,8 +346,7 @@ TEST_F(ShelfWindowWatcherSessionStartTest, PreExistingWindow) { |
// Construct a window that should get a shelf item once the session starts. |
std::unique_ptr<views::Widget> widget = |
CreateTestWidget(nullptr, kShellWindowId_DefaultContainer, gfx::Rect()); |
- WmWindow* window = WmWindow::Get(widget->GetNativeWindow()); |
- ShelfWindowWatcherTest::CreateShelfItem(window); |
+ ShelfWindowWatcherTest::CreateShelfItem(widget->GetNativeWindow()); |
EXPECT_EQ(1, model->item_count()); |
// Start the test user session; ShelfWindowWatcher will find the open window. |