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

Unified Diff: ash/wm/workspace/workspace_window_resizer_unittest.cc

Issue 15008002: Make touch-resizing windows to screen edge possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adjust unit tests with final behavior Created 7 years, 6 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
« no previous file with comments | « ash/wm/workspace/workspace_window_resizer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 a0a8561f51e7ad676b0b71758201827669367994..2a980c3dae685ead52dca90617c9cad5d3f196a2 100644
--- a/ash/wm/workspace/workspace_window_resizer_unittest.cc
+++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
@@ -4,6 +4,7 @@
#include "ash/wm/workspace/workspace_window_resizer.h"
+#include "ash/ash_constants.h"
#include "ash/ash_switches.h"
#include "ash/display/display_controller.h"
#include "ash/root_window_controller.h"
@@ -22,6 +23,7 @@
#include "base/strings/string_number_conversions.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/root_window.h"
+#include "ui/aura/test/event_generator.h"
#include "ui/aura/test/test_window_delegate.h"
#include "ui/base/hit_test.h"
#include "ui/gfx/insets.h"
@@ -113,6 +115,7 @@ class WorkspaceWindowResizerTest : public test::AshTestBase {
window2_.reset();
window3_.reset();
window4_.reset();
+ touch_resize_window_.reset();
AshTestBase::TearDown();
}
@@ -151,6 +154,22 @@ class WorkspaceWindowResizerTest : public test::AshTestBase {
return Shell::GetPrimaryRootWindowController()->GetShelfLayoutManager();
}
+ void InitTouchResizeWindow(const gfx::Rect& bounds, int window_component) {
+ touch_resize_delegate_.set_window_component(window_component);
+ touch_resize_window_.reset(
+ CreateTestWindowInShellWithDelegate(&touch_resize_delegate_, 0,
+ bounds));
+ gfx::Insets mouse_insets = gfx::Insets(-ash::kResizeOutsideBoundsSize,
+ -ash::kResizeOutsideBoundsSize,
+ -ash::kResizeOutsideBoundsSize,
+ -ash::kResizeOutsideBoundsSize);
+ gfx::Insets touch_insets = mouse_insets.Scale(
+ ash::kResizeOutsideBoundsScaleForTouch);
+ touch_resize_window_->SetHitTestBoundsOverrideOuter(mouse_insets,
+ touch_insets);
+ touch_resize_window_->set_hit_test_bounds_override_inner(mouse_insets);
+ }
+
TestWindowDelegate delegate_;
TestWindowDelegate delegate2_;
TestWindowDelegate delegate3_;
@@ -160,6 +179,9 @@ class WorkspaceWindowResizerTest : public test::AshTestBase {
scoped_ptr<aura::Window> window3_;
scoped_ptr<aura::Window> window4_;
+ TestWindowDelegate touch_resize_delegate_;
+ scoped_ptr<aura::Window> touch_resize_window_;
+
private:
DISALLOW_COPY_AND_ASSIGN(WorkspaceWindowResizerTest);
};
@@ -190,7 +212,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_2) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the right, which should expand w1 and push w2.
resizer->Drag(CalculateDragPoint(*resizer, 100, 10), 0);
@@ -223,7 +246,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_Compress) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the left, which should expand w2 and collapse w1.
resizer->Drag(CalculateDragPoint(*resizer, -100, 10), 0);
@@ -260,7 +284,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the right, which should expand w1 and push w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -300,7 +325,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3_Compress) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it -100 to the right, which should collapse w1 and expand w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, -100, -10), 0);
@@ -329,7 +355,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_Compress) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, windows));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it up 100, which should expand w2 and collapse w1.
resizer->Drag(CalculateDragPoint(*resizer, 10, -100), 0);
@@ -362,7 +389,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_2) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, windows));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the bottom, which should expand w1 and push w2.
resizer->Drag(CalculateDragPoint(*resizer, 10, 100), 0);
@@ -411,7 +439,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_AttachedResize_BOTTOM_3) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, windows));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 down, which should expand w1 and push w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, -10, 100), 0);
@@ -451,7 +480,8 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_3_Compress) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, windows));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 up, which should collapse w1 and expand w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, -10, -100), 0);
@@ -487,7 +517,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_Edge) {
window_->SetBounds(gfx::Rect(20, 30, 50, 60));
{
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0);
resizer->CompleteDrag(0);
@@ -500,7 +531,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_Edge) {
// Try the same with the right side.
{
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0);
resizer->CompleteDrag(0);
@@ -525,7 +557,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_Edge) {
EXPECT_EQ("800,10 50x60", window_->GetBoundsInScreen().ToString());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 199, 00), 0);
@@ -545,7 +578,8 @@ TEST_F(WorkspaceWindowResizerTest, NonResizableWindows) {
window_->SetProperty(aura::client::kCanResizeKey, false);
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -20, 0), 0);
resizer->CompleteDrag(0);
@@ -570,7 +604,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_CancelSnapPhantom) {
EXPECT_FLOAT_EQ(1.0f, window_->layer()->opacity());
{
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
EXPECT_FALSE(resizer->snap_phantom_window_controller_.get());
@@ -596,7 +631,8 @@ TEST_F(WorkspaceWindowResizerTest, RestackAttached) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the right, which should expand w1 and push w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -609,7 +645,8 @@ TEST_F(WorkspaceWindowResizerTest, RestackAttached) {
std::vector<aura::Window*> windows;
windows.push_back(window3_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window2_.get(), gfx::Point(), HTRIGHT, windows));
+ window2_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the right, which should expand w1 and push w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -628,7 +665,8 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottom) {
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0);
int expected_y =
@@ -661,7 +699,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_DontDragOffBottomWithMultiDisplay) {
{
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 400), 0);
int expected_y =
@@ -675,7 +714,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_DontDragOffBottomWithMultiDisplay) {
{
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0);
// The window can move to the secondary display beyond non-work area of
@@ -691,7 +731,8 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffTop) {
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, -600), 0);
EXPECT_EQ("100,10 300x400", window_->bounds().ToString());
@@ -703,7 +744,8 @@ TEST_F(WorkspaceWindowResizerTest, ResizeBottomOutsideWorkArea) {
window_->SetBounds(gfx::Rect(100, 200, 300, 380));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOP, empty_windows()));
+ window_.get(), gfx::Point(), HTTOP,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 8, 0), 0);
EXPECT_EQ("100,200 300x380", window_->bounds().ToString());
@@ -719,7 +761,7 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideLeftWorkArea) {
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
window_.get(), gfx::Point(pixels_to_left_border, 0), HTRIGHT,
- empty_windows()));
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -window_width, 0), 0);
EXPECT_EQ(base::IntToString(window_x) + ",100 " +
@@ -738,7 +780,7 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideRightWorkArea) {
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
window_.get(), gfx::Point(window_x, 0), HTLEFT,
- empty_windows()));
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0);
EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) +
@@ -758,7 +800,7 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideBottomWorkArea) {
window_->SetBounds(gfx::Rect(100, bottom - delta_to_bottom, 300, height));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
window_.get(), gfx::Point(0, bottom - delta_to_bottom), HTTOP,
- empty_windows()));
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, bottom), 0);
EXPECT_EQ("100," +
@@ -794,7 +836,7 @@ TEST_F(WorkspaceWindowResizerTest,
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
window_.get(), gfx::Point(window_x, 0), HTCAPTION,
- empty_windows()));
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0);
EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) +
@@ -821,7 +863,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToEdge) {
SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
window_->SetBounds(gfx::Rect(96, 112, 320, 160));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
// Move to an x-coordinate of 15, which should not snap.
resizer->Drag(CalculateDragPoint(*resizer, 15 - 96, 0), 0);
@@ -871,7 +914,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToEdge) {
TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPLEFT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -98, -199), 0);
EXPECT_EQ("0,0 120x230", window_->bounds().ToString());
@@ -883,7 +927,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPRIGHT) {
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent(
window_.get()));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(
CalculateDragPoint(*resizer, work_area.right() - 120 - 1, -199), 0);
@@ -899,7 +944,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMRIGHT) {
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent(
window_.get()));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(
CalculateDragPoint(*resizer, work_area.right() - 120 - 1,
@@ -916,7 +962,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMLEFT) {
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent(
window_.get()));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(
CalculateDragPoint(*resizer, -98, work_area.bottom() - 220 - 2), 0);
@@ -932,7 +979,8 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToEdge) {
SetAutoHideBehavior(SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS);
window_->SetBounds(gfx::Rect(96, 112, 320, 160));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
// Move to an x-coordinate of 15, which should not stick.
resizer->Drag(CalculateDragPoint(*resizer, 15 - 96, 0), 0);
@@ -970,7 +1018,8 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToEdge) {
TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_TOPLEFT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -15 - 100, -15 -200), 0);
EXPECT_EQ("0,0 120x230", window_->bounds().ToString());
@@ -982,7 +1031,8 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_TOPRIGHT) {
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent(
window_.get()));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, work_area.right() - 100 + 20,
-200 - 15), 0);
@@ -998,7 +1048,8 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_BOTTOMRIGHT) {
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent(
window_.get()));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, work_area.right() - 100 - 20 + 15,
work_area.bottom() - 200 - 30 + 15), 0);
@@ -1014,7 +1065,8 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_BOTTOMLEFT) {
gfx::Rect work_area(ScreenAsh::GetDisplayWorkAreaBoundsInParent(
window_.get()));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -15 - 100,
work_area.bottom() - 200 - 30 + 15), 0);
@@ -1027,7 +1079,8 @@ TEST_F(WorkspaceWindowResizerTestSticky, StickToWorkArea_BOTTOMLEFT) {
TEST_F(WorkspaceWindowResizerTest, CtrlDragResizeToExactPosition) {
window_->SetBounds(gfx::Rect(96, 112, 320, 160));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
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);
@@ -1038,7 +1091,8 @@ TEST_F(WorkspaceWindowResizerTest, CtrlDragResizeToExactPosition) {
TEST_F(WorkspaceWindowResizerTest, CtrlCompleteDragMoveToExactPosition) {
window_->SetBounds(gfx::Rect(96, 112, 320, 160));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
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.
@@ -1089,7 +1143,8 @@ TEST_F(WorkspaceWindowResizerTest, RestoreToPreMaximizeCoordinates) {
window_->SetBounds(gfx::Rect(0, 0, 1000, 1000));
SetRestoreBoundsInScreen(window_.get(), gfx::Rect(96, 112, 320, 160));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
// Drag the window to new position by adding (10, 10) to original point,
// the window should get restored.
@@ -1106,7 +1161,8 @@ TEST_F(WorkspaceWindowResizerTest, RevertResizeOperation) {
window_->SetBounds(initial_bounds);
SetRestoreBoundsInScreen(window_.get(), gfx::Rect(96, 112, 320, 160));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
// Drag the window to new poistion by adding (180, 16) to original point,
// the window should get restored.
@@ -1124,7 +1180,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyAttach) {
window2_->Show();
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
// Move |window| one pixel to the left of |window2|. Should snap to right and
// top.
@@ -1154,7 +1211,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOP) {
window2_->Show();
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOP, empty_windows()));
+ window_.get(), gfx::Point(), HTTOP,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,199 20x31", window_->bounds().ToString());
@@ -1167,7 +1225,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPLEFT) {
{
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,199 21x31", window_->bounds().ToString());
@@ -1177,7 +1236,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPLEFT) {
{
window2_->SetBounds(gfx::Rect(88, 201, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("98,201 22x29", window_->bounds().ToString());
@@ -1192,7 +1252,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPRIGHT) {
{
window2_->SetBounds(gfx::Rect(111, 179, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,199 21x31", window_->bounds().ToString());
@@ -1202,7 +1263,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPRIGHT) {
{
window2_->SetBounds(gfx::Rect(121, 199, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTTOPRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTTOPRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,199 21x31", window_->bounds().ToString());
@@ -1216,7 +1278,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_RIGHT) {
window2_->Show();
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 21x30", window_->bounds().ToString());
@@ -1229,7 +1292,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMRIGHT) {
{
window2_->SetBounds(gfx::Rect(122, 212, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 22x32", window_->bounds().ToString());
@@ -1239,7 +1303,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMRIGHT) {
{
window2_->SetBounds(gfx::Rect(111, 233, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 21x33", window_->bounds().ToString());
@@ -1253,7 +1318,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOM) {
window2_->Show();
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 20x33", window_->bounds().ToString());
@@ -1266,7 +1332,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMLEFT) {
{
window2_->SetBounds(gfx::Rect(99, 231, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,200 21x31", window_->bounds().ToString());
@@ -1276,7 +1343,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMLEFT) {
{
window2_->SetBounds(gfx::Rect(89, 209, 10, 20));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,200 21x29", window_->bounds().ToString());
@@ -1290,7 +1358,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_LEFT) {
window2_->Show();
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTLEFT, empty_windows()));
+ window_.get(), gfx::Point(), HTLEFT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,200 21x30", window_->bounds().ToString());
@@ -1304,7 +1373,8 @@ TEST_F(WorkspaceWindowResizerTest, CheckUserWindowMangedFlags) {
// Check that an abort doesn't change anything.
{
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, no_attached_windows));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, no_attached_windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the bottom.
resizer->Drag(CalculateDragPoint(*resizer, 0, 100), 0);
@@ -1317,7 +1387,8 @@ TEST_F(WorkspaceWindowResizerTest, CheckUserWindowMangedFlags) {
// Check that a completed move / size does change the user coordinates.
{
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, no_attached_windows));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, no_attached_windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the bottom.
resizer->Drag(CalculateDragPoint(*resizer, 0, 100), 0);
@@ -1333,7 +1404,8 @@ TEST_F(WorkspaceWindowResizerTest, TestMaxSizeEnforced) {
delegate_.set_max_size(gfx::Size(401, 301));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
resizer->Drag(CalculateDragPoint(*resizer, 2, 2), 0);
EXPECT_EQ(401, window_->bounds().width());
EXPECT_EQ(301, window_->bounds().height());
@@ -1345,7 +1417,8 @@ TEST_F(WorkspaceWindowResizerTest, TestPartialMaxSizeEnforced) {
delegate_.set_max_size(gfx::Size(401, 0));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT, empty_windows()));
+ window_.get(), gfx::Point(), HTBOTTOMRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
resizer->Drag(CalculateDragPoint(*resizer, 2, 2), 0);
EXPECT_EQ(401, window_->bounds().width());
EXPECT_EQ(302, window_->bounds().height());
@@ -1359,7 +1432,8 @@ TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) {
window_->SetBounds(gfx::Rect(0, 0, 300, 200));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
EXPECT_FALSE(resizer->snap_phantom_window_controller_.get());
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0);
EXPECT_TRUE(resizer->snap_phantom_window_controller_.get());
@@ -1370,7 +1444,8 @@ TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) {
delegate_.set_max_size(gfx::Size(300, 200));
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
+ window_.get(), gfx::Point(), HTCAPTION,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, empty_windows()));
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0);
EXPECT_FALSE(resizer->snap_phantom_window_controller_.get());
}
@@ -1393,7 +1468,8 @@ TEST_F(WorkspaceWindowResizerTest, DontRewardRightmostWindowForOverflows) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 51 to the left, which should contract w1 and expand w2-4.
// w2 will hit its max size straight away, and in doing so will leave extra
@@ -1424,7 +1500,8 @@ TEST_F(WorkspaceWindowResizerTest, DontExceedMaxWidth) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 52 to the left, which should contract w1 and expand w2-4.
resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0);
@@ -1452,7 +1529,8 @@ TEST_F(WorkspaceWindowResizerTest, DontExceedMaxHeight) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, windows));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 52 up, which should contract w1 and expand w2-4.
resizer->Drag(CalculateDragPoint(*resizer, 0, -52), 0);
@@ -1487,7 +1565,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_DontExceedMinHeight) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTBOTTOM, windows));
+ window_.get(), gfx::Point(), HTBOTTOM,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 52 down, which should expand w1 and contract w2-4.
resizer->Drag(CalculateDragPoint(*resizer, 0, 52), 0);
@@ -1513,7 +1592,8 @@ TEST_F(WorkspaceWindowResizerTest, DontExpandRightmostPastMaxWidth) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 51 to the left, which should contract w1 and expand w2-3.
resizer->Drag(CalculateDragPoint(*resizer, -51, 0), 0);
@@ -1539,7 +1619,8 @@ TEST_F(WorkspaceWindowResizerTest, MoveAttachedWhenGrownToMaxSize) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 52 to the left, which should contract w1 and expand and move w2-3.
resizer->Drag(CalculateDragPoint(*resizer, -52, 0), 0);
@@ -1571,7 +1652,8 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_MainWindowHonoursMaxWidth) {
windows.push_back(window3_.get());
windows.push_back(window4_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 50 to the right, which should expand w1 and contract w2-3, as they
// won't fit in the root window in their original sizes.
@@ -1596,7 +1678,8 @@ TEST_F(WorkspaceWindowResizerTest, MainWindowHonoursMinWidth) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
- window_.get(), gfx::Point(), HTRIGHT, windows));
+ window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
// Move it 50 to the left, which should contract w1 and expand w2-3.
resizer->Drag(CalculateDragPoint(*resizer, -50, 0), 0);
@@ -1605,5 +1688,142 @@ TEST_F(WorkspaceWindowResizerTest, MainWindowHonoursMinWidth) {
EXPECT_EQ("299,100 101x100", window3_->bounds().ToString());
}
+// The following variants test that windows are resized correctly to the edges
+// of the screen using touch, when touch point is off of the window border.
+TEST_F(WorkspaceWindowResizerTest, TouchResizeToEdge_RIGHT) {
+ shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_ALWAYS_HIDDEN);
+
+ InitTouchResizeWindow(gfx::Rect(100, 100, 600, kRootHeight - 200), HTRIGHT);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+
+ aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
+ touch_resize_window_.get());
+
+ // Drag out of the right border a bit and check if the border is aligned with
+ // the touch point.
+ generator.GestureScrollSequence(gfx::Point(715, kRootHeight / 2),
+ gfx::Point(725, kRootHeight / 2),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 100, 625, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag more, but stop before being snapped to the edge.
+ generator.GestureScrollSequence(gfx::Point(725, kRootHeight / 2),
+ gfx::Point(760, kRootHeight / 2),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 100, 660, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag even more to snap to the edge.
+ generator.GestureScrollSequence(gfx::Point(760, kRootHeight / 2),
+ gfx::Point(775, kRootHeight / 2),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 100, 700, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+}
+
+TEST_F(WorkspaceWindowResizerTest, TouchResizeToEdge_LEFT) {
+ shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_ALWAYS_HIDDEN);
+
+ InitTouchResizeWindow(gfx::Rect(100, 100, 600, kRootHeight - 200), HTLEFT);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+
+ aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
+ touch_resize_window_.get());
+
+ // Drag out of the left border a bit and check if the border is aligned with
+ // the touch point.
+ generator.GestureScrollSequence(gfx::Point(85, kRootHeight / 2),
+ gfx::Point(75, kRootHeight / 2),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(75, 100, 625, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag more, but stop before being snapped to the edge.
+ generator.GestureScrollSequence(gfx::Point(75, kRootHeight / 2),
+ gfx::Point(40, kRootHeight / 2),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(40, 100, 660, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag even more to snap to the edge.
+ generator.GestureScrollSequence(gfx::Point(40, kRootHeight / 2),
+ gfx::Point(25, kRootHeight / 2),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(0, 100, 700, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+}
+
+TEST_F(WorkspaceWindowResizerTest, TouchResizeToEdge_TOP) {
+ shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_ALWAYS_HIDDEN);
+
+ InitTouchResizeWindow(gfx::Rect(100, 100, 600, kRootHeight - 200), HTTOP);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+
+ aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
+ touch_resize_window_.get());
+
+ // Drag out of the top border a bit and check if the border is aligned with
+ // the touch point.
+ generator.GestureScrollSequence(gfx::Point(400, 85),
+ gfx::Point(400, 75),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 75, 600, kRootHeight - 175).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag more, but stop before being snapped to the edge.
+ generator.GestureScrollSequence(gfx::Point(400, 75),
+ gfx::Point(400, 40),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 40, 600, kRootHeight - 140).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag even more to snap to the edge.
+ generator.GestureScrollSequence(gfx::Point(400, 40),
+ gfx::Point(400, 25),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 0, 600, kRootHeight - 100).ToString(),
+ touch_resize_window_->bounds().ToString());
+}
+
+TEST_F(WorkspaceWindowResizerTest, TouchResizeToEdge_BOTTOM) {
+ shelf_layout_manager()->SetAutoHideBehavior(SHELF_AUTO_HIDE_ALWAYS_HIDDEN);
+
+ InitTouchResizeWindow(gfx::Rect(100, 100, 600, kRootHeight - 200), HTBOTTOM);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 200).ToString(),
+ touch_resize_window_->bounds().ToString());
+
+ aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
+ touch_resize_window_.get());
+
+ // Drag out of the bottom border a bit and check if the border is aligned with
+ // the touch point.
+ generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 85),
+ gfx::Point(400, kRootHeight - 75),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 175).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag more, but stop before being snapped to the edge.
+ generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 75),
+ gfx::Point(400, kRootHeight - 40),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 140).ToString(),
+ touch_resize_window_->bounds().ToString());
+ // Drag even more to snap to the edge.
+ generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 40),
+ gfx::Point(400, kRootHeight - 25),
+ base::TimeDelta::FromMilliseconds(100),
+ 1);
+ EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 100).ToString(),
+ touch_resize_window_->bounds().ToString());
+}
} // namespace internal
} // namespace ash
« no previous file with comments | « ash/wm/workspace/workspace_window_resizer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698