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

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

Issue 301613002: Enable Tab Dragging Tests with Linux and Ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 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
« no previous file with comments | « no previous file | 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 "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 <algorithm>
8
7 #include "ash/wm/window_state.h" 9 #include "ash/wm/window_state.h"
8 #include "base/bind.h" 10 #include "base/bind.h"
9 #include "base/callback.h" 11 #include "base/callback.h"
10 #include "base/command_line.h" 12 #include "base/command_line.h"
11 #include "base/run_loop.h" 13 #include "base/run_loop.h"
12 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
13 #include "chrome/browser/chrome_notification_types.h" 15 #include "chrome/browser/chrome_notification_types.h"
14 #include "chrome/browser/ui/browser.h" 16 #include "chrome/browser/ui/browser.h"
15 #include "chrome/browser/ui/browser_commands.h" 17 #include "chrome/browser/ui/browser_commands.h"
16 #include "chrome/browser/ui/browser_iterator.h" 18 #include "chrome/browser/ui/browser_iterator.h"
(...skipping 22 matching lines...) Expand all
39 #include "chrome/browser/ui/views/frame/desktop_browser_frame_aura.h" 41 #include "chrome/browser/ui/views/frame/desktop_browser_frame_aura.h"
40 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" 42 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
41 #endif 43 #endif
42 44
43 #if defined(USE_ASH) 45 #if defined(USE_ASH)
44 #include "ash/display/display_controller.h" 46 #include "ash/display/display_controller.h"
45 #include "ash/display/display_manager.h" 47 #include "ash/display/display_manager.h"
46 #include "ash/shell.h" 48 #include "ash/shell.h"
47 #include "ash/test/cursor_manager_test_api.h" 49 #include "ash/test/cursor_manager_test_api.h"
48 #include "ash/wm/coordinate_conversion.h" 50 #include "ash/wm/coordinate_conversion.h"
49 #include "ash/wm/window_state.h"
50 #include "ash/wm/window_util.h" 51 #include "ash/wm/window_util.h"
51 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h" 52 #include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
52 #include "ui/aura/client/screen_position_client.h" 53 #include "ui/aura/client/screen_position_client.h"
53 #include "ui/aura/test/event_generator.h" 54 #include "ui/aura/test/event_generator.h"
54 #include "ui/aura/window_event_dispatcher.h" 55 #include "ui/aura/window_event_dispatcher.h"
55 #endif 56 #endif
56 57
57 using content::WebContents; 58 using content::WebContents;
58 59
59 namespace test { 60 namespace test {
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 326 TabStrip* tab_strip = GetTabStripForBrowser(browser());
326 327
327 Tab* tab1 = tab_strip->tab_at(1); 328 Tab* tab1 = tab_strip->tab_at(1);
328 gfx::Point tab_1_center(tab1->width() / 2, tab1->height() / 2); 329 gfx::Point tab_1_center(tab1->width() / 2, tab1->height() / 2);
329 330
330 ui::GestureEvent gesture_begin(ui::ET_GESTURE_BEGIN, tab_1_center.x(), 331 ui::GestureEvent gesture_begin(ui::ET_GESTURE_BEGIN, tab_1_center.x(),
331 tab_1_center.x(), 0, base::TimeDelta(), 332 tab_1_center.x(), 0, base::TimeDelta(),
332 ui::GestureEventDetails(ui::ET_GESTURE_BEGIN, 0.0f, 0.0f), 0); 333 ui::GestureEventDetails(ui::ET_GESTURE_BEGIN, 0.0f, 0.0f), 0);
333 tab_strip->MaybeStartDrag(tab1, gesture_begin, 334 tab_strip->MaybeStartDrag(tab1, gesture_begin,
334 tab_strip->GetSelectionModel()); 335 tab_strip->GetSelectionModel());
335 //tab_strip->tab_at(1)->OnGestureEvent(&gesture_begin);
336 EXPECT_TRUE(TabDragController::IsActive()); 336 EXPECT_TRUE(TabDragController::IsActive());
337 337
338 ui::GestureEvent gesture_end(ui::ET_GESTURE_END, tab_1_center.x(), 338 ui::GestureEvent gesture_end(ui::ET_GESTURE_END, tab_1_center.x(),
339 tab_1_center.x(), 0, base::TimeDelta(), 339 tab_1_center.x(), 0, base::TimeDelta(),
340 ui::GestureEventDetails(ui::ET_GESTURE_END, 0.0f, 0.0f), 0); 340 ui::GestureEventDetails(ui::ET_GESTURE_END, 0.0f, 0.0f), 0);
341 tab_strip->OnGestureEvent(&gesture_end); 341 tab_strip->OnGestureEvent(&gesture_end);
342 EXPECT_FALSE(TabDragController::IsActive()); 342 EXPECT_FALSE(TabDragController::IsActive());
343 EXPECT_FALSE(tab_strip->IsDragSessionActive()); 343 EXPECT_FALSE(tab_strip->IsDragSessionActive());
344 } 344 }
345 345
346 #endif 346 #endif
347 347
348 class DetachToBrowserTabDragControllerTest 348 class DetachToBrowserTabDragControllerTest
349 : public TabDragControllerTest, 349 : public TabDragControllerTest,
350 public ::testing::WithParamInterface<const char*> { 350 public ::testing::WithParamInterface<const char*> {
351 public: 351 public:
352 DetachToBrowserTabDragControllerTest() {} 352 DetachToBrowserTabDragControllerTest() {}
353 353
354 virtual void SetUpOnMainThread() OVERRIDE { 354 virtual void SetUpOnMainThread() OVERRIDE {
355 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 355 #if defined(OS_CHROMEOS)
356 event_generator_.reset(new aura::test::EventGenerator( 356 event_generator_.reset(new aura::test::EventGenerator(
357 ash::Shell::GetPrimaryRootWindow())); 357 ash::Shell::GetPrimaryRootWindow()));
358 #endif 358 #endif
359 } 359 }
360 360
361 InputSource input_source() const { 361 InputSource input_source() const {
362 return strstr(GetParam(), "mouse") ? 362 return strstr(GetParam(), "mouse") ?
363 INPUT_SOURCE_MOUSE : INPUT_SOURCE_TOUCH; 363 INPUT_SOURCE_MOUSE : INPUT_SOURCE_TOUCH;
364 } 364 }
365 365
366 // Set root window from a point in screen coordinates 366 // Set root window from a point in screen coordinates
367 void SetEventGeneratorRootWindow(const gfx::Point& point) { 367 void SetEventGeneratorRootWindow(const gfx::Point& point) {
368 if (input_source() == INPUT_SOURCE_MOUSE) 368 if (input_source() == INPUT_SOURCE_MOUSE)
369 return; 369 return;
370 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 370 #if defined(OS_CHROMEOS)
371 event_generator_.reset(new aura::test::EventGenerator( 371 event_generator_.reset(new aura::test::EventGenerator(
372 new ScreenEventGeneratorDelegate(ash::wm::GetRootWindowAt(point)))); 372 new ScreenEventGeneratorDelegate(ash::wm::GetRootWindowAt(point))));
373 #endif 373 #endif
374 } 374 }
375 375
376 // The following methods update one of the mouse or touch input depending upon 376 // The following methods update one of the mouse or touch input depending upon
377 // the InputSource. 377 // the InputSource.
378 bool PressInput(const gfx::Point& location) { 378 bool PressInput(const gfx::Point& location) {
379 if (input_source() == INPUT_SOURCE_MOUSE) { 379 if (input_source() == INPUT_SOURCE_MOUSE) {
380 return ui_test_utils::SendMouseMoveSync(location) && 380 return ui_test_utils::SendMouseMoveSync(location) &&
381 ui_test_utils::SendMouseEventsSync( 381 ui_test_utils::SendMouseEventsSync(
382 ui_controls::LEFT, ui_controls::DOWN); 382 ui_controls::LEFT, ui_controls::DOWN);
383 } 383 }
384 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 384 #if defined(OS_CHROMEOS)
385 event_generator_->set_current_location(location); 385 event_generator_->set_current_location(location);
386 event_generator_->PressTouch(); 386 event_generator_->PressTouch();
387 #else 387 #else
388 NOTREACHED(); 388 NOTREACHED();
389 #endif 389 #endif
390 return true; 390 return true;
391 } 391 }
392 392
393 bool PressInput2() { 393 bool PressInput2() {
394 // Second touch input is only used for touch sequence tests. 394 // Second touch input is only used for touch sequence tests.
395 EXPECT_EQ(INPUT_SOURCE_TOUCH, input_source()); 395 EXPECT_EQ(INPUT_SOURCE_TOUCH, input_source());
396 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 396 #if defined(OS_CHROMEOS)
397 event_generator_->set_current_location( 397 event_generator_->set_current_location(
398 event_generator_->current_location()); 398 event_generator_->current_location());
399 event_generator_->PressTouchId(1); 399 event_generator_->PressTouchId(1);
400 #else 400 #else
401 NOTREACHED(); 401 NOTREACHED();
402 #endif 402 #endif
403 return true; 403 return true;
404 } 404 }
405 405
406 bool DragInputTo(const gfx::Point& location) { 406 bool DragInputTo(const gfx::Point& location) {
407 if (input_source() == INPUT_SOURCE_MOUSE) 407 if (input_source() == INPUT_SOURCE_MOUSE)
408 return ui_test_utils::SendMouseMoveSync(location); 408 return ui_test_utils::SendMouseMoveSync(location);
409 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 409 #if defined(OS_CHROMEOS)
410 event_generator_->MoveTouch(location); 410 event_generator_->MoveTouch(location);
411 #else 411 #else
412 NOTREACHED(); 412 NOTREACHED();
413 #endif 413 #endif
414 return true; 414 return true;
415 } 415 }
416 416
417 bool DragInputToAsync(const gfx::Point& location) { 417 bool DragInputToAsync(const gfx::Point& location) {
418 if (input_source() == INPUT_SOURCE_MOUSE) 418 if (input_source() == INPUT_SOURCE_MOUSE)
419 return ui_controls::SendMouseMove(location.x(), location.y()); 419 return ui_controls::SendMouseMove(location.x(), location.y());
420 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 420 #if defined(OS_CHROMEOS)
421 event_generator_->MoveTouch(location); 421 event_generator_->MoveTouch(location);
422 #else 422 #else
423 NOTREACHED(); 423 NOTREACHED();
424 #endif 424 #endif
425 return true; 425 return true;
426 } 426 }
427 427
428 bool DragInputToNotifyWhenDone(int x, 428 bool DragInputToNotifyWhenDone(int x,
429 int y, 429 int y,
430 const base::Closure& task) { 430 const base::Closure& task) {
431 if (input_source() == INPUT_SOURCE_MOUSE) 431 if (input_source() == INPUT_SOURCE_MOUSE)
432 return ui_controls::SendMouseMoveNotifyWhenDone(x, y, task); 432 return ui_controls::SendMouseMoveNotifyWhenDone(x, y, task);
433 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 433 #if defined(OS_CHROMEOS)
434 base::MessageLoop::current()->PostTask(FROM_HERE, task); 434 base::MessageLoop::current()->PostTask(FROM_HERE, task);
435 event_generator_->MoveTouch(gfx::Point(x, y)); 435 event_generator_->MoveTouch(gfx::Point(x, y));
436 #else 436 #else
437 NOTREACHED(); 437 NOTREACHED();
438 #endif 438 #endif
439 return true; 439 return true;
440 } 440 }
441 441
442 bool DragInputToDelayedNotifyWhenDone(int x, 442 bool DragInputToDelayedNotifyWhenDone(int x,
443 int y, 443 int y,
444 const base::Closure& task, 444 const base::Closure& task,
445 base::TimeDelta delay) { 445 base::TimeDelta delay) {
446 if (input_source() == INPUT_SOURCE_MOUSE) 446 if (input_source() == INPUT_SOURCE_MOUSE)
447 return ui_controls::SendMouseMoveNotifyWhenDone(x, y, task); 447 return ui_controls::SendMouseMoveNotifyWhenDone(x, y, task);
448 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 448 #if defined(OS_CHROMEOS)
449 base::MessageLoop::current()->PostDelayedTask(FROM_HERE, task, delay); 449 base::MessageLoop::current()->PostDelayedTask(FROM_HERE, task, delay);
450 event_generator_->MoveTouch(gfx::Point(x, y)); 450 event_generator_->MoveTouch(gfx::Point(x, y));
451 #else 451 #else
452 NOTREACHED(); 452 NOTREACHED();
453 #endif 453 #endif
454 return true; 454 return true;
455 } 455 }
456 456
457 bool DragInput2ToNotifyWhenDone(int x, 457 bool DragInput2ToNotifyWhenDone(int x,
458 int y, 458 int y,
459 const base::Closure& task) { 459 const base::Closure& task) {
460 if (input_source() == INPUT_SOURCE_MOUSE) 460 if (input_source() == INPUT_SOURCE_MOUSE)
461 return ui_controls::SendMouseMoveNotifyWhenDone(x, y, task); 461 return ui_controls::SendMouseMoveNotifyWhenDone(x, y, task);
462 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 462 #if defined(OS_CHROMEOS)
463 base::MessageLoop::current()->PostTask(FROM_HERE, task); 463 base::MessageLoop::current()->PostTask(FROM_HERE, task);
464 event_generator_->MoveTouchId(gfx::Point(x, y), 1); 464 event_generator_->MoveTouchId(gfx::Point(x, y), 1);
465 #else 465 #else
466 NOTREACHED(); 466 NOTREACHED();
467 #endif 467 #endif
468 return true; 468 return true;
469 } 469 }
470 470
471 bool ReleaseInput() { 471 bool ReleaseInput() {
472 if (input_source() == INPUT_SOURCE_MOUSE) { 472 if (input_source() == INPUT_SOURCE_MOUSE) {
473 return ui_test_utils::SendMouseEventsSync( 473 return ui_test_utils::SendMouseEventsSync(
474 ui_controls::LEFT, ui_controls::UP); 474 ui_controls::LEFT, ui_controls::UP);
475 } 475 }
476 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 476 #if defined(OS_CHROMEOS)
477 event_generator_->ReleaseTouch(); 477 event_generator_->ReleaseTouch();
478 #else 478 #else
479 NOTREACHED(); 479 NOTREACHED();
480 #endif 480 #endif
481 return true; 481 return true;
482 } 482 }
483 483
484 bool ReleaseInput2() { 484 bool ReleaseInput2() {
485 if (input_source() == INPUT_SOURCE_MOUSE) { 485 if (input_source() == INPUT_SOURCE_MOUSE) {
486 return ui_test_utils::SendMouseEventsSync( 486 return ui_test_utils::SendMouseEventsSync(
487 ui_controls::LEFT, ui_controls::UP); 487 ui_controls::LEFT, ui_controls::UP);
488 } 488 }
489 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 489 #if defined(OS_CHROMEOS)
490 event_generator_->ReleaseTouchId(1); 490 event_generator_->ReleaseTouchId(1);
491 #else 491 #else
492 NOTREACHED(); 492 NOTREACHED();
493 #endif 493 #endif
494 return true; 494 return true;
495 } 495 }
496 496
497 bool ReleaseMouseAsync() { 497 bool ReleaseMouseAsync() {
498 return input_source() == INPUT_SOURCE_MOUSE && 498 return input_source() == INPUT_SOURCE_MOUSE &&
499 ui_controls::SendMouseEvents(ui_controls::LEFT, ui_controls::UP); 499 ui_controls::SendMouseEvents(ui_controls::LEFT, ui_controls::UP);
(...skipping 14 matching lines...) Expand all
514 } 514 }
515 } 515 }
516 516
517 void AddBlankTabAndShow(Browser* browser) { 517 void AddBlankTabAndShow(Browser* browser) {
518 InProcessBrowserTest::AddBlankTabAndShow(browser); 518 InProcessBrowserTest::AddBlankTabAndShow(browser);
519 } 519 }
520 520
521 Browser* browser() const { return InProcessBrowserTest::browser(); } 521 Browser* browser() const { return InProcessBrowserTest::browser(); }
522 522
523 private: 523 private:
524 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 524 #if defined(OS_CHROMEOS)
525 scoped_ptr<aura::test::EventGenerator> event_generator_; 525 scoped_ptr<aura::test::EventGenerator> event_generator_;
526 #endif 526 #endif
527 527
528 DISALLOW_COPY_AND_ASSIGN(DetachToBrowserTabDragControllerTest); 528 DISALLOW_COPY_AND_ASSIGN(DetachToBrowserTabDragControllerTest);
529 }; 529 };
530 530
531 // Creates a browser with two tabs, drags the second to the first. 531 // Creates a browser with two tabs, drags the second to the first.
532 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, DragInSameWindow) { 532 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, DragInSameWindow) {
533 // TODO(sky): this won't work with touch as it requires a long press. 533 // TODO(sky): this won't work with touch as it requires a long press.
534 if (input_source() == INPUT_SOURCE_TOUCH) { 534 if (input_source() == INPUT_SOURCE_TOUCH) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 EXPECT_FALSE(tab_strip2->GetWidget()->HasCapture()); 629 EXPECT_FALSE(tab_strip2->GetWidget()->HasCapture());
630 } 630 }
631 631
632 namespace { 632 namespace {
633 633
634 void DetachToOwnWindowStep2(DetachToBrowserTabDragControllerTest* test) { 634 void DetachToOwnWindowStep2(DetachToBrowserTabDragControllerTest* test) {
635 if (test->input_source() == INPUT_SOURCE_TOUCH) 635 if (test->input_source() == INPUT_SOURCE_TOUCH)
636 ASSERT_TRUE(test->ReleaseInput()); 636 ASSERT_TRUE(test->ReleaseInput());
637 } 637 }
638 638
639 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 639 #if defined(OS_CHROMEOS)
640 bool IsWindowPositionManaged(aura::Window* window) { 640 bool IsWindowPositionManaged(aura::Window* window) {
641 return ash::wm::GetWindowState(window)->window_position_managed(); 641 return ash::wm::GetWindowState(window)->window_position_managed();
642 } 642 }
643 bool HasUserChangedWindowPositionOrSize(aura::Window* window) { 643 bool HasUserChangedWindowPositionOrSize(aura::Window* window) {
644 return ash::wm::GetWindowState(window)->bounds_changed_by_user(); 644 return ash::wm::GetWindowState(window)->bounds_changed_by_user();
645 } 645 }
646 #else 646 #else
647 bool IsWindowPositionManaged(gfx::NativeWindow window) { 647 bool IsWindowPositionManaged(gfx::NativeWindow window) {
648 return true; 648 return true;
649 } 649 }
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 Browser* new_browser = browser_list->get(1); 896 Browser* new_browser = browser_list->get(1);
897 // This ends up closing the source window. 897 // This ends up closing the source window.
898 delete tab; 898 delete tab;
899 // Cancel the drag. 899 // Cancel the drag.
900 ui_controls::SendKeyPress(new_browser->window()->GetNativeWindow(), 900 ui_controls::SendKeyPress(new_browser->window()->GetNativeWindow(),
901 ui::VKEY_ESCAPE, false, false, false, false); 901 ui::VKEY_ESCAPE, false, false, false, false);
902 } 902 }
903 903
904 } // namespace 904 } // namespace
905 905
906 #if defined(OS_CHROMEOS) 906 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
907 // TODO(sky,sad): Disabled as it fails due to resize locks with a real 907 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
908 // compositor. crbug.com/331924 908 // compositor. crbug.com/331924
909 #define MAYBE_DeleteSourceDetached DISABLED_DeleteSourceDetached 909 #define MAYBE_DeleteSourceDetached DISABLED_DeleteSourceDetached
910 #else 910 #else
911 #define MAYBE_DeleteSourceDetached DeleteSourceDetached 911 #define MAYBE_DeleteSourceDetached DeleteSourceDetached
912 #endif 912 #endif
913 // Detaches a tab and while detached deletes a tab from the source so that the 913 // Detaches a tab and while detached deletes a tab from the source so that the
914 // source window closes then presses escape to cancel the drag. 914 // source window closes then presses escape to cancel the drag.
915 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 915 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
916 MAYBE_DeleteSourceDetached) { 916 MAYBE_DeleteSourceDetached) {
(...skipping 29 matching lines...) Expand all
946 void PressEscapeWhileDetachedStep2(const BrowserList* browser_list) { 946 void PressEscapeWhileDetachedStep2(const BrowserList* browser_list) {
947 ASSERT_EQ(2u, browser_list->size()); 947 ASSERT_EQ(2u, browser_list->size());
948 Browser* new_browser = browser_list->get(1); 948 Browser* new_browser = browser_list->get(1);
949 ui_controls::SendKeyPress( 949 ui_controls::SendKeyPress(
950 new_browser->window()->GetNativeWindow(), ui::VKEY_ESCAPE, false, false, 950 new_browser->window()->GetNativeWindow(), ui::VKEY_ESCAPE, false, false,
951 false, false); 951 false, false);
952 } 952 }
953 953
954 } // namespace 954 } // namespace
955 955
956 #if defined(OS_CHROMEOS) 956 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
957 // TODO(sky,sad): Disabled as it fails due to resize locks with a real 957 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
958 // compositor. crbug.com/331924 958 // compositor. crbug.com/331924
959 #define MAYBE_PressEscapeWhileDetached DISABLED_PressEscapeWhileDetached 959 #define MAYBE_PressEscapeWhileDetached DISABLED_PressEscapeWhileDetached
960 #else 960 #else
961 #define MAYBE_PressEscapeWhileDetached PressEscapeWhileDetached 961 #define MAYBE_PressEscapeWhileDetached PressEscapeWhileDetached
962 #endif 962 #endif
963 // This is disabled until NativeViewHost::Detach really detaches. 963 // This is disabled until NativeViewHost::Detach really detaches.
964 // Detaches a tab and while detached presses escape to revert the drag. 964 // Detaches a tab and while detached presses escape to revert the drag.
965 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 965 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
966 MAYBE_PressEscapeWhileDetached) { 966 MAYBE_PressEscapeWhileDetached) {
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 const BrowserList* browser_list) { 1319 const BrowserList* browser_list) {
1320 ASSERT_TRUE(TabDragController::IsActive()); 1320 ASSERT_TRUE(TabDragController::IsActive());
1321 ASSERT_EQ(2u, browser_list->size()); 1321 ASSERT_EQ(2u, browser_list->size());
1322 1322
1323 // Add another tab. This should trigger exiting the nested loop. 1323 // Add another tab. This should trigger exiting the nested loop.
1324 test->AddBlankTabAndShow(browser_list->GetLastActive()); 1324 test->AddBlankTabAndShow(browser_list->GetLastActive());
1325 } 1325 }
1326 1326
1327 } // namespace 1327 } // namespace
1328 1328
1329 #if defined(OS_CHROMEOS) 1329 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
1330 // TODO(sky,sad): Disabled as it fails due to resize locks with a real 1330 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1331 // compositor. crbug.com/331924 1331 // compositor. crbug.com/331924
1332 #define MAYBE_CancelOnNewTabWhenDragging DISABLED_CancelOnNewTabWhenDragging 1332 #define MAYBE_CancelOnNewTabWhenDragging DISABLED_CancelOnNewTabWhenDragging
1333 #else 1333 #else
1334 #define MAYBE_CancelOnNewTabWhenDragging CancelOnNewTabWhenDragging 1334 #define MAYBE_CancelOnNewTabWhenDragging CancelOnNewTabWhenDragging
1335 #endif 1335 #endif
1336 // Adds another tab, detaches into separate window, adds another tab and 1336 // Adds another tab, detaches into separate window, adds another tab and
1337 // verifies the run loop ends. 1337 // verifies the run loop ends.
1338 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 1338 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
1339 MAYBE_CancelOnNewTabWhenDragging) { 1339 MAYBE_CancelOnNewTabWhenDragging) {
(...skipping 14 matching lines...) Expand all
1354 // Should be two windows and not dragging. 1354 // Should be two windows and not dragging.
1355 ASSERT_FALSE(TabDragController::IsActive()); 1355 ASSERT_FALSE(TabDragController::IsActive());
1356 ASSERT_EQ(2u, native_browser_list->size()); 1356 ASSERT_EQ(2u, native_browser_list->size());
1357 for (chrome::BrowserIterator it; !it.done(); it.Next()) { 1357 for (chrome::BrowserIterator it; !it.done(); it.Next()) {
1358 EXPECT_FALSE(GetIsDragged(*it)); 1358 EXPECT_FALSE(GetIsDragged(*it));
1359 // Should not be maximized 1359 // Should not be maximized
1360 EXPECT_FALSE(it->window()->IsMaximized()); 1360 EXPECT_FALSE(it->window()->IsMaximized());
1361 } 1361 }
1362 } 1362 }
1363 1363
1364 #if defined(USE_ASH) && !defined(OS_WIN) // TODO(win_ash) 1364 #if defined(OS_CHROMEOS)
1365 1365 // TODO(sky,sad): A number of tests below are disabled as they fail due to
1366 // resize locks with a real compositor. crbug.com/331924
1366 namespace { 1367 namespace {
1367 1368
1368 void DragInMaximizedWindowStep2(DetachToBrowserTabDragControllerTest* test, 1369 void DragInMaximizedWindowStep2(DetachToBrowserTabDragControllerTest* test,
1369 Browser* browser, 1370 Browser* browser,
1370 TabStrip* tab_strip, 1371 TabStrip* tab_strip,
1371 const BrowserList* browser_list) { 1372 const BrowserList* browser_list) {
1372 // There should be another browser. 1373 // There should be another browser.
1373 ASSERT_EQ(2u, browser_list->size()); 1374 ASSERT_EQ(2u, browser_list->size());
1374 Browser* new_browser = browser_list->get(1); 1375 Browser* new_browser = browser_list->get(1);
1375 EXPECT_NE(browser, new_browser); 1376 EXPECT_NE(browser, new_browser);
1376 ASSERT_TRUE(new_browser->window()->IsActive()); 1377 ASSERT_TRUE(new_browser->window()->IsActive());
1377 TabStrip* tab_strip2 = GetTabStripForBrowser(new_browser); 1378 TabStrip* tab_strip2 = GetTabStripForBrowser(new_browser);
1378 1379
1379 ASSERT_TRUE(tab_strip2->IsDragSessionActive()); 1380 ASSERT_TRUE(tab_strip2->IsDragSessionActive());
1380 ASSERT_FALSE(tab_strip->IsDragSessionActive()); 1381 ASSERT_FALSE(tab_strip->IsDragSessionActive());
1381 1382
1382 // Both windows should be visible. 1383 // Both windows should be visible.
1383 EXPECT_TRUE(tab_strip->GetWidget()->IsVisible()); 1384 EXPECT_TRUE(tab_strip->GetWidget()->IsVisible());
1384 EXPECT_TRUE(tab_strip2->GetWidget()->IsVisible()); 1385 EXPECT_TRUE(tab_strip2->GetWidget()->IsVisible());
1385 1386
1386 // Stops dragging. 1387 // Stops dragging.
1387 ASSERT_TRUE(test->ReleaseInput()); 1388 ASSERT_TRUE(test->ReleaseInput());
1388 } 1389 }
1389 1390
1390 } // namespace 1391 } // namespace
1391 1392
1392 #if defined(OS_CHROMEOS)
1393 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1394 // compositor. crbug.com/331924
1395 #define MAYBE_DragInMaximizedWindow DISABLED_DragInMaximizedWindow
1396 #else
1397 #define MAYBE_DragInMaximizedWindow DragInMaximizedWindow
1398 #endif
1399 // Creates a browser with two tabs, maximizes it, drags the tab out. 1393 // Creates a browser with two tabs, maximizes it, drags the tab out.
1400 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest, 1394 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
1401 MAYBE_DragInMaximizedWindow) { 1395 DISABLED_DragInMaximizedWindow) {
1402 AddTabAndResetBrowser(browser()); 1396 AddTabAndResetBrowser(browser());
1403 browser()->window()->Maximize(); 1397 browser()->window()->Maximize();
1404 1398
1405 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1399 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1406 1400
1407 // Move to the first tab and drag it enough so that it detaches. 1401 // Move to the first tab and drag it enough so that it detaches.
1408 gfx::Point tab_0_center( 1402 gfx::Point tab_0_center(
1409 GetCenterInScreenCoordinates(tab_strip->tab_at(0))); 1403 GetCenterInScreenCoordinates(tab_strip->tab_at(0)));
1410 ASSERT_TRUE(PressInput(tab_0_center)); 1404 ASSERT_TRUE(PressInput(tab_0_center));
1411 ASSERT_TRUE(DragInputToNotifyWhenDone( 1405 ASSERT_TRUE(DragInputToNotifyWhenDone(
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 void DragSingleTabToSeparateWindowInSecondDisplayStep2( 1469 void DragSingleTabToSeparateWindowInSecondDisplayStep2(
1476 DetachToBrowserTabDragControllerTest* test, 1470 DetachToBrowserTabDragControllerTest* test,
1477 const gfx::Point& target_point) { 1471 const gfx::Point& target_point) {
1478 ASSERT_TRUE(test->DragInputToNotifyWhenDone( 1472 ASSERT_TRUE(test->DragInputToNotifyWhenDone(
1479 target_point.x(), target_point.y(), 1473 target_point.x(), target_point.y(),
1480 base::Bind(&DragSingleTabToSeparateWindowInSecondDisplayStep3, test))); 1474 base::Bind(&DragSingleTabToSeparateWindowInSecondDisplayStep3, test)));
1481 } 1475 }
1482 1476
1483 } // namespace 1477 } // namespace
1484 1478
1485 #if defined(OS_CHROMEOS)
1486 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1487 // compositor. crbug.com/331924
1488 #define MAYBE_DragSingleTabToSeparateWindowInSecondDisplay \
1489 DISABLED_DragSingleTabToSeparateWindowInSecondDisplay
1490 #else
1491 #define MAYBE_DragSingleTabToSeparateWindowInSecondDisplay \
1492 DragSingleTabToSeparateWindowInSecondDisplay
1493 #endif
1494 // Drags from browser to a second display and releases input. 1479 // Drags from browser to a second display and releases input.
1495 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest, 1480 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest,
1496 MAYBE_DragSingleTabToSeparateWindowInSecondDisplay) { 1481 DISABLED_DragSingleTabToSeparateWindowInSecondDisplay) {
1497 // Add another tab. 1482 // Add another tab.
1498 AddTabAndResetBrowser(browser()); 1483 AddTabAndResetBrowser(browser());
1499 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1484 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1500 1485
1501 // Move to the first tab and drag it enough so that it detaches. 1486 // Move to the first tab and drag it enough so that it detaches.
1502 // Then drag it to the final destination on the second screen. 1487 // Then drag it to the final destination on the second screen.
1503 gfx::Point tab_0_center(GetCenterInScreenCoordinates(tab_strip->tab_at(0))); 1488 gfx::Point tab_0_center(GetCenterInScreenCoordinates(tab_strip->tab_at(0)));
1504 ASSERT_TRUE(PressInput(tab_0_center)); 1489 ASSERT_TRUE(PressInput(tab_0_center));
1505 ASSERT_TRUE(DragInputToNotifyWhenDone( 1490 ASSERT_TRUE(DragInputToNotifyWhenDone(
1506 tab_0_center.x(), tab_0_center.y() + GetDetachY(tab_strip), 1491 tab_0_center.x(), tab_0_center.y() + GetDetachY(tab_strip),
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 GetCenterInScreenCoordinates(target_tab_strip->tab_at(0))); 1542 GetCenterInScreenCoordinates(target_tab_strip->tab_at(0)));
1558 1543
1559 // Move it close to the beginning of the target tabstrip. 1544 // Move it close to the beginning of the target tabstrip.
1560 target_point.set_x( 1545 target_point.set_x(
1561 target_point.x() - target_tab_strip->tab_at(0)->width() / 2 + 10); 1546 target_point.x() - target_tab_strip->tab_at(0)->width() / 2 + 10);
1562 ASSERT_TRUE(test->DragInputToAsync(target_point)); 1547 ASSERT_TRUE(test->DragInputToAsync(target_point));
1563 } 1548 }
1564 1549
1565 } // namespace 1550 } // namespace
1566 1551
1567 #if defined(OS_CHROMEOS)
1568 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1569 // compositor. crbug.com/331924
1570 #define MAYBE_DragTabToWindowInSeparateDisplay \
1571 DISABLED_DragTabToWindowInSeparateDisplay
1572 #else
1573 #define MAYBE_DragTabToWindowInSeparateDisplay DragTabToWindowInSeparateDisplay
1574 #endif
1575 // Drags from browser to another browser on a second display and releases input. 1552 // Drags from browser to another browser on a second display and releases input.
1576 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest, 1553 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest,
1577 MAYBE_DragTabToWindowInSeparateDisplay) { 1554 DISABLED_DragTabToWindowInSeparateDisplay) {
1578 // Add another tab. 1555 // Add another tab.
1579 AddTabAndResetBrowser(browser()); 1556 AddTabAndResetBrowser(browser());
1580 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1557 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1581 1558
1582 // Create another browser. 1559 // Create another browser.
1583 Browser* browser2 = CreateBrowser(browser()->profile()); 1560 Browser* browser2 = CreateBrowser(browser()->profile());
1584 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2); 1561 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2);
1585 ResetIDs(browser2->tab_strip_model(), 100); 1562 ResetIDs(browser2->tab_strip_model(), 100);
1586 1563
1587 // Move the second browser to the second display. 1564 // Move the second browser to the second display.
(...skipping 27 matching lines...) Expand all
1615 ASSERT_FALSE(tab_strip->IsDragSessionActive()); 1592 ASSERT_FALSE(tab_strip->IsDragSessionActive());
1616 ASSERT_FALSE(TabDragController::IsActive()); 1593 ASSERT_FALSE(TabDragController::IsActive());
1617 EXPECT_EQ("0 100", IDString(browser2->tab_strip_model())); 1594 EXPECT_EQ("0 100", IDString(browser2->tab_strip_model()));
1618 EXPECT_EQ("1", IDString(browser()->tab_strip_model())); 1595 EXPECT_EQ("1", IDString(browser()->tab_strip_model()));
1619 1596
1620 // Both windows should not be maximized 1597 // Both windows should not be maximized
1621 EXPECT_FALSE(browser()->window()->IsMaximized()); 1598 EXPECT_FALSE(browser()->window()->IsMaximized());
1622 EXPECT_FALSE(browser2->window()->IsMaximized()); 1599 EXPECT_FALSE(browser2->window()->IsMaximized());
1623 } 1600 }
1624 1601
1625 #if defined(OS_CHROMEOS)
1626 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1627 // compositor. crbug.com/331924
1628 #define MAYBE_DragTabToWindowOnSecondDisplay \
1629 DISABLED_DragTabToWindowOnSecondDisplay
1630 #else
1631 #define MAYBE_DragTabToWindowOnSecondDisplay DragTabToWindowOnSecondDisplay
1632 #endif
1633 // Drags from browser to another browser on a second display and releases input. 1602 // Drags from browser to another browser on a second display and releases input.
1634 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest, 1603 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest,
1635 MAYBE_DragTabToWindowOnSecondDisplay) { 1604 DISABLED_DragTabToWindowOnSecondDisplay) {
1636 // Add another tab. 1605 // Add another tab.
1637 AddTabAndResetBrowser(browser()); 1606 AddTabAndResetBrowser(browser());
1638 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1607 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1639 1608
1640 // Create another browser. 1609 // Create another browser.
1641 Browser* browser2 = CreateBrowser(browser()->profile()); 1610 Browser* browser2 = CreateBrowser(browser()->profile());
1642 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2); 1611 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2);
1643 ResetIDs(browser2->tab_strip_model(), 100); 1612 ResetIDs(browser2->tab_strip_model(), 100);
1644 1613
1645 // Move both browsers to the second display. 1614 // Move both browsers to the second display.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1685 ASSERT_FALSE(tab_strip->IsDragSessionActive()); 1654 ASSERT_FALSE(tab_strip->IsDragSessionActive());
1686 ASSERT_FALSE(TabDragController::IsActive()); 1655 ASSERT_FALSE(TabDragController::IsActive());
1687 EXPECT_EQ("0 100", IDString(browser2->tab_strip_model())); 1656 EXPECT_EQ("0 100", IDString(browser2->tab_strip_model()));
1688 EXPECT_EQ("1", IDString(browser()->tab_strip_model())); 1657 EXPECT_EQ("1", IDString(browser()->tab_strip_model()));
1689 1658
1690 // Both windows should not be maximized 1659 // Both windows should not be maximized
1691 EXPECT_FALSE(browser()->window()->IsMaximized()); 1660 EXPECT_FALSE(browser()->window()->IsMaximized());
1692 EXPECT_FALSE(browser2->window()->IsMaximized()); 1661 EXPECT_FALSE(browser2->window()->IsMaximized());
1693 } 1662 }
1694 1663
1695 #if defined(OS_CHROMEOS)
1696 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1697 // compositor. crbug.com/331924
1698 #define MAYBE_DragMaxTabToNonMaxWindowInSeparateDisplay \
1699 DISABLED_DragMaxTabToNonMaxWindowInSeparateDisplay
1700 #else
1701 #define MAYBE_DragMaxTabToNonMaxWindowInSeparateDisplay \
1702 DragMaxTabToNonMaxWindowInSeparateDisplay
1703 #endif
1704 // Drags from a maximized browser to another non-maximized browser on a second 1664 // Drags from a maximized browser to another non-maximized browser on a second
1705 // display and releases input. 1665 // display and releases input.
1706 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest, 1666 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest,
1707 MAYBE_DragMaxTabToNonMaxWindowInSeparateDisplay) { 1667 DISABLED_DragMaxTabToNonMaxWindowInSeparateDisplay) {
1708 // Add another tab. 1668 // Add another tab.
1709 AddTabAndResetBrowser(browser()); 1669 AddTabAndResetBrowser(browser());
1710 browser()->window()->Maximize(); 1670 browser()->window()->Maximize();
1711 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1671 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1712 1672
1713 // Create another browser on the second display. 1673 // Create another browser on the second display.
1714 aura::Window::Windows roots = ash::Shell::GetAllRootWindows(); 1674 aura::Window::Windows roots = ash::Shell::GetAllRootWindows();
1715 ASSERT_EQ(2u, roots.size()); 1675 ASSERT_EQ(2u, roots.size());
1716 aura::Window* first_root = roots[0]; 1676 aura::Window* first_root = roots[0];
1717 aura::Window* second_root = roots[1]; 1677 aura::Window* second_root = roots[1];
1718 gfx::Rect work_area = gfx::Screen::GetNativeScreen()->GetDisplayNearestWindow( 1678 gfx::Rect work_area = gfx::Screen::GetNativeScreen()->GetDisplayNearestWindow(
1719 second_root).work_area(); 1679 second_root).work_area();
1720 work_area.Inset(20,20,20,60); 1680 work_area.Inset(20, 20, 20, 60);
1721 Browser::CreateParams params(browser()->profile(), 1681 Browser::CreateParams params(browser()->profile(),
1722 browser()->host_desktop_type()); 1682 browser()->host_desktop_type());
1723 params.initial_show_state = ui::SHOW_STATE_NORMAL; 1683 params.initial_show_state = ui::SHOW_STATE_NORMAL;
1724 params.initial_bounds = work_area; 1684 params.initial_bounds = work_area;
1725 Browser* browser2 = new Browser(params); 1685 Browser* browser2 = new Browser(params);
1726 AddBlankTabAndShow(browser2); 1686 AddBlankTabAndShow(browser2);
1727 1687
1728 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2); 1688 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2);
1729 ResetIDs(browser2->tab_strip_model(), 100); 1689 ResetIDs(browser2->tab_strip_model(), 100);
1730 1690
(...skipping 30 matching lines...) Expand all
1761 ASSERT_FALSE(tab_strip->IsDragSessionActive()); 1721 ASSERT_FALSE(tab_strip->IsDragSessionActive());
1762 ASSERT_FALSE(TabDragController::IsActive()); 1722 ASSERT_FALSE(TabDragController::IsActive());
1763 EXPECT_EQ("0 100", IDString(browser2->tab_strip_model())); 1723 EXPECT_EQ("0 100", IDString(browser2->tab_strip_model()));
1764 EXPECT_EQ("1", IDString(browser()->tab_strip_model())); 1724 EXPECT_EQ("1", IDString(browser()->tab_strip_model()));
1765 1725
1766 // Source browser should still be maximized, target should not 1726 // Source browser should still be maximized, target should not
1767 EXPECT_TRUE(browser()->window()->IsMaximized()); 1727 EXPECT_TRUE(browser()->window()->IsMaximized());
1768 EXPECT_FALSE(browser2->window()->IsMaximized()); 1728 EXPECT_FALSE(browser2->window()->IsMaximized());
1769 } 1729 }
1770 1730
1771 // Immersive fullscreen is Ash only. However, Windows Ash does not support
1772 // multiple displays.
1773 #if defined(OS_CHROMEOS)
1774 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1775 // compositor. crbug.com/331924
1776 #define MAYBE_DragTabToImmersiveBrowserOnSeparateDisplay \
1777 DISABLED_DragTabToImmersiveBrowserOnSeparateDisplay
1778 // Drags from a restored browser to an immersive fullscreen browser on a 1731 // Drags from a restored browser to an immersive fullscreen browser on a
1779 // second display and releases input. 1732 // second display and releases input.
1780 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest, 1733 IN_PROC_BROWSER_TEST_P(DetachToBrowserInSeparateDisplayTabDragControllerTest,
1781 MAYBE_DragTabToImmersiveBrowserOnSeparateDisplay) { 1734 DISABLED_DragTabToImmersiveBrowserOnSeparateDisplay) {
1782 // Add another tab. 1735 // Add another tab.
1783 AddTabAndResetBrowser(browser()); 1736 AddTabAndResetBrowser(browser());
1784 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1737 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1785 1738
1786 // Create another browser. 1739 // Create another browser.
1787 Browser* browser2 = CreateBrowser(browser()->profile()); 1740 Browser* browser2 = CreateBrowser(browser()->profile());
1788 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2); 1741 TabStrip* tab_strip2 = GetTabStripForBrowser(browser2);
1789 ResetIDs(browser2->tab_strip_model(), 100); 1742 ResetIDs(browser2->tab_strip_model(), 100);
1790 1743
1791 // Move the second browser to the second display. 1744 // Move the second browser to the second display.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1844 // The first browser window should not be in immersive fullscreen. 1797 // The first browser window should not be in immersive fullscreen.
1845 // browser2 should still be in immersive fullscreen, but the top chrome should 1798 // browser2 should still be in immersive fullscreen, but the top chrome should
1846 // no longer be revealed. 1799 // no longer be revealed.
1847 BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); 1800 BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
1848 EXPECT_FALSE(browser_view->immersive_mode_controller()->IsEnabled()); 1801 EXPECT_FALSE(browser_view->immersive_mode_controller()->IsEnabled());
1849 1802
1850 EXPECT_TRUE(immersive_controller2->IsEnabled()); 1803 EXPECT_TRUE(immersive_controller2->IsEnabled());
1851 EXPECT_FALSE(immersive_controller2->IsRevealed()); 1804 EXPECT_FALSE(immersive_controller2->IsRevealed());
1852 EXPECT_TRUE(tab_strip2->IsImmersiveStyle()); 1805 EXPECT_TRUE(tab_strip2->IsImmersiveStyle());
1853 } 1806 }
1854 #endif // OS_CHROMEOS
1855 1807
1856 // Subclass of DetachToBrowserTabDragControllerTest that 1808 // Subclass of DetachToBrowserTabDragControllerTest that
1857 // creates multiple displays with different device scale factors. 1809 // creates multiple displays with different device scale factors.
1858 class DifferentDeviceScaleFactorDisplayTabDragControllerTest 1810 class DifferentDeviceScaleFactorDisplayTabDragControllerTest
1859 : public DetachToBrowserTabDragControllerTest { 1811 : public DetachToBrowserTabDragControllerTest {
1860 public: 1812 public:
1861 DifferentDeviceScaleFactorDisplayTabDragControllerTest() {} 1813 DifferentDeviceScaleFactorDisplayTabDragControllerTest() {}
1862 virtual ~DifferentDeviceScaleFactorDisplayTabDragControllerTest() {} 1814 virtual ~DifferentDeviceScaleFactorDisplayTabDragControllerTest() {}
1863 1815
1864 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 1816 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1924 } else { 1876 } else {
1925 // Finishes a serise of CursorDeviceScaleFactorStep calls and ends drag. 1877 // Finishes a serise of CursorDeviceScaleFactorStep calls and ends drag.
1926 EXPECT_EQ(1.0f, test->GetCursorDeviceScaleFactor()); 1878 EXPECT_EQ(1.0f, test->GetCursorDeviceScaleFactor());
1927 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync( 1879 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync(
1928 ui_controls::LEFT, ui_controls::UP)); 1880 ui_controls::LEFT, ui_controls::UP));
1929 } 1881 }
1930 } 1882 }
1931 1883
1932 } // namespace 1884 } // namespace
1933 1885
1934 #if defined(OS_CHROMEOS)
1935 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
1936 // compositor. crbug.com/331924
1937 #define MAYBE_CursorDeviceScaleFactor DISABLED_CursorDeviceScaleFactor
1938 #else
1939 #define MAYBE_CursorDeviceScaleFactor CursorDeviceScaleFactor
1940 #endif
1941 // Verifies cursor's device scale factor is updated when a tab is moved across 1886 // Verifies cursor's device scale factor is updated when a tab is moved across
1942 // displays with different device scale factors (http://crbug.com/154183). 1887 // displays with different device scale factors (http://crbug.com/154183).
1943 IN_PROC_BROWSER_TEST_P(DifferentDeviceScaleFactorDisplayTabDragControllerTest, 1888 IN_PROC_BROWSER_TEST_P(DifferentDeviceScaleFactorDisplayTabDragControllerTest,
1944 MAYBE_CursorDeviceScaleFactor) { 1889 DISABLED_CursorDeviceScaleFactor) {
1945 // Add another tab. 1890 // Add another tab.
1946 AddTabAndResetBrowser(browser()); 1891 AddTabAndResetBrowser(browser());
1947 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1892 TabStrip* tab_strip = GetTabStripForBrowser(browser());
1948 1893
1949 // Move the second browser to the second display. 1894 // Move the second browser to the second display.
1950 aura::Window::Windows roots = ash::Shell::GetAllRootWindows(); 1895 aura::Window::Windows roots = ash::Shell::GetAllRootWindows();
1951 ASSERT_EQ(2u, roots.size()); 1896 ASSERT_EQ(2u, roots.size());
1952 1897
1953 // Move to the first tab and drag it enough so that it detaches. 1898 // Move to the first tab and drag it enough so that it detaches.
1954 gfx::Point tab_0_center(GetCenterInScreenCoordinates(tab_strip->tab_at(0))); 1899 gfx::Point tab_0_center(GetCenterInScreenCoordinates(tab_strip->tab_at(0)));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
2025 new_browser->window()->GetNativeWindow()->GetRootWindow()); 1970 new_browser->window()->GetNativeWindow()->GetRootWindow());
2026 1971
2027 ASSERT_TRUE(test->DragTabAndExecuteTaskWhenDone( 1972 ASSERT_TRUE(test->DragTabAndExecuteTaskWhenDone(
2028 final_destination, 1973 final_destination,
2029 base::Bind(&CancelDragTabToWindowInSeparateDisplayStep3, 1974 base::Bind(&CancelDragTabToWindowInSeparateDisplayStep3,
2030 tab_strip, browser_list))); 1975 tab_strip, browser_list)));
2031 } 1976 }
2032 1977
2033 } // namespace 1978 } // namespace
2034 1979
2035 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
2036 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
2037 // compositor. crbug.com/331924
2038 #define MAYBE_CancelDragTabToWindowIn2ndDisplay \
2039 DISABLED_CancelDragTabToWindowIn2ndDisplay
2040 #else
2041 #define MAYBE_CancelDragTabToWindowIn2ndDisplay \
2042 CancelDragTabToWindowIn2ndDisplay
2043 #endif
2044 // Drags from browser to a second display and releases input. 1980 // Drags from browser to a second display and releases input.
2045 IN_PROC_BROWSER_TEST_F( 1981 IN_PROC_BROWSER_TEST_F(
2046 DetachToBrowserInSeparateDisplayAndCancelTabDragControllerTest, 1982 DetachToBrowserInSeparateDisplayAndCancelTabDragControllerTest,
2047 MAYBE_CancelDragTabToWindowIn2ndDisplay) { 1983 DISABLED_CancelDragTabToWindowIn2ndDisplay) {
2048 // Add another tab. 1984 // Add another tab.
2049 AddTabAndResetBrowser(browser()); 1985 AddTabAndResetBrowser(browser());
2050 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 1986 TabStrip* tab_strip = GetTabStripForBrowser(browser());
2051 1987
2052 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model())); 1988 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model()));
2053 1989
2054 // Move the second browser to the second display. 1990 // Move the second browser to the second display.
2055 aura::Window::Windows roots = ash::Shell::GetAllRootWindows(); 1991 aura::Window::Windows roots = ash::Shell::GetAllRootWindows();
2056 ASSERT_EQ(2u, roots.size()); 1992 ASSERT_EQ(2u, roots.size());
2057 gfx::Point final_destination = 1993 gfx::Point final_destination =
(...skipping 14 matching lines...) Expand all
2072 ASSERT_EQ(1u, native_browser_list->size()); 2008 ASSERT_EQ(1u, native_browser_list->size());
2073 ASSERT_FALSE(tab_strip->IsDragSessionActive()); 2009 ASSERT_FALSE(tab_strip->IsDragSessionActive());
2074 ASSERT_FALSE(TabDragController::IsActive()); 2010 ASSERT_FALSE(TabDragController::IsActive());
2075 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model())); 2011 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model()));
2076 2012
2077 // Release the mouse 2013 // Release the mouse
2078 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync( 2014 ASSERT_TRUE(ui_test_utils::SendMouseEventsSync(
2079 ui_controls::LEFT, ui_controls::UP)); 2015 ui_controls::LEFT, ui_controls::UP));
2080 } 2016 }
2081 2017
2082 #if defined(OS_CHROMEOS) || defined(OS_LINUX)
2083 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
2084 // compositor. crbug.com/331924
2085 #define MAYBE_CancelDragTabToWindowIn1stDisplay \
2086 DISABLED_CancelDragTabToWindowIn1stDisplay
2087 #else
2088 #define MAYBE_CancelDragTabToWindowIn1stDisplay \
2089 CancelDragTabToWindowIn1stDisplay
2090 #endif
2091 // Drags from browser from a second display to primary and releases input. 2018 // Drags from browser from a second display to primary and releases input.
2092 IN_PROC_BROWSER_TEST_F( 2019 IN_PROC_BROWSER_TEST_F(
2093 DetachToBrowserInSeparateDisplayAndCancelTabDragControllerTest, 2020 DetachToBrowserInSeparateDisplayAndCancelTabDragControllerTest,
2094 MAYBE_CancelDragTabToWindowIn1stDisplay) { 2021 DISABLED_CancelDragTabToWindowIn1stDisplay) {
2095 aura::Window::Windows roots = ash::Shell::GetAllRootWindows(); 2022 aura::Window::Windows roots = ash::Shell::GetAllRootWindows();
2096 ASSERT_EQ(2u, roots.size()); 2023 ASSERT_EQ(2u, roots.size());
2097 2024
2098 // Add another tab. 2025 // Add another tab.
2099 AddTabAndResetBrowser(browser()); 2026 AddTabAndResetBrowser(browser());
2100 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 2027 TabStrip* tab_strip = GetTabStripForBrowser(browser());
2101 2028
2102 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model())); 2029 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model()));
2103 EXPECT_EQ(roots[0], browser()->window()->GetNativeWindow()->GetRootWindow()); 2030 EXPECT_EQ(roots[0], browser()->window()->GetNativeWindow()->GetRootWindow());
2104 2031
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2140 ASSERT_TRUE(TabDragController::IsActive()); 2067 ASSERT_TRUE(TabDragController::IsActive());
2141 ASSERT_EQ(2u, test->native_browser_list->size()); 2068 ASSERT_EQ(2u, test->native_browser_list->size());
2142 Browser* new_browser = test->native_browser_list->get(1); 2069 Browser* new_browser = test->native_browser_list->get(1);
2143 ASSERT_TRUE(new_browser->window()->IsActive()); 2070 ASSERT_TRUE(new_browser->window()->IsActive());
2144 2071
2145 ASSERT_TRUE(test->PressInput2()); 2072 ASSERT_TRUE(test->PressInput2());
2146 } 2073 }
2147 2074
2148 } // namespace 2075 } // namespace
2149 2076
2150 #if defined(OS_CHROMEOS)
2151 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
2152 // compositor. crbug.com/331924
2153 #define MAYBE_PressSecondFingerWhileDetached DISABLED_PressSecondFingerWhileDeta ched
2154 #else
2155 #define MAYBE_PressSecondFingerWhileDetached PressSecondFingerWhileDetached
2156 #endif
2157 // Detaches a tab and while detached presses a second finger. 2077 // Detaches a tab and while detached presses a second finger.
2158 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestTouch, 2078 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTestTouch,
2159 MAYBE_PressSecondFingerWhileDetached) { 2079 DISABLED_PressSecondFingerWhileDetached) {
2160 gfx::Rect bounds(browser()->window()->GetBounds()); 2080 gfx::Rect bounds(browser()->window()->GetBounds());
2161 // Add another tab. 2081 // Add another tab.
2162 AddTabAndResetBrowser(browser()); 2082 AddTabAndResetBrowser(browser());
2163 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 2083 TabStrip* tab_strip = GetTabStripForBrowser(browser());
2164 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model())); 2084 EXPECT_EQ("0 1", IDString(browser()->tab_strip_model()));
2165 2085
2166 // Move to the first tab and drag it enough so that it detaches. 2086 // Move to the first tab and drag it enough so that it detaches.
2167 gfx::Point tab_0_center( 2087 gfx::Point tab_0_center(
2168 GetCenterInScreenCoordinates(tab_strip->tab_at(0))); 2088 GetCenterInScreenCoordinates(tab_strip->tab_at(0)));
2169 ASSERT_TRUE(PressInput(tab_0_center)); 2089 ASSERT_TRUE(PressInput(tab_0_center));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 ASSERT_TRUE(test->DragInputToNotifyWhenDone( 2122 ASSERT_TRUE(test->DragInputToNotifyWhenDone(
2203 target_point.x(), target_point.y(), 2123 target_point.x(), target_point.y(),
2204 base::Bind(&DetachToDockedWindowNextStep, 2124 base::Bind(&DetachToDockedWindowNextStep,
2205 test, 2125 test,
2206 gfx::Point(target_point.x(), 1 + target_point.y()), 2126 gfx::Point(target_point.x(), 1 + target_point.y()),
2207 iteration - 1))); 2127 iteration - 1)));
2208 } 2128 }
2209 2129
2210 } // namespace 2130 } // namespace
2211 2131
2212 #if defined(OS_CHROMEOS)
2213 // TODO(sky,sad): Disabled as it fails due to resize locks with a real
2214 // compositor. crbug.com/331924
2215 #define MAYBE_DetachToDockedWindowFromMaximizedWindow \
2216 DISABLED_DetachToDockedWindowFromMaximizedWindow
2217 #else
2218 #define MAYBE_DetachToDockedWindowFromMaximizedWindow \
2219 DetachToDockedWindowFromMaximizedWindow
2220 #endif
2221 // Drags from browser to separate window, docks that window and releases mouse. 2132 // Drags from browser to separate window, docks that window and releases mouse.
2222 IN_PROC_BROWSER_TEST_F(DetachToBrowserTabDragControllerTest, 2133 IN_PROC_BROWSER_TEST_P(DetachToBrowserTabDragControllerTest,
2223 MAYBE_DetachToDockedWindowFromMaximizedWindow) { 2134 DISABLED_DetachToDockedWindowFromMaximizedWindow) {
2224 // Maximize the initial browser window. 2135 // Maximize the initial browser window.
2225 browser()->window()->Maximize(); 2136 browser()->window()->Maximize();
2226 ASSERT_TRUE(browser()->window()->IsMaximized()); 2137 ASSERT_TRUE(browser()->window()->IsMaximized());
2227 2138
2228 // Add another tab. 2139 // Add another tab.
2229 AddTabAndResetBrowser(browser()); 2140 AddTabAndResetBrowser(browser());
2230 TabStrip* tab_strip = GetTabStripForBrowser(browser()); 2141 TabStrip* tab_strip = GetTabStripForBrowser(browser());
2231 2142
2232 // Move to the first tab and drag it enough so that it detaches. 2143 // Move to the first tab and drag it enough so that it detaches.
2233 gfx::Point tab_0_center( 2144 gfx::Point tab_0_center(
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2287 ::testing::Values("mouse", "touch")); 2198 ::testing::Values("mouse", "touch"));
2288 INSTANTIATE_TEST_CASE_P(TabDragging, 2199 INSTANTIATE_TEST_CASE_P(TabDragging,
2289 DifferentDeviceScaleFactorDisplayTabDragControllerTest, 2200 DifferentDeviceScaleFactorDisplayTabDragControllerTest,
2290 ::testing::Values("mouse")); 2201 ::testing::Values("mouse"));
2291 INSTANTIATE_TEST_CASE_P(TabDragging, 2202 INSTANTIATE_TEST_CASE_P(TabDragging,
2292 DetachToBrowserTabDragControllerTest, 2203 DetachToBrowserTabDragControllerTest,
2293 ::testing::Values("mouse", "touch")); 2204 ::testing::Values("mouse", "touch"));
2294 INSTANTIATE_TEST_CASE_P(TabDragging, 2205 INSTANTIATE_TEST_CASE_P(TabDragging,
2295 DetachToBrowserTabDragControllerTestTouch, 2206 DetachToBrowserTabDragControllerTestTouch,
2296 ::testing::Values("touch")); 2207 ::testing::Values("touch"));
2297 #elif defined(USE_ASH) && !defined(OS_LINUX) // TODO(linux_ash) 2208 #elif defined(USE_ASH)
2298 INSTANTIATE_TEST_CASE_P(TabDragging, 2209 INSTANTIATE_TEST_CASE_P(TabDragging,
2299 DetachToBrowserTabDragControllerTest, 2210 DetachToBrowserTabDragControllerTest,
2300 ::testing::Values("mouse")); 2211 ::testing::Values("mouse"));
2301 #endif 2212 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698