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

Side by Side Diff: ui/aura/window_unittest.cc

Issue 191153004: Provide access to the WindowEventDispatcher as a ui::EventProcessor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 9 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 | « ui/aura/window_tree_host.cc ('k') | ui/snapshot/snapshot_aura_unittest.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 "ui/aura/window.h" 5 #include "ui/aura/window.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 #if defined(USE_OZONE) 363 #if defined(USE_OZONE)
364 // TODO(rjkroege): Add cursor support in ozone: http://crbug.com/252315. 364 // TODO(rjkroege): Add cursor support in ozone: http://crbug.com/252315.
365 TEST_F(WindowTest, DISABLED_MoveCursorToWithTransformRootWindow) { 365 TEST_F(WindowTest, DISABLED_MoveCursorToWithTransformRootWindow) {
366 #else 366 #else
367 TEST_F(WindowTest, MoveCursorToWithTransformRootWindow) { 367 TEST_F(WindowTest, MoveCursorToWithTransformRootWindow) {
368 #endif 368 #endif
369 gfx::Transform transform; 369 gfx::Transform transform;
370 transform.Translate(100.0, 100.0); 370 transform.Translate(100.0, 100.0);
371 transform.Rotate(90.0); 371 transform.Rotate(90.0);
372 transform.Scale(2.0, 5.0); 372 transform.Scale(2.0, 5.0);
373 dispatcher()->host()->SetTransform(transform); 373 host()->SetTransform(transform);
374 dispatcher()->host()->MoveCursorTo(gfx::Point(10, 10)); 374 host()->MoveCursorTo(gfx::Point(10, 10));
375 #if !defined(OS_WIN) 375 #if !defined(OS_WIN)
376 gfx::Point mouse_location; 376 gfx::Point mouse_location;
377 EXPECT_TRUE(dispatcher()->host()->QueryMouseLocation(&mouse_location)); 377 EXPECT_TRUE(host()->QueryMouseLocation(&mouse_location));
378 // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413.OD 378 // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413.OD
379 EXPECT_EQ("50,120", mouse_location.ToString()); 379 EXPECT_EQ("50,120", mouse_location.ToString());
380 #endif 380 #endif
381 EXPECT_EQ("10,10", gfx::Screen::GetScreenFor( 381 EXPECT_EQ("10,10", gfx::Screen::GetScreenFor(
382 root_window())->GetCursorScreenPoint().ToString()); 382 root_window())->GetCursorScreenPoint().ToString());
383 } 383 }
384 384
385 // Tests Window::ConvertPointToWindow() with transform to non-root windows. 385 // Tests Window::ConvertPointToWindow() with transform to non-root windows.
386 TEST_F(WindowTest, MoveCursorToWithTransformWindow) { 386 TEST_F(WindowTest, MoveCursorToWithTransformWindow) {
387 scoped_ptr<Window> w1( 387 scoped_ptr<Window> w1(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 gfx::Transform root_transform; 444 gfx::Transform root_transform;
445 root_transform.Translate(60.0, 70.0); 445 root_transform.Translate(60.0, 70.0);
446 root_transform.Rotate(-90.0); 446 root_transform.Rotate(-90.0);
447 root_transform.Translate(-50.0, -50.0); 447 root_transform.Translate(-50.0, -50.0);
448 root_transform.Scale(2.0, 3.0); 448 root_transform.Scale(2.0, 3.0);
449 449
450 gfx::Transform transform; 450 gfx::Transform transform;
451 transform.Translate(10.0, 20.0); 451 transform.Translate(10.0, 20.0);
452 transform.Rotate(10.0); 452 transform.Rotate(10.0);
453 transform.Scale(0.3f, 0.5f); 453 transform.Scale(0.3f, 0.5f);
454 dispatcher()->host()->SetTransform(root_transform); 454 host()->SetTransform(root_transform);
455 w1->SetTransform(transform); 455 w1->SetTransform(transform);
456 w11->SetTransform(transform); 456 w11->SetTransform(transform);
457 w111->SetTransform(transform); 457 w111->SetTransform(transform);
458 w1111->SetTransform(transform); 458 w1111->SetTransform(transform);
459 459
460 w1111->MoveCursorTo(gfx::Point(10, 10)); 460 w1111->MoveCursorTo(gfx::Point(10, 10));
461 461
462 #if !defined(OS_WIN) 462 #if !defined(OS_WIN)
463 // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413. 463 // TODO(yoshiki): fix this to build on Windows. See crbug.com/133413.
464 gfx::Point mouse_location; 464 gfx::Point mouse_location;
465 EXPECT_TRUE(dispatcher()->host()->QueryMouseLocation(&mouse_location)); 465 EXPECT_TRUE(host()->QueryMouseLocation(&mouse_location));
466 EXPECT_EQ("169,80", mouse_location.ToString()); 466 EXPECT_EQ("169,80", mouse_location.ToString());
467 #endif 467 #endif
468 EXPECT_EQ("20,53", 468 EXPECT_EQ("20,53",
469 gfx::Screen::GetScreenFor(root)->GetCursorScreenPoint().ToString()); 469 gfx::Screen::GetScreenFor(root)->GetCursorScreenPoint().ToString());
470 } 470 }
471 471
472 TEST_F(WindowTest, GetEventHandlerForPoint) { 472 TEST_F(WindowTest, GetEventHandlerForPoint) {
473 scoped_ptr<Window> w1( 473 scoped_ptr<Window> w1(
474 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500), 474 CreateTestWindow(SK_ColorWHITE, 1, gfx::Rect(10, 10, 500, 500),
475 root_window())); 475 root_window()));
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 EXPECT_FALSE(window->HasCapture()); 1061 EXPECT_FALSE(window->HasCapture());
1062 1062
1063 // Do a capture. 1063 // Do a capture.
1064 window->SetCapture(); 1064 window->SetCapture();
1065 EXPECT_TRUE(window->HasCapture()); 1065 EXPECT_TRUE(window->HasCapture());
1066 1066
1067 // Destroy the window. 1067 // Destroy the window.
1068 window.reset(); 1068 window.reset();
1069 1069
1070 // Make sure the root window doesn't reference the window anymore. 1070 // Make sure the root window doesn't reference the window anymore.
1071 EXPECT_EQ(NULL, dispatcher()->mouse_pressed_handler()); 1071 EXPECT_EQ(NULL, host()->dispatcher()->mouse_pressed_handler());
1072 EXPECT_EQ(NULL, aura::client::GetCaptureWindow(root_window())); 1072 EXPECT_EQ(NULL, aura::client::GetCaptureWindow(root_window()));
1073 } 1073 }
1074 1074
1075 TEST_F(WindowTest, GetBoundsInRootWindow) { 1075 TEST_F(WindowTest, GetBoundsInRootWindow) {
1076 scoped_ptr<Window> viewport(CreateTestWindowWithBounds( 1076 scoped_ptr<Window> viewport(CreateTestWindowWithBounds(
1077 gfx::Rect(0, 0, 300, 300), root_window())); 1077 gfx::Rect(0, 0, 300, 300), root_window()));
1078 scoped_ptr<Window> child(CreateTestWindowWithBounds( 1078 scoped_ptr<Window> child(CreateTestWindowWithBounds(
1079 gfx::Rect(0, 0, 100, 100), viewport.get())); 1079 gfx::Rect(0, 0, 100, 100), viewport.get()));
1080 // Sanity check. 1080 // Sanity check.
1081 EXPECT_EQ("0,0 100x100", child->GetBoundsInRootWindow().ToString()); 1081 EXPECT_EQ("0,0 100x100", child->GetBoundsInRootWindow().ToString());
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
1478 w121->set_ignore_events(true); 1478 w121->set_ignore_events(true);
1479 EXPECT_EQ(w12.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160))); 1479 EXPECT_EQ(w12.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160)));
1480 w12->set_ignore_events(true); 1480 w12->set_ignore_events(true);
1481 EXPECT_EQ(w111.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160))); 1481 EXPECT_EQ(w111.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160)));
1482 w111->set_ignore_events(true); 1482 w111->set_ignore_events(true);
1483 EXPECT_EQ(w11.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160))); 1483 EXPECT_EQ(w11.get(), w1->GetEventHandlerForPoint(gfx::Point(160, 160)));
1484 } 1484 }
1485 1485
1486 // Tests transformation on the root window. 1486 // Tests transformation on the root window.
1487 TEST_F(WindowTest, Transform) { 1487 TEST_F(WindowTest, Transform) {
1488 gfx::Size size = dispatcher()->host()->GetBounds().size(); 1488 gfx::Size size = host()->GetBounds().size();
1489 EXPECT_EQ(gfx::Rect(size), 1489 EXPECT_EQ(gfx::Rect(size),
1490 gfx::Screen::GetScreenFor(root_window())->GetDisplayNearestPoint( 1490 gfx::Screen::GetScreenFor(root_window())->GetDisplayNearestPoint(
1491 gfx::Point()).bounds()); 1491 gfx::Point()).bounds());
1492 1492
1493 // Rotate it clock-wise 90 degrees. 1493 // Rotate it clock-wise 90 degrees.
1494 gfx::Transform transform; 1494 gfx::Transform transform;
1495 transform.Translate(size.height(), 0); 1495 transform.Translate(size.height(), 0);
1496 transform.Rotate(90.0); 1496 transform.Rotate(90.0);
1497 dispatcher()->host()->SetTransform(transform); 1497 host()->SetTransform(transform);
1498 1498
1499 // The size should be the transformed size. 1499 // The size should be the transformed size.
1500 gfx::Size transformed_size(size.height(), size.width()); 1500 gfx::Size transformed_size(size.height(), size.width());
1501 EXPECT_EQ(transformed_size.ToString(), 1501 EXPECT_EQ(transformed_size.ToString(),
1502 root_window()->bounds().size().ToString()); 1502 root_window()->bounds().size().ToString());
1503 EXPECT_EQ( 1503 EXPECT_EQ(
1504 gfx::Rect(transformed_size).ToString(), 1504 gfx::Rect(transformed_size).ToString(),
1505 gfx::Screen::GetScreenFor(root_window())->GetDisplayNearestPoint( 1505 gfx::Screen::GetScreenFor(root_window())->GetDisplayNearestPoint(
1506 gfx::Point()).bounds().ToString()); 1506 gfx::Point()).bounds().ToString());
1507 1507
1508 // Host size shouldn't change. 1508 // Host size shouldn't change.
1509 EXPECT_EQ(size.ToString(), 1509 EXPECT_EQ(size.ToString(), host()->GetBounds().size().ToString());
1510 dispatcher()->host()->GetBounds().size().ToString());
1511 } 1510 }
1512 1511
1513 TEST_F(WindowTest, TransformGesture) { 1512 TEST_F(WindowTest, TransformGesture) {
1514 gfx::Size size = dispatcher()->host()->GetBounds().size(); 1513 gfx::Size size = host()->GetBounds().size();
1515 1514
1516 scoped_ptr<GestureTrackPositionDelegate> delegate( 1515 scoped_ptr<GestureTrackPositionDelegate> delegate(
1517 new GestureTrackPositionDelegate); 1516 new GestureTrackPositionDelegate);
1518 scoped_ptr<Window> window(CreateTestWindowWithDelegate(delegate.get(), -1234, 1517 scoped_ptr<Window> window(CreateTestWindowWithDelegate(delegate.get(), -1234,
1519 gfx::Rect(0, 0, 20, 20), root_window())); 1518 gfx::Rect(0, 0, 20, 20), root_window()));
1520 1519
1521 // Rotate the root-window clock-wise 90 degrees. 1520 // Rotate the root-window clock-wise 90 degrees.
1522 gfx::Transform transform; 1521 gfx::Transform transform;
1523 transform.Translate(size.height(), 0.0); 1522 transform.Translate(size.height(), 0.0);
1524 transform.Rotate(90.0); 1523 transform.Rotate(90.0);
1525 dispatcher()->host()->SetTransform(transform); 1524 host()->SetTransform(transform);
1526 1525
1527 ui::TouchEvent press( 1526 ui::TouchEvent press(
1528 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); 1527 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime());
1529 DispatchEventUsingWindowDispatcher(&press); 1528 DispatchEventUsingWindowDispatcher(&press);
1530 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString()); 1529 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString());
1531 } 1530 }
1532 1531
1533 namespace { 1532 namespace {
1534 DEFINE_WINDOW_PROPERTY_KEY(int, kIntKey, -2); 1533 DEFINE_WINDOW_PROPERTY_KEY(int, kIntKey, -2);
1535 DEFINE_WINDOW_PROPERTY_KEY(const char*, kStringKey, "squeamish"); 1534 DEFINE_WINDOW_PROPERTY_KEY(const char*, kStringKey, "squeamish");
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
2010 window->Show(); 2009 window->Show();
2011 2010
2012 client.set_ignore_visibility_changes(true); 2011 client.set_ignore_visibility_changes(true);
2013 window->Hide(); 2012 window->Hide();
2014 EXPECT_FALSE(window->IsVisible()); 2013 EXPECT_FALSE(window->IsVisible());
2015 EXPECT_TRUE(window->layer()->visible()); 2014 EXPECT_TRUE(window->layer()->visible());
2016 } 2015 }
2017 2016
2018 // Tests mouse events on window change. 2017 // Tests mouse events on window change.
2019 TEST_F(WindowTest, MouseEventsOnWindowChange) { 2018 TEST_F(WindowTest, MouseEventsOnWindowChange) {
2020 gfx::Size size = dispatcher()->host()->GetBounds().size(); 2019 gfx::Size size = host()->GetBounds().size();
2021 2020
2022 EventGenerator generator(root_window()); 2021 EventGenerator generator(root_window());
2023 generator.MoveMouseTo(50, 50); 2022 generator.MoveMouseTo(50, 50);
2024 2023
2025 EventCountDelegate d1; 2024 EventCountDelegate d1;
2026 scoped_ptr<Window> w1(CreateTestWindowWithDelegate(&d1, 1, 2025 scoped_ptr<Window> w1(CreateTestWindowWithDelegate(&d1, 1,
2027 gfx::Rect(0, 0, 100, 100), root_window())); 2026 gfx::Rect(0, 0, 100, 100), root_window()));
2028 RunAllPendingInMessageLoop(); 2027 RunAllPendingInMessageLoop();
2029 // The format of result is "Enter/Mouse/Leave". 2028 // The format of result is "Enter/Mouse/Leave".
2030 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset()); 2029 EXPECT_EQ("1 1 0", d1.GetMouseMotionCountsAndReset());
(...skipping 1255 matching lines...) Expand 10 before | Expand all | Expand 10 after
3286 BuildRootLayerTreeDescription(*root.layer())) 3285 BuildRootLayerTreeDescription(*root.layer()))
3287 << "layer tree doesn't match at " << i; 3286 << "layer tree doesn't match at " << i;
3288 EXPECT_EQ(data[i].expected_description, 3287 EXPECT_EQ(data[i].expected_description,
3289 BuildRootWindowTreeDescription(root)) 3288 BuildRootWindowTreeDescription(root))
3290 << "window tree doesn't match at " << i; 3289 << "window tree doesn't match at " << i;
3291 } 3290 }
3292 } 3291 }
3293 3292
3294 } // namespace test 3293 } // namespace test
3295 } // namespace aura 3294 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/window_tree_host.cc ('k') | ui/snapshot/snapshot_aura_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698