Index: ash/wm/workspace/workspace_window_resizer_unittest.cc |
diff --git a/ash/wm/workspace/workspace_window_resizer_unittest.cc b/ash/wm/workspace/workspace_window_resizer_unittest.cc |
index 1e75349d39375045997241b6b39f1a4b109b1e96..17a8a897e8189a6c3427b2a42560149891ee79c1 100644 |
--- a/ash/wm/workspace/workspace_window_resizer_unittest.cc |
+++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc |
@@ -168,7 +168,7 @@ class WorkspaceWindowResizerTest : public test::AshTestBase { |
} |
protected: |
- gfx::Point CalculateDragPoint(const WorkspaceWindowResizer& resizer, |
+ gfx::Point CalculateDragPoint(const WindowResizer& resizer, |
int delta_x, |
int delta_y) const { |
gfx::Point location = resizer.GetInitialLocation(); |
@@ -237,6 +237,11 @@ class WorkspaceWindowResizerTestSticky : public WorkspaceWindowResizerTest { |
DISALLOW_COPY_AND_ASSIGN(WorkspaceWindowResizerTestSticky); |
}; |
+bool IsStickyEdgesEnabled() { |
+ return (CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kAshEnableStickyEdges) || switches::UseDockedWindows()); |
+} |
+ |
} // namespace |
// Assertions around attached window resize dragging from the right with 2 |
@@ -541,36 +546,40 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_3_Compress) { |
// Assertions around dragging to the left/right edge of the screen. |
TEST_F(WorkspaceWindowResizerTest, Edge) { |
- int bottom = |
- ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); |
- window_->SetBounds(gfx::Rect(20, 30, 50, 60)); |
+ // TODO(varkha): Insets are reset because of http://crbug.com/292238 |
+ // Window is wide enough not to get docked right away. |
+ window_->SetBounds(gfx::Rect(20, 30, 400, 60)); |
wm::WindowState* window_state = wm::GetWindowState(window_.get()); |
{ |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0); |
resizer->CompleteDrag(0); |
+ int bottom = |
+ ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); |
EXPECT_EQ("0,0 720x" + base::IntToString(bottom), |
window_->bounds().ToString()); |
ASSERT_TRUE(window_state->HasRestoreBounds()); |
- EXPECT_EQ("20,30 50x60", |
+ EXPECT_EQ("20,30 400x60", |
window_state->GetRestoreBoundsInScreen().ToString()); |
} |
// Try the same with the right side. |
{ |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
- resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0); |
+ resizer->Drag(CalculateDragPoint(*resizer, 799, 10), 0); |
resizer->CompleteDrag(0); |
+ int bottom = |
+ ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); |
EXPECT_EQ("80,0 720x" + base::IntToString(bottom), |
window_->bounds().ToString()); |
ASSERT_TRUE(window_state->HasRestoreBounds()); |
- EXPECT_EQ("20,30 50x60", |
+ EXPECT_EQ("20,30 400x60", |
window_state->GetRestoreBoundsInScreen().ToString()); |
} |
@@ -580,29 +589,30 @@ TEST_F(WorkspaceWindowResizerTest, Edge) { |
if (!SupportsMultipleDisplays()) |
return; |
- UpdateDisplay("800x600,200x600"); |
+ UpdateDisplay("800x600,500x600"); |
Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
EXPECT_EQ(root_windows[0], window_->GetRootWindow()); |
- window_->SetBoundsInScreen(gfx::Rect(800, 10, 50, 60), |
+ // Window is wide enough not to get docked right away. |
+ window_->SetBoundsInScreen(gfx::Rect(800, 10, 400, 60), |
ScreenAsh::GetSecondaryDisplay()); |
EXPECT_EQ(root_windows[1], window_->GetRootWindow()); |
{ |
- bottom = |
- ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); |
- EXPECT_EQ("800,10 50x60", window_->GetBoundsInScreen().ToString()); |
+ EXPECT_EQ("800,10 400x60", window_->GetBoundsInScreen().ToString()); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
- |
- resizer->Drag(CalculateDragPoint(*resizer, 199, 00), 0); |
+ resizer->Drag(CalculateDragPoint(*resizer, 499, 00), 0); |
resizer->CompleteDrag(0); |
- // With the resolution of 200x600 we will hit in this case the 50% screen |
+ // With the resolution of 500x600 we will hit in this case the 50% screen |
// size setting. |
- EXPECT_EQ("100,0 100x" + base::IntToString(bottom), |
+ // TODO(varkha): Insets are updated because of http://crbug.com/292238 |
+ int bottom = |
+ ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); |
+ EXPECT_EQ("250,0 250x" + base::IntToString(bottom), |
window_->bounds().ToString()); |
- EXPECT_EQ("800,10 50x60", |
+ EXPECT_EQ("800,10 400x60", |
window_state->GetRestoreBoundsInScreen().ToString()); |
} |
} |
@@ -612,9 +622,9 @@ TEST_F(WorkspaceWindowResizerTest, NonResizableWindows) { |
window_->SetBounds(gfx::Rect(20, 30, 50, 60)); |
window_->SetProperty(aura::client::kCanResizeKey, false); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, -20, 0), 0); |
resizer->CompleteDrag(0); |
@@ -634,21 +644,23 @@ TEST_F(WorkspaceWindowResizerTest, CancelSnapPhantom) { |
EXPECT_EQ(root_windows[0], window_->GetRootWindow()); |
EXPECT_FLOAT_EQ(1.0f, window_->layer()->opacity()); |
{ |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
- EXPECT_FALSE(resizer->snap_phantom_window_controller_.get()); |
+ WorkspaceWindowResizer* workspace_resizer = |
+ WorkspaceWindowResizer::instance_; |
+ EXPECT_FALSE(workspace_resizer->snap_phantom_window_controller_.get()); |
// The pointer is on the edge but not shared. The snap phantom window |
// controller should be non-NULL. |
resizer->Drag(CalculateDragPoint(*resizer, 799, 0), 0); |
- EXPECT_TRUE(resizer->snap_phantom_window_controller_.get()); |
+ EXPECT_TRUE(workspace_resizer->snap_phantom_window_controller_.get()); |
// Move the cursor across the edge. Now the snap phantom window controller |
// should be canceled. |
resizer->Drag(CalculateDragPoint(*resizer, 800, 0), 0); |
- EXPECT_FALSE(resizer->snap_phantom_window_controller_.get()); |
+ EXPECT_FALSE(workspace_resizer->snap_phantom_window_controller_.get()); |
} |
} |
@@ -695,9 +707,9 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottom) { |
ASSERT_EQ(1, Shell::GetScreen()->GetNumDisplays()); |
window_->SetBounds(gfx::Rect(100, 200, 300, 400)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0); |
int expected_y = |
@@ -725,9 +737,9 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) { |
window_->SetBounds(gfx::Rect(100, 200, 300, 20)); |
DCHECK_LT(window_->bounds().height(), |
WorkspaceWindowResizer::kMinOnscreenHeight); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 400), 0); |
int expected_y = kRootHeight - window_->bounds().height() - 10; |
@@ -736,13 +748,17 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) { |
// restricted only by the window height. |
EXPECT_EQ("100," + base::IntToString(expected_y) + " 300x20", |
window_->bounds().ToString()); |
+ // Revert the drag in order to not remember the restore bounds. |
+ resizer->RevertDrag(); |
} |
+ Shell::GetInstance()->SetDisplayWorkAreaInsets( |
+ Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 10, 0)); |
{ |
window_->SetBounds(gfx::Rect(100, 200, 300, 400)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 400), 0); |
int expected_y = |
@@ -751,18 +767,21 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) { |
// on non-work area with kMinOnscreenHeight margin. |
EXPECT_EQ("100," + base::IntToString(expected_y) + " 300x400", |
window_->bounds().ToString()); |
+ resizer->CompleteDrag(0); |
} |
{ |
window_->SetBounds(gfx::Rect(100, 200, 300, 400)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
- window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
+ window_.get(), window_->bounds().origin(), HTCAPTION, |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
- resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0); |
+ // Drag down avoiding getting stuck against the shelf on the bottom screen. |
+ resizer->Drag(CalculateDragPoint(*resizer, 0, 500), 0); |
// The window can move to the secondary display beyond non-work area of |
// the primary display. |
- EXPECT_EQ("100,800 300x400", window_->bounds().ToString()); |
+ EXPECT_EQ("100,700 300x400", window_->bounds().ToString()); |
+ resizer->CompleteDrag(0); |
} |
} |
@@ -772,9 +791,9 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffTop) { |
Shell::GetPrimaryRootWindow(), gfx::Insets(10, 0, 0, 0)); |
window_->SetBounds(gfx::Rect(100, 200, 300, 400)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, -600), 0); |
EXPECT_EQ("100,10 300x400", window_->bounds().ToString()); |
@@ -785,9 +804,9 @@ TEST_F(WorkspaceWindowResizerTest, ResizeBottomOutsideWorkArea) { |
Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 50, 0)); |
window_->SetBounds(gfx::Rect(100, 200, 300, 380)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOP, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 8, 0), 0); |
EXPECT_EQ("100,200 300x380", window_->bounds().ToString()); |
@@ -801,9 +820,9 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideLeftWorkArea) { |
int window_width = 300; |
int window_x = left - window_width + pixels_to_left_border; |
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(pixels_to_left_border, 0), HTRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, -window_width, 0), 0); |
EXPECT_EQ(base::IntToString(window_x) + ",100 " + |
@@ -820,9 +839,9 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideRightWorkArea) { |
int window_width = 300; |
int window_x = right - pixels_to_right_border; |
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(window_x, 0), HTLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0); |
EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) + |
@@ -840,9 +859,9 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideBottomWorkArea) { |
int delta_to_bottom = 50; |
int height = 380; |
window_->SetBounds(gfx::Rect(100, bottom - delta_to_bottom, 300, height)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(0, bottom - delta_to_bottom), HTTOP, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, bottom), 0); |
EXPECT_EQ("100," + |
@@ -866,9 +885,9 @@ TEST_F(WorkspaceWindowResizerTest, DragWindowOutsideRightToSecondaryDisplay) { |
int window_width = 300; |
int window_x = right - pixels_to_right_border; |
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(window_x, 0), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0); |
EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) + |
@@ -894,6 +913,8 @@ TEST_F(WorkspaceWindowResizerTest, DragWindowOutsideRightToSecondaryDisplay) { |
// Verifies snapping to edges works. |
TEST_F(WorkspaceWindowResizerTest, SnapToEdge) { |
+ if (IsStickyEdgesEnabled()) |
+ return; |
Shell::GetPrimaryRootWindowController()->GetShelfLayoutManager()-> |
SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
window_->SetBounds(gfx::Rect(96, 112, 320, 160)); |
@@ -967,6 +988,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToEdge) { |
// Verifies a resize snap when dragging TOPLEFT. |
TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPLEFT) { |
+ if (IsStickyEdgesEnabled()) |
+ return; |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
window_.get(), gfx::Point(), HTTOPLEFT, |
@@ -978,6 +1001,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPLEFT) { |
// Verifies a resize snap when dragging TOPRIGHT. |
TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPRIGHT) { |
+ if (IsStickyEdgesEnabled()) |
+ return; |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent( |
window_.get())); |
@@ -995,6 +1020,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPRIGHT) { |
// Verifies a resize snap when dragging BOTTOMRIGHT. |
TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMRIGHT) { |
+ if (IsStickyEdgesEnabled()) |
+ return; |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent( |
window_.get())); |
@@ -1013,6 +1040,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMRIGHT) { |
// Verifies a resize snap when dragging BOTTOMLEFT. |
TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMLEFT) { |
+ if (IsStickyEdgesEnabled()) |
+ return; |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent( |
window_.get())); |
@@ -1035,11 +1064,11 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToEdge) { |
window_->SetBounds(gfx::Rect(96, 112, 320, 160)); |
// Click 50px to the right so that the mouse pointer does not leave the |
// workspace ensuring sticky behavior. |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), |
window_->bounds().origin() + gfx::Vector2d(50, 0), |
HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Move to an x-coordinate of 15, which should not stick. |
resizer->Drag(CalculateDragPoint(*resizer, 15 - 96, 0), 0); |
@@ -1078,9 +1107,9 @@ TEST_F(WorkspaceWindowResizerTestSticky, NoStickToEdgeWhenOutside) { |
Shell::GetPrimaryRootWindowController()->GetShelfLayoutManager()-> |
SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
window_->SetBounds(gfx::Rect(96, 112, 320, 160)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Move to an x-coordinate of 15, which should not stick. |
resizer->Drag(CalculateDragPoint(*resizer, 15 - 96, 0), 0); |
@@ -1092,9 +1121,9 @@ TEST_F(WorkspaceWindowResizerTestSticky, NoStickToEdgeWhenOutside) { |
// Verifies a resize sticks when dragging TOPLEFT. |
TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_TOPLEFT) { |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOPLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, -15 - 100, -15 -200), 0); |
EXPECT_EQ("0,0 120x230", window_->bounds().ToString()); |
@@ -1105,9 +1134,9 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_TOPRIGHT) { |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent( |
window_.get())); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOPRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, work_area.right() - 100 + 20, |
-200 - 15), 0); |
@@ -1122,9 +1151,9 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_BOTTOMRIGHT) { |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent( |
window_.get())); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, work_area.right() - 100 - 20 + 15, |
work_area.bottom() - 200 - 30 + 15), 0); |
@@ -1139,9 +1168,9 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_BOTTOMLEFT) { |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent( |
window_.get())); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, -15 - 100, |
work_area.bottom() - 200 - 30 + 15), 0); |
@@ -1153,9 +1182,9 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_BOTTOMLEFT) { |
TEST_F(WorkspaceWindowResizerTest, CtrlDragResizeToExactPosition) { |
window_->SetBounds(gfx::Rect(96, 112, 320, 160)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Resize the right bottom to add 10 in width, 12 in height. |
resizer->Drag(CalculateDragPoint(*resizer, 10, 12), ui::EF_CONTROL_DOWN); |
@@ -1165,9 +1194,9 @@ TEST_F(WorkspaceWindowResizerTest, CtrlDragResizeToExactPosition) { |
TEST_F(WorkspaceWindowResizerTest, CtrlCompleteDragMoveToExactPosition) { |
window_->SetBounds(gfx::Rect(96, 112, 320, 160)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Ctrl + drag the window to new poistion by adding (10, 12) to its origin, |
// the window should move to the exact position. |
@@ -1181,9 +1210,9 @@ TEST_F(WorkspaceWindowResizerTest, RestoreToPreMaximizeCoordinates) { |
window_->SetBounds(gfx::Rect(0, 0, 1000, 1000)); |
wm::WindowState* window_state = wm::GetWindowState(window_.get()); |
window_state->SetRestoreBoundsInScreen(gfx::Rect(96, 112, 320, 160)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Drag the window to new position by adding (10, 10) to original point, |
// the window should get restored. |
@@ -1201,9 +1230,9 @@ TEST_F(WorkspaceWindowResizerTest, RevertResizeOperation) { |
wm::WindowState* window_state = wm::GetWindowState(window_.get()); |
window_state->SetRestoreBoundsInScreen(gfx::Rect(96, 112, 320, 160)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Drag the window to new poistion by adding (180, 16) to original point, |
// the window should get restored. |
@@ -1220,9 +1249,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyAttach) { |
window2_->SetBounds(gfx::Rect(150, 160, 25, 20)); |
window2_->Show(); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Move |window| one pixel to the left of |window2|. Should snap to right and |
// top. |
@@ -1251,9 +1280,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOP) { |
window2_->SetBounds(gfx::Rect(99, 179, 10, 20)); |
window2_->Show(); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
- window_.get(), gfx::Point(), HTTOP, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
+ window_.get(), gfx::Point(), HTTOP, |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,199 20x31", window_->bounds().ToString()); |
@@ -1265,9 +1294,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPLEFT) { |
window2_->Show(); |
{ |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOPLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("99,199 21x31", window_->bounds().ToString()); |
@@ -1276,9 +1305,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPLEFT) { |
{ |
window2_->SetBounds(gfx::Rect(88, 201, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOPLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("98,201 22x29", window_->bounds().ToString()); |
@@ -1292,9 +1321,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPRIGHT) { |
{ |
window2_->SetBounds(gfx::Rect(111, 179, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOPRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,199 21x31", window_->bounds().ToString()); |
@@ -1303,9 +1332,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPRIGHT) { |
{ |
window2_->SetBounds(gfx::Rect(121, 199, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTTOPRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,199 21x31", window_->bounds().ToString()); |
@@ -1318,9 +1347,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_RIGHT) { |
window2_->SetBounds(gfx::Rect(121, 199, 10, 20)); |
window2_->Show(); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,200 21x30", window_->bounds().ToString()); |
@@ -1332,9 +1361,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMRIGHT) { |
{ |
window2_->SetBounds(gfx::Rect(122, 212, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,200 22x32", window_->bounds().ToString()); |
@@ -1343,9 +1372,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMRIGHT) { |
{ |
window2_->SetBounds(gfx::Rect(111, 233, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,200 21x33", window_->bounds().ToString()); |
@@ -1358,9 +1387,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOM) { |
window2_->SetBounds(gfx::Rect(111, 233, 10, 20)); |
window2_->Show(); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
- window_.get(), gfx::Point(), HTBOTTOM, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
+ window_.get(), gfx::Point(), HTBOTTOM, |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("100,200 20x33", window_->bounds().ToString()); |
@@ -1372,9 +1401,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMLEFT) { |
{ |
window2_->SetBounds(gfx::Rect(99, 231, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("99,200 21x31", window_->bounds().ToString()); |
@@ -1383,9 +1412,9 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMLEFT) { |
{ |
window2_->SetBounds(gfx::Rect(89, 209, 10, 20)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("99,200 21x29", window_->bounds().ToString()); |
@@ -1398,24 +1427,24 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_LEFT) { |
window_->SetBounds(gfx::Rect(100, 200, 20, 30)); |
window2_->Show(); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTLEFT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0); |
EXPECT_EQ("99,200 21x30", window_->bounds().ToString()); |
} |
// Test that the user user moved window flag is getting properly set. |
-TEST_F(WorkspaceWindowResizerTest, CheckUserWindowMangedFlags) { |
+TEST_F(WorkspaceWindowResizerTest, CheckUserWindowManagedFlags) { |
window_->SetBounds(gfx::Rect( 0, 50, 400, 200)); |
std::vector<aura::Window*> no_attached_windows; |
// Check that an abort doesn't change anything. |
{ |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, no_attached_windows)); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Move it 100 to the bottom. |
resizer->Drag(CalculateDragPoint(*resizer, 0, 100), 0); |
@@ -1427,9 +1456,9 @@ TEST_F(WorkspaceWindowResizerTest, CheckUserWindowMangedFlags) { |
// Check that a completed move / size does change the user coordinates. |
{ |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, no_attached_windows)); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
// Move it 100 to the bottom. |
resizer->Drag(CalculateDragPoint(*resizer, 0, 100), 0); |
@@ -1444,9 +1473,9 @@ TEST_F(WorkspaceWindowResizerTest, TestMaxSizeEnforced) { |
window_->SetBounds(gfx::Rect(0, 0, 400, 300)); |
delegate_.set_max_size(gfx::Size(401, 301)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
resizer->Drag(CalculateDragPoint(*resizer, 2, 2), 0); |
EXPECT_EQ(401, window_->bounds().width()); |
EXPECT_EQ(301, window_->bounds().height()); |
@@ -1457,9 +1486,9 @@ TEST_F(WorkspaceWindowResizerTest, TestPartialMaxSizeEnforced) { |
window_->SetBounds(gfx::Rect(0, 0, 400, 300)); |
delegate_.set_max_size(gfx::Size(401, 0)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTBOTTOMRIGHT, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
resizer->Drag(CalculateDragPoint(*resizer, 2, 2), 0); |
EXPECT_EQ(401, window_->bounds().width()); |
EXPECT_EQ(302, window_->bounds().height()); |
@@ -1470,25 +1499,52 @@ TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) { |
{ |
// With max size not set we get a phantom window controller for dragging off |
// the right hand side. |
- window_->SetBounds(gfx::Rect(0, 0, 300, 200)); |
+ // Make the window wider than maximum docked width. |
+ window_->SetBounds(gfx::Rect(0, 0, 400, 200)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
- EXPECT_FALSE(resizer->snap_phantom_window_controller_.get()); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
+ WorkspaceWindowResizer* workspace_resizer = |
+ WorkspaceWindowResizer::instance_; |
+ EXPECT_FALSE(workspace_resizer->snap_phantom_window_controller_.get()); |
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); |
- EXPECT_TRUE(resizer->snap_phantom_window_controller_.get()); |
+ EXPECT_TRUE(workspace_resizer->snap_phantom_window_controller_.get()); |
+ resizer->RevertDrag(); |
} |
{ |
- // With max size defined, we get no phantom window. |
- window_->SetBounds(gfx::Rect(0, 0, 300, 200)); |
- delegate_.set_max_size(gfx::Size(300, 200)); |
+ // With max size defined, we get no phantom window for snapping but we still |
+ // get a phantom window (docking guide). |
+ window_->SetBounds(gfx::Rect(0, 0, 400, 200)); |
+ delegate_.set_max_size(gfx::Size(410, 210)); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
+ window_.get(), gfx::Point(), HTCAPTION, |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
+ WorkspaceWindowResizer* workspace_resizer = |
+ WorkspaceWindowResizer::instance_; |
+ resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); |
+ if (switches::UseDockedWindows()) |
+ EXPECT_TRUE(workspace_resizer->snap_phantom_window_controller_.get()); |
+ else |
+ EXPECT_FALSE(workspace_resizer->snap_phantom_window_controller_.get()); |
+ resizer->RevertDrag(); |
+ } |
+ { |
+ // With max size defined, we get no phantom window for snapping. |
+ window_->SetBounds(gfx::Rect(0, 0, 400, 200)); |
+ delegate_.set_max_size(gfx::Size(410, 210)); |
+ // With min size defined, we get no phantom window for docking. |
+ delegate_.set_min_size(gfx::Size(400, 200)); |
+ |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
window_.get(), gfx::Point(), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
+ WorkspaceWindowResizer* workspace_resizer = |
+ WorkspaceWindowResizer::instance_; |
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); |
- EXPECT_FALSE(resizer->snap_phantom_window_controller_.get()); |
+ EXPECT_FALSE(workspace_resizer->snap_phantom_window_controller_.get()); |
+ resizer->RevertDrag(); |
} |
} |
@@ -1877,18 +1933,20 @@ TEST_F(WorkspaceWindowResizerTest, PhantomWindowShow) { |
Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
EXPECT_EQ(root_windows[0], window_->GetRootWindow()); |
- scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( |
- window_.get(), gfx::Point(0,0), HTCAPTION, |
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows())); |
+ scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
+ window_.get(), gfx::Point(), HTCAPTION, |
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
ASSERT_TRUE(resizer.get()); |
- EXPECT_FALSE(resizer->snap_phantom_window_controller_.get()); |
+ WorkspaceWindowResizer* workspace_resizer = |
+ WorkspaceWindowResizer::instance_; |
+ EXPECT_FALSE(workspace_resizer->snap_phantom_window_controller_.get()); |
// The pointer is on the edge but not shared. The snap phantom window |
// controller should be non-NULL. |
resizer->Drag(CalculateDragPoint(*resizer, -1, 0), 0); |
- EXPECT_TRUE(resizer->snap_phantom_window_controller_.get()); |
+ EXPECT_TRUE(workspace_resizer->snap_phantom_window_controller_.get()); |
PhantomWindowController* phantom_controller( |
- resizer->snap_phantom_window_controller_.get()); |
+ workspace_resizer->snap_phantom_window_controller_.get()); |
// phantom widget only in the left screen. |
phantom_controller->Show(gfx::Rect(100, 100, 50, 60)); |