| 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 a3a354230eb47b30ed56be6738139938a5aca5fa..d129d1e3b772b0c10e2370a8eb21a2b959d7c4ef 100644
|
| --- a/ash/wm/workspace/workspace_window_resizer_unittest.cc
|
| +++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
|
| @@ -82,6 +82,10 @@ class WorkspaceWindowResizerTest : public test::AshTestBase {
|
| return location;
|
| }
|
|
|
| + std::vector<aura::Window*> empty_windows() const {
|
| + return std::vector<aura::Window*>();
|
| + }
|
| +
|
| TestWindowDelegate delegate_;
|
| TestWindowDelegate delegate2_;
|
| TestWindowDelegate delegate3_;
|
| @@ -102,7 +106,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkOnDrag) {
|
| // the bottom.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTBOTTOM, 0));
|
| + window_.get(), gfx::Point(), HTBOTTOM, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 600));
|
| EXPECT_EQ(kRootHeight - initial_y, window_->bounds().height());
|
| @@ -116,7 +120,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkOnDrag) {
|
| // Move the window down 10 pixels, the height should change.
|
| int initial_height = window_->bounds().height();
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 10));
|
| EXPECT_EQ(initial_height - 10, window_->bounds().height());
|
| @@ -139,7 +143,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkOnDrag2) {
|
| // the bottom.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 200));
|
| EXPECT_EQ(500, window_->bounds().y());
|
| @@ -150,7 +154,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkOnDrag2) {
|
| {
|
| // Drag up 400.
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, -400));
|
| EXPECT_EQ(100, window_->bounds().y());
|
| @@ -167,7 +171,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkMoveThanMoveUp) {
|
| // the bottom.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 200));
|
| EXPECT_EQ(500, window_->bounds().y());
|
| @@ -177,7 +181,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkMoveThanMoveUp) {
|
|
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, -400));
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, -450));
|
| @@ -191,7 +195,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkWithGrid) {
|
| window_->SetBounds(gfx::Rect(0, 300, 400, 296));
|
|
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 5));
|
| + window_.get(), gfx::Point(), HTCAPTION, 5, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| // Drag down 8 pixels.
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 8));
|
| @@ -211,7 +215,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkThanGrow) {
|
| // bottom.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 150));
|
| EXPECT_EQ(550, window_->bounds().y());
|
| @@ -221,7 +225,7 @@ TEST_F(WorkspaceWindowResizerTest, ShrinkThanGrow) {
|
| // Resize the window 500 pixels up.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTTOP, 0));
|
| + window_.get(), gfx::Point(), HTTOP, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, -500));
|
| EXPECT_EQ(50, window_->bounds().y());
|
| @@ -238,7 +242,7 @@ TEST_F(WorkspaceWindowResizerTest, DontRememberAfterMove) {
|
| // bottom.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 150));
|
| EXPECT_EQ(450, window_->bounds().y());
|
| @@ -251,7 +255,7 @@ TEST_F(WorkspaceWindowResizerTest, DontRememberAfterMove) {
|
| // Resize it slightly.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTBOTTOM, 0));
|
| + window_.get(), gfx::Point(), HTBOTTOM, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, -100));
|
| EXPECT_EQ(150, window_->bounds().y());
|
| @@ -261,7 +265,7 @@ TEST_F(WorkspaceWindowResizerTest, DontRememberAfterMove) {
|
| {
|
| // Move it down then back up.
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 400));
|
| EXPECT_EQ(550, window_->bounds().y());
|
| @@ -282,7 +286,7 @@ TEST_F(WorkspaceWindowResizerTest, HonorMin) {
|
| // bottom.
|
| {
|
| scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| - window_.get(), gfx::Point(), HTCAPTION, 0));
|
| + window_.get(), gfx::Point(), HTCAPTION, 0, empty_windows()));
|
| ASSERT_TRUE(resizer.get());
|
| resizer->Drag(CalculateDragPoint(*resizer, 0, 350));
|
| EXPECT_EQ(500, window_->bounds().y());
|
| @@ -306,6 +310,332 @@ TEST_F(WorkspaceWindowResizerTest, HonorMin) {
|
| }
|
| }
|
|
|
| +// Assertions around attached window resize dragging from the right with 2
|
| +// windows.
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_2) {
|
| + window_->SetBounds(gfx::Rect(0, 300, 400, 300));
|
| + window2_->SetBounds(gfx::Rect(400, 200, 100, 200));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTRIGHT, 0, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + // Move it 100 to the right, which should expand w1 and push w2.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 100, 10));
|
| + EXPECT_EQ("0,300 500x300", window_->bounds().ToString());
|
| + EXPECT_EQ("500,200 100x200", window2_->bounds().ToString());
|
| +
|
| + // Push off the screen, w2 should be resized to its min.
|
| + delegate2_.set_min_size(gfx::Size(20, 20));
|
| + resizer->Drag(CalculateDragPoint(*resizer, 800, 20));
|
| + EXPECT_EQ("0,300 780x300", window_->bounds().ToString());
|
| + EXPECT_EQ("780,200 20x200", window2_->bounds().ToString());
|
| +
|
| + // Move back to 100 and verify w2 gets its original size.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 100, 10));
|
| + EXPECT_EQ("0,300 500x300", window_->bounds().ToString());
|
| + EXPECT_EQ("500,200 100x200", window2_->bounds().ToString());
|
| +
|
| + // Revert and make sure everything moves back.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 800, 20));
|
| + resizer->RevertDrag();
|
| + EXPECT_EQ("0,300 400x300", window_->bounds().ToString());
|
| + EXPECT_EQ("400,200 100x200", window2_->bounds().ToString());
|
| +}
|
| +
|
| +// Makes sure we remember the size of an attached window across drags when
|
| +// compressing.
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_2_REMEMBER) {
|
| + window_->SetBounds(gfx::Rect(0, 300, 400, 300));
|
| + window2_->SetBounds(gfx::Rect(400, 200, 100, 200));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| +
|
| + {
|
| + delegate2_.set_min_size(gfx::Size(20, 20));
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTRIGHT, 0, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + // Resize enough to slightly compress w2.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 350, 10));
|
| + EXPECT_EQ("0,300 750x300", window_->bounds().ToString());
|
| + EXPECT_EQ("750,200 50x200", window2_->bounds().ToString());
|
| +
|
| + // Compress w2 a bit more.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 400, 10));
|
| + EXPECT_EQ("0,300 780x300", window_->bounds().ToString());
|
| + EXPECT_EQ("780,200 20x200", window2_->bounds().ToString());
|
| +
|
| + resizer->CompleteDrag();
|
| + }
|
| +
|
| + // Restart drag and drag back 200, making sure window2 goes back to 200.
|
| + {
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTRIGHT, 0, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + resizer->Drag(CalculateDragPoint(*resizer, -200, 10));
|
| + EXPECT_EQ("0,300 580x300", window_->bounds().ToString());
|
| + EXPECT_EQ("580,200 100x200", window2_->bounds().ToString());
|
| + }
|
| +}
|
| +
|
| +// Assertions around attached window resize dragging from the right with 3
|
| +// windows.
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3) {
|
| + window_->SetBounds(gfx::Rect( 100, 300, 200, 300));
|
| + window2_->SetBounds(gfx::Rect(300, 300, 150, 200));
|
| + window3_->SetBounds(gfx::Rect(450, 300, 100, 200));
|
| + delegate2_.set_min_size(gfx::Size(52, 50));
|
| + delegate3_.set_min_size(gfx::Size(38, 50));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| + windows.push_back(window3_.get());
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTRIGHT, 10, 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));
|
| + EXPECT_EQ("100,300 300x300", window_->bounds().ToString());
|
| + EXPECT_EQ("400,300 150x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("550,300 100x200", window3_->bounds().ToString());
|
| +
|
| + // Move it 296, which should now snap to grid and things should compress.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 296, -10));
|
| + EXPECT_EQ("100,300 500x300", window_->bounds().ToString());
|
| + EXPECT_EQ("600,300 120x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("720,300 80x200", window3_->bounds().ToString());
|
| +
|
| + // Move it so much everything ends up at it's min.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 798, 50));
|
| + EXPECT_EQ("100,300 600x300", window_->bounds().ToString());
|
| + EXPECT_EQ("700,300 60x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("760,300 40x200", window3_->bounds().ToString());
|
| +
|
| + // Revert and make sure everything moves back.
|
| + resizer->RevertDrag();
|
| + EXPECT_EQ("100,300 200x300", window_->bounds().ToString());
|
| + EXPECT_EQ("300,300 150x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("450,300 100x200", window3_->bounds().ToString());
|
| +}
|
| +
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_RememberWidth) {
|
| + window_->SetBounds(gfx::Rect( 100, 300, 200, 300));
|
| + window2_->SetBounds(gfx::Rect(300, 300, 150, 200));
|
| + window3_->SetBounds(gfx::Rect(450, 300, 100, 200));
|
| + delegate2_.set_min_size(gfx::Size(52, 50));
|
| + delegate3_.set_min_size(gfx::Size(38, 50));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| + windows.push_back(window3_.get());
|
| +
|
| + {
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTRIGHT, 10, 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));
|
| + EXPECT_EQ("100,300 300x300", window_->bounds().ToString());
|
| + EXPECT_EQ("400,300 150x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("550,300 100x200", window3_->bounds().ToString());
|
| +
|
| + // Move it so much everything ends up at it's min.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 798, 50));
|
| + EXPECT_EQ("100,300 600x300", window_->bounds().ToString());
|
| + EXPECT_EQ("700,300 60x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("760,300 40x200", window3_->bounds().ToString());
|
| + }
|
| +
|
| + {
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTRIGHT, 10, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| +
|
| + resizer->Drag(CalculateDragPoint(*resizer, -100, 50));
|
| + EXPECT_EQ("100,300 500x300", window_->bounds().ToString());
|
| + EXPECT_EQ("600,300 120x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("720,300 80x200", window3_->bounds().ToString());
|
| +
|
| + // Move it 300 to the left.
|
| + resizer->Drag(CalculateDragPoint(*resizer, -300, 50));
|
| + EXPECT_EQ("100,300 300x300", window_->bounds().ToString());
|
| + EXPECT_EQ("400,300 150x200", window2_->bounds().ToString());
|
| + EXPECT_EQ("550,300 100x200", window3_->bounds().ToString());
|
| + }
|
| +
|
| +}
|
| +
|
| +// Assertions around attached window resize dragging from the bottom with 2
|
| +// windows.
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_2) {
|
| + window_->SetBounds(gfx::Rect( 0, 50, 400, 200));
|
| + window2_->SetBounds(gfx::Rect(0, 250, 200, 100));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTBOTTOM, 0, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + // Move it 100 to the bottom, which should expand w1 and push w2.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 10, 100));
|
| + EXPECT_EQ("0,50 400x300", window_->bounds().ToString());
|
| + EXPECT_EQ("0,350 200x100", window2_->bounds().ToString());
|
| +
|
| + // Push off the screen, w2 should be resized to its min.
|
| + delegate2_.set_min_size(gfx::Size(20, 20));
|
| + resizer->Drag(CalculateDragPoint(*resizer, 50, 820));
|
| + EXPECT_EQ("0,50 400x530", window_->bounds().ToString());
|
| + EXPECT_EQ("0,580 200x20", window2_->bounds().ToString());
|
| +
|
| + // Move back to 100 and verify w2 gets its original size.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 10, 100));
|
| + EXPECT_EQ("0,50 400x300", window_->bounds().ToString());
|
| + EXPECT_EQ("0,350 200x100", window2_->bounds().ToString());
|
| +
|
| + // Revert and make sure everything moves back.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 800, 20));
|
| + resizer->RevertDrag();
|
| + EXPECT_EQ("0,50 400x200", window_->bounds().ToString());
|
| + EXPECT_EQ("0,250 200x100", window2_->bounds().ToString());
|
| +}
|
| +
|
| +// Makes sure we remember the size of an attached window across drags when
|
| +// compressing.
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_2_REMEMBER) {
|
| + window_->SetBounds(gfx::Rect( 0, 0, 400, 300));
|
| + window2_->SetBounds(gfx::Rect(40, 300, 100, 200));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| +
|
| + {
|
| + delegate2_.set_min_size(gfx::Size(20, 20));
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTBOTTOM, 0, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + // Resize enough to slightly compress w2.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 10, 150));
|
| + EXPECT_EQ("0,0 400x450", window_->bounds().ToString());
|
| + EXPECT_EQ("40,450 100x150", window2_->bounds().ToString());
|
| +
|
| + // Compress w2 a bit more.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 5, 400));
|
| + EXPECT_EQ("0,0 400x580", window_->bounds().ToString());
|
| + EXPECT_EQ("40,580 100x20", window2_->bounds().ToString());
|
| +
|
| + resizer->CompleteDrag();
|
| + }
|
| +
|
| + // Restart drag and drag back 200, making sure window2 goes back to 200.
|
| + {
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTBOTTOM, 0, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + resizer->Drag(CalculateDragPoint(*resizer, -10, -200));
|
| + EXPECT_EQ("0,0 400x380", window_->bounds().ToString());
|
| + EXPECT_EQ("40,380 100x200", window2_->bounds().ToString());
|
| + }
|
| +}
|
| +
|
| +// Assertions around attached window resize dragging from the bottom with 3
|
| +// windows.
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_3) {
|
| + aura::RootWindow* root = Shell::GetInstance()->GetRootWindow();
|
| + root->SetBounds(gfx::Rect(0, 0, 600, 800));
|
| + root->SetScreenWorkAreaInsets(gfx::Insets());
|
| +
|
| + window_->SetBounds(gfx::Rect( 300, 100, 300, 200));
|
| + window2_->SetBounds(gfx::Rect(300, 300, 200, 150));
|
| + window3_->SetBounds(gfx::Rect(300, 450, 200, 100));
|
| + delegate2_.set_min_size(gfx::Size(50, 52));
|
| + delegate3_.set_min_size(gfx::Size(50, 38));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| + windows.push_back(window3_.get());
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTBOTTOM, 10, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + // Move it 100 to the right, which should expand w1 and push w2 and w3.
|
| + resizer->Drag(CalculateDragPoint(*resizer, -10, 100));
|
| + EXPECT_EQ("300,100 300x300", window_->bounds().ToString());
|
| + EXPECT_EQ("300,400 200x150", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,550 200x100", window3_->bounds().ToString());
|
| +
|
| + // Move it 296, which should now snap to grid and things should compress.
|
| + resizer->Drag(CalculateDragPoint(*resizer, -10, 296));
|
| + EXPECT_EQ("300,100 300x500", window_->bounds().ToString());
|
| + EXPECT_EQ("300,600 200x120", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,720 200x80", window3_->bounds().ToString());
|
| +
|
| + // Move it so much everything ends up at it's min.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 50, 798));
|
| + EXPECT_EQ("300,100 300x600", window_->bounds().ToString());
|
| + EXPECT_EQ("300,700 200x60", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,760 200x40", window3_->bounds().ToString());
|
| +
|
| + // Revert and make sure everything moves back.
|
| + resizer->RevertDrag();
|
| + EXPECT_EQ("300,100 300x200", window_->bounds().ToString());
|
| + EXPECT_EQ("300,300 200x150", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,450 200x100", window3_->bounds().ToString());
|
| +}
|
| +
|
| +TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_RememberHeight) {
|
| + aura::RootWindow* root = Shell::GetInstance()->GetRootWindow();
|
| + root->SetBounds(gfx::Rect(0, 0, 600, 800));
|
| + root->SetScreenWorkAreaInsets(gfx::Insets());
|
| +
|
| + window_->SetBounds(gfx::Rect( 300, 100, 300, 200));
|
| + window2_->SetBounds(gfx::Rect(300, 300, 200, 150));
|
| + window3_->SetBounds(gfx::Rect(300, 450, 200, 100));
|
| + delegate2_.set_min_size(gfx::Size(50, 52));
|
| + delegate3_.set_min_size(gfx::Size(50, 38));
|
| +
|
| + std::vector<aura::Window*> windows;
|
| + windows.push_back(window2_.get());
|
| + windows.push_back(window3_.get());
|
| +
|
| + {
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTBOTTOM, 10, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| + // Move it 100 to the bottom, which should expand w1 and push w2 and w3.
|
| + resizer->Drag(CalculateDragPoint(*resizer, -10, 100));
|
| + EXPECT_EQ("300,100 300x300", window_->bounds().ToString());
|
| + EXPECT_EQ("300,400 200x150", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,550 200x100", window3_->bounds().ToString());
|
| +
|
| + // Move it so much everything ends up at it's min.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 50, 798));
|
| + EXPECT_EQ("300,100 300x600", window_->bounds().ToString());
|
| + EXPECT_EQ("300,700 200x60", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,760 200x40", window3_->bounds().ToString());
|
| + }
|
| +
|
| + {
|
| + scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
|
| + window_.get(), gfx::Point(), HTBOTTOM, 10, windows));
|
| + ASSERT_TRUE(resizer.get());
|
| +
|
| + resizer->Drag(CalculateDragPoint(*resizer, 50, -100));
|
| + EXPECT_EQ("300,100 300x500", window_->bounds().ToString());
|
| + EXPECT_EQ("300,600 200x120", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,720 200x80", window3_->bounds().ToString());
|
| +
|
| + // Move it 300 up.
|
| + resizer->Drag(CalculateDragPoint(*resizer, 50, -300));
|
| + EXPECT_EQ("300,100 300x300", window_->bounds().ToString());
|
| + EXPECT_EQ("300,400 200x150", window2_->bounds().ToString());
|
| + EXPECT_EQ("300,550 200x100", window3_->bounds().ToString());
|
| + }
|
| +
|
| +}
|
| +
|
| } // namespace
|
| } // namespace test
|
| } // namespace aura
|
|
|