OLD | NEW |
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 <algorithm> | 5 #include <algorithm> |
6 #include <set> | 6 #include <set> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 1321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1332 Widget* widget = CreateTopLevelPlatformWidget(); | 1332 Widget* widget = CreateTopLevelPlatformWidget(); |
1333 widget->GetRootView()->AddChildView(noscroll_view); | 1333 widget->GetRootView()->AddChildView(noscroll_view); |
1334 widget->GetRootView()->AddChildView(scroll_view); | 1334 widget->GetRootView()->AddChildView(scroll_view); |
1335 | 1335 |
1336 { | 1336 { |
1337 ui::GestureEvent begin( | 1337 ui::GestureEvent begin( |
1338 5, | 1338 5, |
1339 5, | 1339 5, |
1340 0, | 1340 0, |
1341 base::TimeDelta(), | 1341 base::TimeDelta(), |
1342 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN)); | 1342 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 0, 0)); |
1343 widget->OnGestureEvent(&begin); | 1343 widget->OnGestureEvent(&begin); |
1344 ui::GestureEvent update( | 1344 ui::GestureEvent update( |
1345 25, | 1345 25, |
1346 15, | 1346 15, |
1347 0, | 1347 0, |
1348 base::TimeDelta(), | 1348 base::TimeDelta(), |
1349 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 20, 10)); | 1349 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 20, 10)); |
1350 widget->OnGestureEvent(&update); | 1350 widget->OnGestureEvent(&update); |
1351 ui::GestureEvent end(25, | 1351 ui::GestureEvent end( |
1352 15, | 1352 25, |
1353 0, | 1353 15, |
1354 base::TimeDelta(), | 1354 0, |
1355 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END)); | 1355 base::TimeDelta(), |
| 1356 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END, 0, 0)); |
1356 widget->OnGestureEvent(&end); | 1357 widget->OnGestureEvent(&end); |
1357 | 1358 |
1358 EXPECT_EQ(1, noscroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_BEGIN)); | 1359 EXPECT_EQ(1, noscroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_BEGIN)); |
1359 EXPECT_EQ(0, noscroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_UPDATE)); | 1360 EXPECT_EQ(0, noscroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_UPDATE)); |
1360 EXPECT_EQ(0, noscroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_END)); | 1361 EXPECT_EQ(0, noscroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_END)); |
1361 } | 1362 } |
1362 | 1363 |
1363 { | 1364 { |
1364 ui::GestureEvent begin( | 1365 ui::GestureEvent begin( |
1365 65, | 1366 65, |
1366 5, | 1367 5, |
1367 0, | 1368 0, |
1368 base::TimeDelta(), | 1369 base::TimeDelta(), |
1369 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN)); | 1370 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 0, 0)); |
1370 widget->OnGestureEvent(&begin); | 1371 widget->OnGestureEvent(&begin); |
1371 ui::GestureEvent update( | 1372 ui::GestureEvent update( |
1372 85, | 1373 85, |
1373 15, | 1374 15, |
1374 0, | 1375 0, |
1375 base::TimeDelta(), | 1376 base::TimeDelta(), |
1376 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 20, 10)); | 1377 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 20, 10)); |
1377 widget->OnGestureEvent(&update); | 1378 widget->OnGestureEvent(&update); |
1378 ui::GestureEvent end(85, | 1379 ui::GestureEvent end( |
1379 15, | 1380 85, |
1380 0, | 1381 15, |
1381 base::TimeDelta(), | 1382 0, |
1382 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END)); | 1383 base::TimeDelta(), |
| 1384 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END, 0, 0)); |
1383 widget->OnGestureEvent(&end); | 1385 widget->OnGestureEvent(&end); |
1384 | 1386 |
1385 EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_BEGIN)); | 1387 EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_BEGIN)); |
1386 EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_UPDATE)); | 1388 EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_UPDATE)); |
1387 EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_END)); | 1389 EXPECT_EQ(1, scroll_view->GetEventCount(ui::ET_GESTURE_SCROLL_END)); |
1388 } | 1390 } |
1389 | 1391 |
1390 widget->CloseNow(); | 1392 widget->CloseNow(); |
1391 } | 1393 } |
1392 | 1394 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1461 // the target phase. | 1463 // the target phase. |
1462 view->set_handle_mode(EventCountView::CONSUME_EVENTS); | 1464 view->set_handle_mode(EventCountView::CONSUME_EVENTS); |
1463 | 1465 |
1464 // Dispatch a ui::ET_GESTURE_TAP_DOWN and a ui::ET_GESTURE_TAP_CANCEL event. | 1466 // Dispatch a ui::ET_GESTURE_TAP_DOWN and a ui::ET_GESTURE_TAP_CANCEL event. |
1465 // The events are handled at the target phase and should not reach the | 1467 // The events are handled at the target phase and should not reach the |
1466 // post-target handler. | 1468 // post-target handler. |
1467 ui::GestureEvent tap_down(5, | 1469 ui::GestureEvent tap_down(5, |
1468 5, | 1470 5, |
1469 0, | 1471 0, |
1470 ui::EventTimeForNow(), | 1472 ui::EventTimeForNow(), |
1471 ui::GestureEventDetails(ui::ET_GESTURE_TAP_DOWN)); | 1473 ui::GestureEventDetails(ui::ET_GESTURE_TAP_DOWN, |
| 1474 0, |
| 1475 0)); |
1472 widget->OnGestureEvent(&tap_down); | 1476 widget->OnGestureEvent(&tap_down); |
1473 EXPECT_EQ(1, h1.GetEventCount(ui::ET_GESTURE_TAP_DOWN)); | 1477 EXPECT_EQ(1, h1.GetEventCount(ui::ET_GESTURE_TAP_DOWN)); |
1474 EXPECT_EQ(1, view->GetEventCount(ui::ET_GESTURE_TAP_DOWN)); | 1478 EXPECT_EQ(1, view->GetEventCount(ui::ET_GESTURE_TAP_DOWN)); |
1475 EXPECT_EQ(0, h2.GetEventCount(ui::ET_GESTURE_TAP_DOWN)); | 1479 EXPECT_EQ(0, h2.GetEventCount(ui::ET_GESTURE_TAP_DOWN)); |
1476 | 1480 |
1477 ui::GestureEvent tap_cancel( | 1481 ui::GestureEvent tap_cancel(5, |
1478 5, | 1482 5, |
1479 5, | 1483 0, |
1480 0, | 1484 ui::EventTimeForNow(), |
1481 ui::EventTimeForNow(), | 1485 ui::GestureEventDetails(ui::ET_GESTURE_TAP_CANCEL, |
1482 ui::GestureEventDetails(ui::ET_GESTURE_TAP_CANCEL)); | 1486 0, |
| 1487 0)); |
1483 widget->OnGestureEvent(&tap_cancel); | 1488 widget->OnGestureEvent(&tap_cancel); |
1484 EXPECT_EQ(1, h1.GetEventCount(ui::ET_GESTURE_TAP_CANCEL)); | 1489 EXPECT_EQ(1, h1.GetEventCount(ui::ET_GESTURE_TAP_CANCEL)); |
1485 EXPECT_EQ(1, view->GetEventCount(ui::ET_GESTURE_TAP_CANCEL)); | 1490 EXPECT_EQ(1, view->GetEventCount(ui::ET_GESTURE_TAP_CANCEL)); |
1486 EXPECT_EQ(0, h2.GetEventCount(ui::ET_GESTURE_TAP_CANCEL)); | 1491 EXPECT_EQ(0, h2.GetEventCount(ui::ET_GESTURE_TAP_CANCEL)); |
1487 | 1492 |
1488 h1.ResetCounts(); | 1493 h1.ResetCounts(); |
1489 view->ResetCounts(); | 1494 view->ResetCounts(); |
1490 h2.ResetCounts(); | 1495 h2.ResetCounts(); |
1491 | 1496 |
1492 // Dispatch a ui::ET_SCROLL event. The event is handled at the target phase | 1497 // Dispatch a ui::ET_SCROLL event. The event is handled at the target phase |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1942 gfx::Point move_location(45, 15); | 1947 gfx::Point move_location(45, 15); |
1943 ui::MouseEvent move(ui::ET_MOUSE_MOVED, move_location, move_location, 0, 0); | 1948 ui::MouseEvent move(ui::ET_MOUSE_MOVED, move_location, move_location, 0, 0); |
1944 widget->OnMouseEvent(&move); | 1949 widget->OnMouseEvent(&move); |
1945 EXPECT_EQ(view, GetMouseMoveHandler(root_view)); | 1950 EXPECT_EQ(view, GetMouseMoveHandler(root_view)); |
1946 widget->Hide(); | 1951 widget->Hide(); |
1947 EXPECT_EQ(NULL, GetMouseMoveHandler(root_view)); | 1952 EXPECT_EQ(NULL, GetMouseMoveHandler(root_view)); |
1948 | 1953 |
1949 // Check RootView::gesture_handler_. | 1954 // Check RootView::gesture_handler_. |
1950 widget->Show(); | 1955 widget->Show(); |
1951 EXPECT_EQ(NULL, GetGestureHandler(root_view)); | 1956 EXPECT_EQ(NULL, GetGestureHandler(root_view)); |
1952 ui::GestureEvent tap_down(15, | 1957 ui::GestureEvent tap_down( |
1953 15, | 1958 15, |
1954 0, | 1959 15, |
1955 base::TimeDelta(), | 1960 0, |
1956 ui::GestureEventDetails(ui::ET_GESTURE_TAP_DOWN)); | 1961 base::TimeDelta(), |
| 1962 ui::GestureEventDetails(ui::ET_GESTURE_TAP_DOWN, 0, 0)); |
1957 widget->OnGestureEvent(&tap_down); | 1963 widget->OnGestureEvent(&tap_down); |
1958 EXPECT_EQ(view, GetGestureHandler(root_view)); | 1964 EXPECT_EQ(view, GetGestureHandler(root_view)); |
1959 widget->Hide(); | 1965 widget->Hide(); |
1960 EXPECT_EQ(NULL, GetGestureHandler(root_view)); | 1966 EXPECT_EQ(NULL, GetGestureHandler(root_view)); |
1961 | 1967 |
1962 widget->Close(); | 1968 widget->Close(); |
1963 } | 1969 } |
1964 | 1970 |
1965 // Convenience to make constructing a GestureEvent simpler. | 1971 // Convenience to make constructing a GestureEvent simpler. |
1966 class GestureEventForTest : public ui::GestureEvent { | 1972 class GestureEventForTest : public ui::GestureEvent { |
1967 public: | 1973 public: |
1968 GestureEventForTest(ui::EventType type, int x, int y) | 1974 GestureEventForTest(ui::EventType type, int x, int y) |
1969 : GestureEvent(x, | 1975 : GestureEvent(x, |
1970 y, | 1976 y, |
1971 0, | 1977 0, |
1972 base::TimeDelta(), | 1978 base::TimeDelta(), |
1973 ui::GestureEventDetails(type)) {} | 1979 ui::GestureEventDetails(type, 0.0f, 0.0f)) {} |
1974 | 1980 |
1975 GestureEventForTest(ui::GestureEventDetails details, int x, int y) | 1981 GestureEventForTest(ui::GestureEventDetails details, int x, int y) |
1976 : GestureEvent(x, y, 0, base::TimeDelta(), details) {} | 1982 : GestureEvent(x, y, 0, base::TimeDelta(), details) {} |
1977 }; | 1983 }; |
1978 | 1984 |
1979 // Tests that the |gesture_handler_| member in RootView is always NULL | 1985 // Tests that the |gesture_handler_| member in RootView is always NULL |
1980 // after the dispatch of a ui::ET_GESTURE_END event corresponding to | 1986 // after the dispatch of a ui::ET_GESTURE_END event corresponding to |
1981 // the release of the final touch point on the screen and that | 1987 // the release of the final touch point on the screen and that |
1982 // ui::ET_GESTURE_END events corresponding to the removal of any other touch | 1988 // ui::ET_GESTURE_END events corresponding to the removal of any other touch |
1983 // point are never dispatched to a view. Also verifies that | 1989 // point are never dispatched to a view. Also verifies that |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2016 // should not set the gesture handler and should not be marked as handled | 2022 // should not set the gesture handler and should not be marked as handled |
2017 // because it is never dispatched. | 2023 // because it is never dispatched. |
2018 begin = GestureEventForTest(ui::ET_GESTURE_BEGIN, 15, 15); | 2024 begin = GestureEventForTest(ui::ET_GESTURE_BEGIN, 15, 15); |
2019 widget->OnGestureEvent(&begin); | 2025 widget->OnGestureEvent(&begin); |
2020 EXPECT_FALSE(begin.handled()); | 2026 EXPECT_FALSE(begin.handled()); |
2021 EXPECT_EQ(NULL, GetGestureHandler(root_view)); | 2027 EXPECT_EQ(NULL, GetGestureHandler(root_view)); |
2022 | 2028 |
2023 // If no gesture handler is set, dispatching only a ui::ET_GESTURE_BEGIN | 2029 // If no gesture handler is set, dispatching only a ui::ET_GESTURE_BEGIN |
2024 // corresponding to a second touch point should not set the gesture handler | 2030 // corresponding to a second touch point should not set the gesture handler |
2025 // and should not be marked as handled because it is never dispatched. | 2031 // and should not be marked as handled because it is never dispatched. |
2026 ui::GestureEventDetails details(ui::ET_GESTURE_END); | 2032 ui::GestureEventDetails details(ui::ET_GESTURE_END, 15, 15); |
2027 details.set_touch_points(2); | 2033 details.set_touch_points(2); |
2028 GestureEventForTest end_second_touch_point(details, 15, 15); | 2034 GestureEventForTest end_second_touch_point(details, 15, 15); |
2029 widget->OnGestureEvent(&end_second_touch_point); | 2035 widget->OnGestureEvent(&end_second_touch_point); |
2030 EXPECT_FALSE(end_second_touch_point.handled()); | 2036 EXPECT_FALSE(end_second_touch_point.handled()); |
2031 EXPECT_EQ(NULL, GetGestureHandler(root_view)); | 2037 EXPECT_EQ(NULL, GetGestureHandler(root_view)); |
2032 | 2038 |
2033 // If no gesture handler is set, dispatching only a ui::ET_GESTURE_END | 2039 // If no gesture handler is set, dispatching only a ui::ET_GESTURE_END |
2034 // event corresponding to the final touch point should not set the gesture | 2040 // event corresponding to the final touch point should not set the gesture |
2035 // handler. Furthermore, it should not be marked as handled because it was | 2041 // handler. Furthermore, it should not be marked as handled because it was |
2036 // not dispatched (GESTURE_END events are only dispatched in cases where | 2042 // not dispatched (GESTURE_END events are only dispatched in cases where |
(...skipping 1172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3209 | 3215 |
3210 EXPECT_EQ(test_rect, root_view->bounds()); | 3216 EXPECT_EQ(test_rect, root_view->bounds()); |
3211 widget->ReorderNativeViews(); | 3217 widget->ReorderNativeViews(); |
3212 EXPECT_EQ(test_rect, root_view->bounds()); | 3218 EXPECT_EQ(test_rect, root_view->bounds()); |
3213 | 3219 |
3214 widget->CloseNow(); | 3220 widget->CloseNow(); |
3215 } | 3221 } |
3216 | 3222 |
3217 } // namespace test | 3223 } // namespace test |
3218 } // namespace views | 3224 } // namespace views |
OLD | NEW |