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

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

Issue 16539005: Skip mulitple-dispay tests on win8 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed comment 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/wm/workspace/workspace_layout_manager_unittest.cc ('k') | no next file » | 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/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/display/display_controller.h" 8 #include "ash/display/display_controller.h"
9 #include "ash/root_window_controller.h" 9 #include "ash/root_window_controller.h"
10 #include "ash/screen_ash.h" 10 #include "ash/screen_ash.h"
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 EXPECT_EQ("20,500 100x100", window3_->bounds().ToString()); 466 EXPECT_EQ("20,500 100x100", window3_->bounds().ToString());
467 467
468 // 100 up again. 468 // 100 up again.
469 resizer->Drag(CalculateDragPoint(*resizer, -10, -100), 0); 469 resizer->Drag(CalculateDragPoint(*resizer, -10, -100), 0);
470 EXPECT_EQ("0,0 200x100", window_->bounds().ToString()); 470 EXPECT_EQ("0,0 200x100", window_->bounds().ToString());
471 EXPECT_EQ("10,100 200x266", window2_->bounds().ToString()); 471 EXPECT_EQ("10,100 200x266", window2_->bounds().ToString());
472 EXPECT_EQ("20,366 100x134", window3_->bounds().ToString()); 472 EXPECT_EQ("20,366 100x134", window3_->bounds().ToString());
473 } 473 }
474 474
475 475
476 #if defined(OS_WIN)
477 // Multiple displays are not supported on Windows Ash. http://crbug.com/165962
478 #define MAYBE_Edge DISABLED_Edge
479 #else
480 #define MAYBE_Edge Edge
481 #endif
482
483 // Assertions around dragging to the left/right edge of the screen. 476 // Assertions around dragging to the left/right edge of the screen.
484 TEST_F(WorkspaceWindowResizerTest, MAYBE_Edge) { 477 TEST_F(WorkspaceWindowResizerTest, Edge) {
485 int bottom = 478 int bottom =
486 ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); 479 ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom();
487 window_->SetBounds(gfx::Rect(20, 30, 50, 60)); 480 window_->SetBounds(gfx::Rect(20, 30, 50, 60));
488 { 481 {
489 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( 482 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
490 window_.get(), gfx::Point(), HTCAPTION, empty_windows())); 483 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
491 ASSERT_TRUE(resizer.get()); 484 ASSERT_TRUE(resizer.get());
492 resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0); 485 resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0);
493 resizer->CompleteDrag(0); 486 resizer->CompleteDrag(0);
494 EXPECT_EQ("0,0 720x" + base::IntToString(bottom), 487 EXPECT_EQ("0,0 720x" + base::IntToString(bottom),
(...skipping 11 matching lines...) Expand all
506 resizer->CompleteDrag(0); 499 resizer->CompleteDrag(0);
507 EXPECT_EQ("80,0 720x" + base::IntToString(bottom), 500 EXPECT_EQ("80,0 720x" + base::IntToString(bottom),
508 window_->bounds().ToString()); 501 window_->bounds().ToString());
509 ASSERT_TRUE(GetRestoreBoundsInScreen(window_.get())); 502 ASSERT_TRUE(GetRestoreBoundsInScreen(window_.get()));
510 EXPECT_EQ("20,30 50x60", 503 EXPECT_EQ("20,30 50x60",
511 GetRestoreBoundsInScreen(window_.get())->ToString()); 504 GetRestoreBoundsInScreen(window_.get())->ToString());
512 } 505 }
513 506
514 // Test if the restore bounds is correct in multiple displays. 507 // Test if the restore bounds is correct in multiple displays.
515 ClearRestoreBounds(window_.get()); 508 ClearRestoreBounds(window_.get());
509
510 if (!SupportsMultipleDisplays())
511 return;
512
516 UpdateDisplay("800x600,200x600"); 513 UpdateDisplay("800x600,200x600");
517 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); 514 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
518 EXPECT_EQ(root_windows[0], window_->GetRootWindow()); 515 EXPECT_EQ(root_windows[0], window_->GetRootWindow());
519 window_->SetBoundsInScreen(gfx::Rect(800, 10, 50, 60), 516 window_->SetBoundsInScreen(gfx::Rect(800, 10, 50, 60),
520 ScreenAsh::GetSecondaryDisplay()); 517 ScreenAsh::GetSecondaryDisplay());
521 EXPECT_EQ(root_windows[1], window_->GetRootWindow()); 518 EXPECT_EQ(root_windows[1], window_->GetRootWindow());
522 { 519 {
523 bottom = 520 bottom =
524 ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom(); 521 ScreenAsh::GetDisplayWorkAreaBoundsInParent(window_.get()).bottom();
525 EXPECT_EQ("800,10 50x60", window_->GetBoundsInScreen().ToString()); 522 EXPECT_EQ("800,10 50x60", window_->GetBoundsInScreen().ToString());
(...skipping 19 matching lines...) Expand all
545 window_->SetProperty(aura::client::kCanResizeKey, false); 542 window_->SetProperty(aura::client::kCanResizeKey, false);
546 543
547 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( 544 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
548 window_.get(), gfx::Point(), HTCAPTION, empty_windows())); 545 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
549 ASSERT_TRUE(resizer.get()); 546 ASSERT_TRUE(resizer.get());
550 resizer->Drag(CalculateDragPoint(*resizer, -20, 0), 0); 547 resizer->Drag(CalculateDragPoint(*resizer, -20, 0), 0);
551 resizer->CompleteDrag(0); 548 resizer->CompleteDrag(0);
552 EXPECT_EQ("0,30 50x60", window_->bounds().ToString()); 549 EXPECT_EQ("0,30 50x60", window_->bounds().ToString());
553 } 550 }
554 551
555 #if defined(OS_WIN) 552 TEST_F(WorkspaceWindowResizerTest, CancelSnapPhantom) {
556 // Multiple displays are not supported on Windows Ash. http://crbug.com/165962 553 if (!SupportsMultipleDisplays())
557 #define MAYBE_CancelSnapPhantom DISABLED_CancelSnapPhantom 554 return;
558 #else
559 #define MAYBE_CancelSnapPhantom CancelSnapPhantom
560 #endif
561 555
562 TEST_F(WorkspaceWindowResizerTest, MAYBE_CancelSnapPhantom) {
563 UpdateDisplay("800x600,800x600"); 556 UpdateDisplay("800x600,800x600");
564 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); 557 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
565 ASSERT_EQ(2U, root_windows.size()); 558 ASSERT_EQ(2U, root_windows.size());
566 559
567 window_->SetBoundsInScreen(gfx::Rect(0, 0, 50, 60), 560 window_->SetBoundsInScreen(gfx::Rect(0, 0, 50, 60),
568 Shell::GetScreen()->GetPrimaryDisplay()); 561 Shell::GetScreen()->GetPrimaryDisplay());
569 EXPECT_EQ(root_windows[0], window_->GetRootWindow()); 562 EXPECT_EQ(root_windows[0], window_->GetRootWindow());
570 EXPECT_FLOAT_EQ(1.0f, window_->layer()->opacity()); 563 EXPECT_FLOAT_EQ(1.0f, window_->layer()->opacity());
571 { 564 {
572 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( 565 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( 623 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
631 window_.get(), gfx::Point(), HTCAPTION, empty_windows())); 624 window_.get(), gfx::Point(), HTCAPTION, empty_windows()));
632 ASSERT_TRUE(resizer.get()); 625 ASSERT_TRUE(resizer.get());
633 resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0); 626 resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0);
634 int expected_y = 627 int expected_y =
635 kRootHeight - WorkspaceWindowResizer::kMinOnscreenHeight - 10; 628 kRootHeight - WorkspaceWindowResizer::kMinOnscreenHeight - 10;
636 EXPECT_EQ("100," + base::IntToString(expected_y) + " 300x400", 629 EXPECT_EQ("100," + base::IntToString(expected_y) + " 300x400",
637 window_->bounds().ToString()); 630 window_->bounds().ToString());
638 } 631 }
639 632
640 #if defined(OS_WIN) 633 // Makes sure we don't allow dragging on the work area with multidisplay.
641 // Multiple displays are not supported on Windows Ash. http://crbug.com/165962 634 TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) {
642 #define MAYBE_DontDragOffBottomWithMultiDisplay \ 635 if (!SupportsMultipleDisplays())
643 DISABLED_DontDragOffBottomWithMultiDisplay 636 return;
644 #else
645 #define MAYBE_DontDragOffBottomWithMultiDisplay \
646 DontDragOffBottomWithMultiDisplay
647 #endif
648 637
649 // Makes sure we don't allow dragging on the work area with multidisplay.
650 TEST_F(WorkspaceWindowResizerTest, MAYBE_DontDragOffBottomWithMultiDisplay) {
651 UpdateDisplay("800x600,800x600"); 638 UpdateDisplay("800x600,800x600");
652 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 639 ASSERT_EQ(2, Shell::GetScreen()->GetNumDisplays());
653 640
654 Shell::GetInstance()->SetDisplayWorkAreaInsets( 641 Shell::GetInstance()->SetDisplayWorkAreaInsets(
655 Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 10, 0)); 642 Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 10, 0));
656 643
657 // Positions the secondary display at the bottom the primary display. 644 // Positions the secondary display at the bottom the primary display.
658 Shell::GetInstance()->display_controller()->SetLayoutForCurrentDisplays( 645 Shell::GetInstance()->display_controller()->SetLayoutForCurrentDisplays(
659 ash::DisplayLayout(ash::DisplayLayout::BOTTOM, 0)); 646 ash::DisplayLayout(ash::DisplayLayout::BOTTOM, 0));
660 647
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 ASSERT_TRUE(resizer.get()); 749 ASSERT_TRUE(resizer.get());
763 resizer->Drag(CalculateDragPoint(*resizer, 0, bottom), 0); 750 resizer->Drag(CalculateDragPoint(*resizer, 0, bottom), 0);
764 EXPECT_EQ("100," + 751 EXPECT_EQ("100," +
765 base::IntToString(bottom - kMinimumOnScreenArea) + 752 base::IntToString(bottom - kMinimumOnScreenArea) +
766 " 300x" + 753 " 300x" +
767 base::IntToString(height - (delta_to_bottom - 754 base::IntToString(height - (delta_to_bottom -
768 kMinimumOnScreenArea)), 755 kMinimumOnScreenArea)),
769 window_->bounds().ToString()); 756 window_->bounds().ToString());
770 } 757 }
771 758
772 #if defined(OS_WIN)
773 // Multiple displays are not supported on Windows Ash. http://crbug.com/165962
774 #define MAYBE_DragWindowOutsideRightToSecondaryDisplay \
775 DISABLED_DragWindowOutsideRightToSecondaryDisplay
776 #else
777 #define MAYBE_DragWindowOutsideRightToSecondaryDisplay \
778 DragWindowOutsideRightToSecondaryDisplay
779 #endif
780
781 // Verifies that 'outside' check of the resizer take into account the extended 759 // Verifies that 'outside' check of the resizer take into account the extended
782 // desktop in case of repositions. 760 // desktop in case of repositions.
783 TEST_F(WorkspaceWindowResizerTest, 761 TEST_F(WorkspaceWindowResizerTest, DragWindowOutsideRightToSecondaryDisplay) {
784 MAYBE_DragWindowOutsideRightToSecondaryDisplay) {
785 // Only primary display. Changes the window position to fit within the 762 // Only primary display. Changes the window position to fit within the
786 // display. 763 // display.
787 Shell::GetInstance()->SetDisplayWorkAreaInsets( 764 Shell::GetInstance()->SetDisplayWorkAreaInsets(
788 Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 50, 0)); 765 Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 50, 0));
789 int right = ScreenAsh::GetDisplayWorkAreaBoundsInParent( 766 int right = ScreenAsh::GetDisplayWorkAreaBoundsInParent(
790 window_.get()).right(); 767 window_.get()).right();
791 int pixels_to_right_border = 50; 768 int pixels_to_right_border = 50;
792 int window_width = 300; 769 int window_width = 300;
793 int window_x = right - pixels_to_right_border; 770 int window_x = right - pixels_to_right_border;
794 window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380)); 771 window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
795 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create( 772 scoped_ptr<WorkspaceWindowResizer> resizer(WorkspaceWindowResizer::Create(
796 window_.get(), gfx::Point(window_x, 0), HTCAPTION, 773 window_.get(), gfx::Point(window_x, 0), HTCAPTION,
797 empty_windows())); 774 empty_windows()));
798 ASSERT_TRUE(resizer.get()); 775 ASSERT_TRUE(resizer.get());
799 resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0); 776 resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0);
800 EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) + 777 EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) +
801 ",100 " + 778 ",100 " +
802 base::IntToString(window_width) + 779 base::IntToString(window_width) +
803 "x380", window_->bounds().ToString()); 780 "x380", window_->bounds().ToString());
804 781
782 if (!SupportsMultipleDisplays())
783 return;
784
805 // With secondary display. Operation itself is same but doesn't change 785 // With secondary display. Operation itself is same but doesn't change
806 // the position because the window is still within the secondary display. 786 // the position because the window is still within the secondary display.
807 UpdateDisplay("1000x600,600x400"); 787 UpdateDisplay("1000x600,600x400");
808 Shell::GetInstance()->SetDisplayWorkAreaInsets( 788 Shell::GetInstance()->SetDisplayWorkAreaInsets(
809 Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 50, 0)); 789 Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 50, 0));
810 window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380)); 790 window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
811 resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0); 791 resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0);
812 EXPECT_EQ(base::IntToString(window_x + window_width) + 792 EXPECT_EQ(base::IntToString(window_x + window_width) +
813 ",100 " + 793 ",100 " +
814 base::IntToString(window_width) + 794 base::IntToString(window_width) +
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1600 ASSERT_TRUE(resizer.get()); 1580 ASSERT_TRUE(resizer.get());
1601 // Move it 50 to the left, which should contract w1 and expand w2-3. 1581 // Move it 50 to the left, which should contract w1 and expand w2-3.
1602 resizer->Drag(CalculateDragPoint(*resizer, -50, 0), 0); 1582 resizer->Drag(CalculateDragPoint(*resizer, -50, 0), 0);
1603 EXPECT_EQ("100,100 98x100", window_->bounds().ToString()); 1583 EXPECT_EQ("100,100 98x100", window_->bounds().ToString());
1604 EXPECT_EQ("198,100 101x100", window2_->bounds().ToString()); 1584 EXPECT_EQ("198,100 101x100", window2_->bounds().ToString());
1605 EXPECT_EQ("299,100 101x100", window3_->bounds().ToString()); 1585 EXPECT_EQ("299,100 101x100", window3_->bounds().ToString());
1606 } 1586 }
1607 1587
1608 } // namespace internal 1588 } // namespace internal
1609 } // namespace ash 1589 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/workspace/workspace_layout_manager_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698