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

Side by Side Diff: ash/wm/workspace/workspace_window_resizer_unittest.cc

Issue 10918077: Adding proper dragging behavior for L/R maximized windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: It looks like if git merged wrong here... Created 8 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/wm/workspace/workspace_window_resizer.cc ('k') | ui/views/widget/widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/wm/workspace/workspace_window_resizer.h" 5 #include "ash/wm/workspace/workspace_window_resizer.h"
6 6
7 #include "ash/display/mouse_cursor_event_filter.h" 7 #include "ash/display/mouse_cursor_event_filter.h"
8 #include "ash/screen_ash.h" 8 #include "ash/screen_ash.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/shell_window_ids.h" 10 #include "ash/shell_window_ids.h"
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 window_.get(), gfx::Point(), HTCAPTION, empty_windows())); 451 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
452 ASSERT_TRUE(resizer.get()); 452 ASSERT_TRUE(resizer.get());
453 resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0); 453 resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0);
454 resizer->CompleteDrag(0); 454 resizer->CompleteDrag(0);
455 EXPECT_EQ("0,0 720x" + base::IntToString(bottom), 455 EXPECT_EQ("0,0 720x" + base::IntToString(bottom),
456 window_->bounds().ToString()); 456 window_->bounds().ToString());
457 ASSERT_TRUE(GetRestoreBoundsInScreen(window_.get())); 457 ASSERT_TRUE(GetRestoreBoundsInScreen(window_.get()));
458 EXPECT_EQ("20,30 50x60", 458 EXPECT_EQ("20,30 50x60",
459 GetRestoreBoundsInScreen(window_.get())->ToString()); 459 GetRestoreBoundsInScreen(window_.get())->ToString());
460 } 460 }
461
462 // Try the same with the right side. 461 // Try the same with the right side.
463 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( 462 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
464 window_.get(), gfx::Point(), HTCAPTION, empty_windows())); 463 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
465 ASSERT_TRUE(resizer.get()); 464 ASSERT_TRUE(resizer.get());
466 resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0); 465 resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0);
467 resizer->CompleteDrag(0); 466 resizer->CompleteDrag(0);
468 EXPECT_EQ("80,0 720x" + base::IntToString(bottom), 467 EXPECT_EQ("80,0 720x" + base::IntToString(bottom),
469 window_->bounds().ToString()); 468 window_->bounds().ToString());
470 ASSERT_TRUE(GetRestoreBoundsInScreen(window_.get())); 469 ASSERT_TRUE(GetRestoreBoundsInScreen(window_.get()));
471 EXPECT_EQ("20,30 50x60", GetRestoreBoundsInScreen(window_.get())->ToString()); 470 EXPECT_EQ("20,30 50x60", GetRestoreBoundsInScreen(window_.get())->ToString());
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 gfx::Rect rect = resizer->GetTargetBoundsForSize(0); 861 gfx::Rect rect = resizer->GetTargetBoundsForSize(0);
863 EXPECT_EQ("0,0 720x552", rect.ToString()); 862 EXPECT_EQ("0,0 720x552", rect.ToString());
864 rect = resizer->GetTargetBoundsForSize(1); 863 rect = resizer->GetTargetBoundsForSize(1);
865 EXPECT_EQ("0,0 720x552", rect.ToString()); 864 EXPECT_EQ("0,0 720x552", rect.ToString());
866 rect = resizer->GetTargetBoundsForSize(2); 865 rect = resizer->GetTargetBoundsForSize(2);
867 EXPECT_EQ("0,0 720x552", rect.ToString()); 866 EXPECT_EQ("0,0 720x552", rect.ToString());
868 rect = resizer->GetTargetBoundsForSize(3); 867 rect = resizer->GetTargetBoundsForSize(3);
869 EXPECT_EQ("0,0 640x552", rect.ToString()); 868 EXPECT_EQ("0,0 640x552", rect.ToString());
870 } 869 }
871 870
871 // Verifies that a dragged window will restore to its pre-maximized size.
872 TEST_F(WorkspaceWindowResizerTest, RestoreToPreMaximizeCoordinates) {
873 window_->SetBounds(gfx::Rect(0, 0, 1000, 1000));
874 SetRestoreBoundsInScreen(window_.get(), gfx::Rect(96, 112, 320, 160));
875 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
876 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
877 ASSERT_TRUE(resizer.get());
878 // Drag the window to new position by adding (10, 10) to original point,
879 // the window should get restored.
880 resizer->Drag(CalculateDragPoint(*resizer, 10, 10), 0);
881 resizer->CompleteDrag(0);
882 EXPECT_EQ("10,10 320x160", window_->bounds().ToString());
883 // The restore rectangle should get cleared as well.
884 EXPECT_EQ(NULL, GetRestoreBoundsInScreen(window_.get()));
885 }
886
887 // Verifies that a dragged window will restore to its pre-maximized size.
888 TEST_F(WorkspaceWindowResizerTest, RevertResizeOperation) {
889 window_->SetBounds(gfx::Rect(0, 0, 1000, 1000));
890 SetRestoreBoundsInScreen(window_.get(), gfx::Rect(96, 112, 320, 160));
891 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
892 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
893 ASSERT_TRUE(resizer.get());
894 // Drag the window to new poistion by adding (180, 16) to original point,
895 // the window should get restored.
896 resizer->Drag(CalculateDragPoint(*resizer, 180, 16), 0);
897 resizer->RevertDrag();
898 EXPECT_EQ("0,0 1000x1000", window_->bounds().ToString());
899 EXPECT_EQ("96,112 320x160",
900 GetRestoreBoundsInScreen(window_.get())->ToString());
901 }
902
872 } // namespace internal 903 } // namespace internal
873 } // namespace ash 904 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/workspace/workspace_window_resizer.cc ('k') | ui/views/widget/widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698