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

Side by Side Diff: chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc

Issue 11085053: Improving window auto management between workspaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed a part of the change which slipped in through a branch switch and eclipse usage Created 8 years, 1 month 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
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 "chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.h" 5 #include "chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.h"
6 6
7 #include "ash/wm/property_util.h" 7 #include "ash/wm/property_util.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 20 matching lines...) Expand all
31 #include "ui/ui_controls/ui_controls.h" 31 #include "ui/ui_controls/ui_controls.h"
32 #include "ui/views/view.h" 32 #include "ui/views/view.h"
33 #include "ui/views/widget/widget.h" 33 #include "ui/views/widget/widget.h"
34 34
35 #if defined(USE_ASH) 35 #if defined(USE_ASH)
36 #include "ash/display/display_controller.h" 36 #include "ash/display/display_controller.h"
37 #include "ash/display/multi_display_manager.h" 37 #include "ash/display/multi_display_manager.h"
38 #include "ash/shell.h" 38 #include "ash/shell.h"
39 #include "ash/test/cursor_manager_test_api.h" 39 #include "ash/test/cursor_manager_test_api.h"
40 #include "ash/wm/cursor_manager.h" 40 #include "ash/wm/cursor_manager.h"
41 #include "ash/wm/window_util.h"
41 #include "ui/aura/test/event_generator.h" 42 #include "ui/aura/test/event_generator.h"
42 #include "ui/aura/root_window.h" 43 #include "ui/aura/root_window.h"
43 #endif 44 #endif
44 45
45 namespace test { 46 namespace test {
46 47
47 namespace { 48 namespace {
48 49
49 const char kTabDragControllerInteractiveUITestUserDataKey[] = 50 const char kTabDragControllerInteractiveUITestUserDataKey[] =
50 "TabDragControllerInteractiveUITestUserData"; 51 "TabDragControllerInteractiveUITestUserData";
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 EXPECT_TRUE(GetTrackedByWorkspace(browser2)); 393 EXPECT_TRUE(GetTrackedByWorkspace(browser2));
393 } 394 }
394 395
395 namespace { 396 namespace {
396 397
397 void DetachToOwnWindowStep2(DetachToBrowserTabDragControllerTest* test) { 398 void DetachToOwnWindowStep2(DetachToBrowserTabDragControllerTest* test) {
398 if (test->input_source() == INPUT_SOURCE_TOUCH) 399 if (test->input_source() == INPUT_SOURCE_TOUCH)
399 ASSERT_TRUE(test->ReleaseInput()); 400 ASSERT_TRUE(test->ReleaseInput());
400 } 401 }
401 402
403 #if defined(USE_ASH)
404 bool IsWindowPositionManaged(aura::Window* window) {
405 return ash::wm::IsWindowPositionManaged(window);
406 }
407 bool HasUserChangedWindowPositionOrSize(aura::Window* window) {
408 return ash::wm::HasUserChangedWindowPositionOrSize(window);
409 }
410 #else
411 bool IsWindowPositionManaged(gfx::NativeWindow window) {
412 return true;
413 }
414 bool HasUserChangedWindowPositionOrSize(gfx::NativeWindow window) {
415 return false;
416 }
417 #endif
418
402 } // namespace 419 } // namespace
403 420
404 // Drags from browser to separate window and releases mouse. 421 // Drags from browser to separate window and releases mouse.
405 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 422 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
406 DetachToOwnWindow) { 423 DetachToOwnWindow) {
407 const gfx::Rect initial_bounds(browser()->window()->GetBounds()); 424 const gfx::Rect initial_bounds(browser()->window()->GetBounds());
408 // Add another tab. 425 // Add another tab.
409 AddTabAndResetBrowser(browser()); 426 AddTabAndResetBrowser(browser());
410 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 427 TabStrip* tab_strip = GetTabStripForBrowser(browser());
411 428
(...skipping 22 matching lines...) Expand all
434 451
435 EXPECT_EQ("0", IDString(new_browser->tab_strip_model())); 452 EXPECT_EQ("0", IDString(new_browser->tab_strip_model()));
436 EXPECT_EQ("1", IDString(browser()->tab_strip_model())); 453 EXPECT_EQ("1", IDString(browser()->tab_strip_model()));
437 454
438 // The bounds of the initial window should not have changed. 455 // The bounds of the initial window should not have changed.
439 EXPECT_EQ(initial_bounds.ToString(), 456 EXPECT_EQ(initial_bounds.ToString(),
440 browser()->window()->GetBounds().ToString()); 457 browser()->window()->GetBounds().ToString());
441 458
442 EXPECT_TRUE(GetTrackedByWorkspace(browser())); 459 EXPECT_TRUE(GetTrackedByWorkspace(browser()));
443 EXPECT_TRUE(GetTrackedByWorkspace(new_browser)); 460 EXPECT_TRUE(GetTrackedByWorkspace(new_browser));
461 // After this both windows should still be managable.
462 EXPECT_TRUE(IsWindowPositionManaged(browser()->window()->GetNativeWindow()));
463 EXPECT_TRUE(IsWindowPositionManaged(
464 new_browser->window()->GetNativeWindow()));
444 } 465 }
445 466
446 // Deletes a tab being dragged before the user moved enough to start a drag. 467 // Deletes a tab being dragged before the user moved enough to start a drag.
447 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 468 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
448 DeleteBeforeStartedDragging) { 469 DeleteBeforeStartedDragging) {
449 // Add another tab. 470 // Add another tab.
450 AddTabAndResetBrowser(browser()); 471 AddTabAndResetBrowser(browser());
451 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 472 TabStrip* tab_strip = GetTabStripForBrowser(browser());
452 473
453 // Click on the first tab, but don't move it. 474 // Click on the first tab, but don't move it.
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 // second browser. 870 // second browser.
850 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 871 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
851 DragSingleTabToSeparateWindow) { 872 DragSingleTabToSeparateWindow) {
852 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 873 TabStrip* tab_strip = GetTabStripForBrowser(browser());
853 874
854 ResetIDs(browser()->tab_strip_model(), 0); 875 ResetIDs(browser()->tab_strip_model(), 0);
855 876
856 // Create another browser. 877 // Create another browser.
857 Browser* browser2 = CreateAnotherWindowBrowserAndRelayout(); 878 Browser* browser2 = CreateAnotherWindowBrowserAndRelayout();
858 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2); 879 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2);
880 const gfx::Rect initial_bounds(browser2->window()->GetBounds());
859 881
860 // Move to the first tab and drag it enough so that it detaches, but not 882 // Move to the first tab and drag it enough so that it detaches, but not
861 // enough that it attaches to browser2. 883 // enough that it attaches to browser2.
862 gfx::Point tab_0_center( 884 gfx::Point tab_0_center(
863 GetCenterInScreenCoordinates(tab_strip->tab_at(0))); 885 GetCenterInScreenCoordinates(tab_strip->tab_at(0)));
864 ASSERT_TRUE(PressInput(tab_0_center)); 886 ASSERT_TRUE(PressInput(tab_0_center));
865 ASSERT_TRUE(DragInputToNotifyWhenDone( 887 ASSERT_TRUE(DragInputToNotifyWhenDone(
866 tab_0_center.x(), tab_0_center.y() + GetDetachY(tab_strip), 888 tab_0_center.x(), tab_0_center.y() + GetDetachY(tab_strip),
867 base::Bind(&DragAllToSeparateWindowStep2, this, tab_strip, tab_strip2))); 889 base::Bind(&DragAllToSeparateWindowStep2, this, tab_strip, tab_strip2)));
868 QuitWhenNotDragging(); 890 QuitWhenNotDragging();
869 891
870 // Should now be attached to tab_strip2. 892 // Should now be attached to tab_strip2.
871 ASSERT_TRUE(tab_strip2->IsDragSessionActive()); 893 ASSERT_TRUE(tab_strip2->IsDragSessionActive());
872 ASSERT_TRUE(TabDragController::IsActive()); 894 ASSERT_TRUE(TabDragController::IsActive());
873 ASSERT_EQ(1u, BrowserList::size()); 895 ASSERT_EQ(1u, BrowserList::size());
874 896
875 // Release the mouse, stopping the drag session. 897 // Release the mouse, stopping the drag session.
876 ASSERT_TRUE(ReleaseInput()); 898 ASSERT_TRUE(ReleaseInput());
877 ASSERT_FALSE(tab_strip2->IsDragSessionActive()); 899 ASSERT_FALSE(tab_strip2->IsDragSessionActive());
878 ASSERT_FALSE(TabDragController::IsActive()); 900 ASSERT_FALSE(TabDragController::IsActive());
879 EXPECT_EQ("100 0", IDString(browser2->tab_strip_model())); 901 EXPECT_EQ("100 0", IDString(browser2->tab_strip_model()));
880 902
881 EXPECT_TRUE(GetTrackedByWorkspace(browser2)); 903 EXPECT_TRUE(GetTrackedByWorkspace(browser2));
904 // Make sure that the window is still managed and not user moved.
905 EXPECT_TRUE(IsWindowPositionManaged(browser2->window()->GetNativeWindow()));
906 EXPECT_FALSE(HasUserChangedWindowPositionOrSize(
907 browser2->window()->GetNativeWindow()));
908 // Also make sure that the drag to window position has not changed.
909 EXPECT_EQ(initial_bounds.ToString(),
910 browser2->window()->GetBounds().ToString());
882 } 911 }
883 912
884 namespace { 913 namespace {
885 914
886 // Invoked from the nested message loop. 915 // Invoked from the nested message loop.
887 void CancelOnNewTabWhenDraggingStep2( 916 void CancelOnNewTabWhenDraggingStep2(
888 DetachToBrowserTabDragControllerTest* test) { 917 DetachToBrowserTabDragControllerTest* test) {
889 ASSERT_TRUE(TabDragController::IsActive()); 918 ASSERT_TRUE(TabDragController::IsActive());
890 ASSERT_EQ(2u, BrowserList::size()); 919 ASSERT_EQ(2u, BrowserList::size());
891 920
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
1373 DifferentDeviceScaleFactorDisplayTabDragControllerTest, 1402 DifferentDeviceScaleFactorDisplayTabDragControllerTest,
1374 ::testing::Values("mouse")); 1403 ::testing::Values("mouse"));
1375 INSTANTIATE_TEST_CASE_P(TabDragging, 1404 INSTANTIATE_TEST_CASE_P(TabDragging,
1376 DetachToBrowserTabDragControllerTest, 1405 DetachToBrowserTabDragControllerTest,
1377 ::testing::Values("mouse", "touch")); 1406 ::testing::Values("mouse", "touch"));
1378 #else 1407 #else
1379 INSTANTIATE_TEST_CASE_P(TabDragging, 1408 INSTANTIATE_TEST_CASE_P(TabDragging,
1380 DetachToBrowserTabDragControllerTest, 1409 DetachToBrowserTabDragControllerTest,
1381 ::testing::Values("mouse")); 1410 ::testing::Values("mouse"));
1382 #endif 1411 #endif
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/tabs/tab_drag_controller.cc ('k') | chrome/browser/ui/window_sizer/window_sizer_ash.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698