| 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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
| 7 #include "ui/events/event.h" | 7 #include "ui/events/event.h" |
| 8 #include "ui/events/event_utils.h" | 8 #include "ui/events/event_utils.h" |
| 9 #include "ui/events/keycodes/dom3/dom_code.h" | 9 #include "ui/events/keycodes/dom3/dom_code.h" |
| 10 #include "ui/events/keycodes/dom4/keycode_converter.h" | 10 #include "ui/events/keycodes/dom4/keycode_converter.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 0); | 72 0); |
| 73 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, | 73 MouseEvent mouse_ev2(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), 0, |
| 74 0); | 74 0); |
| 75 LocatedEventTestApi test_ev1(&mouse_ev1); | 75 LocatedEventTestApi test_ev1(&mouse_ev1); |
| 76 LocatedEventTestApi test_ev2(&mouse_ev2); | 76 LocatedEventTestApi test_ev2(&mouse_ev2); |
| 77 | 77 |
| 78 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); | 78 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); |
| 79 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); | 79 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); |
| 80 base::TimeDelta later = start + base::TimeDelta::FromMilliseconds(1000); | 80 base::TimeDelta later = start + base::TimeDelta::FromMilliseconds(1000); |
| 81 | 81 |
| 82 // Same event. |
| 83 test_ev1.set_location(gfx::Point(0, 0)); |
| 84 test_ev2.set_location(gfx::Point(1, 0)); |
| 85 test_ev1.set_time_stamp(start); |
| 86 test_ev2.set_time_stamp(start); |
| 87 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2)); |
| 88 MouseEvent mouse_ev3(mouse_ev1); |
| 89 EXPECT_FALSE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev3)); |
| 90 |
| 82 // Close point. | 91 // Close point. |
| 83 test_ev1.set_location(gfx::Point(0, 0)); | 92 test_ev1.set_location(gfx::Point(0, 0)); |
| 84 test_ev2.set_location(gfx::Point(1, 0)); | 93 test_ev2.set_location(gfx::Point(1, 0)); |
| 85 test_ev1.set_time_stamp(start); | 94 test_ev1.set_time_stamp(start); |
| 86 test_ev2.set_time_stamp(soon); | 95 test_ev2.set_time_stamp(soon); |
| 87 EXPECT_TRUE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2)); | 96 EXPECT_TRUE(MouseEvent::IsRepeatedClickEvent(mouse_ev1, mouse_ev2)); |
| 88 | 97 |
| 89 // Too far. | 98 // Too far. |
| 90 test_ev1.set_location(gfx::Point(0, 0)); | 99 test_ev1.set_location(gfx::Point(0, 0)); |
| 91 test_ev2.set_location(gfx::Point(10, 0)); | 100 test_ev2.set_location(gfx::Point(10, 0)); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 103 | 112 |
| 104 // Tests that an event only increases the click count and gets marked as a | 113 // Tests that an event only increases the click count and gets marked as a |
| 105 // double click if a release event was seen for the previous click. This | 114 // double click if a release event was seen for the previous click. This |
| 106 // prevents the same PRESSED event from being processed twice: | 115 // prevents the same PRESSED event from being processed twice: |
| 107 // http://crbug.com/389162 | 116 // http://crbug.com/389162 |
| 108 TEST(EventTest, DoubleClickRequiresRelease) { | 117 TEST(EventTest, DoubleClickRequiresRelease) { |
| 109 const gfx::Point origin1(0, 0); | 118 const gfx::Point origin1(0, 0); |
| 110 const gfx::Point origin2(100, 0); | 119 const gfx::Point origin2(100, 0); |
| 111 scoped_ptr<MouseEvent> ev; | 120 scoped_ptr<MouseEvent> ev; |
| 112 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); | 121 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); |
| 122 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); |
| 113 | 123 |
| 114 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), | 124 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), |
| 115 0, 0)); | 125 0, 0)); |
| 116 ev->set_time_stamp(start); | 126 ev->set_time_stamp(start); |
| 117 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 127 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 118 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), | 128 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin1, origin1, EventTimeForNow(), |
| 119 0, 0)); | 129 0, 0)); |
| 120 ev->set_time_stamp(start); | 130 ev->set_time_stamp(start); |
| 121 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 131 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 122 | 132 |
| 123 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), | 133 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), |
| 124 0, 0)); | 134 0, 0)); |
| 125 ev->set_time_stamp(start); | 135 ev->set_time_stamp(start); |
| 126 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 136 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 127 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, | 137 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, |
| 128 EventTimeForNow(), 0, 0)); | 138 EventTimeForNow(), 0, 0)); |
| 129 ev->set_time_stamp(start); | 139 ev->set_time_stamp(start); |
| 130 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 140 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 131 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), | 141 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin2, origin2, EventTimeForNow(), |
| 132 0, 0)); | 142 0, 0)); |
| 133 ev->set_time_stamp(start); | 143 ev->set_time_stamp(soon); |
| 134 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); | 144 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); |
| 135 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, | 145 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin2, origin2, |
| 136 EventTimeForNow(), 0, 0)); | 146 EventTimeForNow(), 0, 0)); |
| 137 ev->set_time_stamp(start); | 147 ev->set_time_stamp(soon); |
| 138 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); | 148 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); |
| 139 MouseEvent::ResetLastClickForTest(); | 149 MouseEvent::ResetLastClickForTest(); |
| 140 } | 150 } |
| 141 | 151 |
| 142 // Tests that clicking right and then left clicking does not generate a double | 152 // Tests that clicking right and then left clicking does not generate a double |
| 143 // click. | 153 // click. |
| 144 TEST(EventTest, SingleClickRightLeft) { | 154 TEST(EventTest, SingleClickRightLeft) { |
| 145 const gfx::Point origin(0, 0); | 155 const gfx::Point origin(0, 0); |
| 146 scoped_ptr<MouseEvent> ev; | 156 scoped_ptr<MouseEvent> ev; |
| 147 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); | 157 base::TimeDelta start = base::TimeDelta::FromMilliseconds(0); |
| 158 base::TimeDelta soon = start + base::TimeDelta::FromMilliseconds(1); |
| 148 | 159 |
| 149 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), | 160 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), |
| 150 ui::EF_RIGHT_MOUSE_BUTTON, | 161 ui::EF_RIGHT_MOUSE_BUTTON, |
| 151 ui::EF_RIGHT_MOUSE_BUTTON)); | 162 ui::EF_RIGHT_MOUSE_BUTTON)); |
| 152 ev->set_time_stamp(start); | 163 ev->set_time_stamp(start); |
| 153 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 164 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 154 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), | 165 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), |
| 155 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 166 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 156 ev->set_time_stamp(start); | 167 ev->set_time_stamp(start); |
| 157 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 168 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 158 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(), | 169 ev.reset(new MouseEvent(ET_MOUSE_RELEASED, origin, origin, EventTimeForNow(), |
| 159 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 170 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 160 ev->set_time_stamp(start); | 171 ev->set_time_stamp(start); |
| 161 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); | 172 EXPECT_EQ(1, MouseEvent::GetRepeatCount(*ev)); |
| 162 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), | 173 ev.reset(new MouseEvent(ET_MOUSE_PRESSED, origin, origin, EventTimeForNow(), |
| 163 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); | 174 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON)); |
| 164 ev->set_time_stamp(start); | 175 ev->set_time_stamp(soon); |
| 165 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); | 176 EXPECT_EQ(2, MouseEvent::GetRepeatCount(*ev)); |
| 166 MouseEvent::ResetLastClickForTest(); | 177 MouseEvent::ResetLastClickForTest(); |
| 167 } | 178 } |
| 168 | 179 |
| 169 TEST(EventTest, KeyEvent) { | 180 TEST(EventTest, KeyEvent) { |
| 170 static const struct { | 181 static const struct { |
| 171 KeyboardCode key_code; | 182 KeyboardCode key_code; |
| 172 int flags; | 183 int flags; |
| 173 uint16 character; | 184 uint16 character; |
| 174 } kTestData[] = { | 185 } kTestData[] = { |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 | 599 |
| 589 { | 600 { |
| 590 const float angle_too_big = 400; | 601 const float angle_too_big = 400; |
| 591 TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, | 602 TouchEvent event(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), 0, 0, time, |
| 592 radius_x, radius_y, angle_too_big, 0); | 603 radius_x, radius_y, angle_too_big, 0); |
| 593 EXPECT_FLOAT_EQ(400 - 360, event.rotation_angle()); | 604 EXPECT_FLOAT_EQ(400 - 360, event.rotation_angle()); |
| 594 } | 605 } |
| 595 } | 606 } |
| 596 | 607 |
| 597 } // namespace ui | 608 } // namespace ui |
| OLD | NEW |