Chromium Code Reviews| Index: content/browser/renderer_host/input/mouse_wheel_rails_filter_unittest_mac.cc |
| diff --git a/content/browser/renderer_host/input/mouse_wheel_rails_filter_unittest_mac.cc b/content/browser/renderer_host/input/mouse_wheel_rails_filter_unittest_mac.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7ef53b2e15cdbbf3ad863b6b9e18115d238afedc |
| --- /dev/null |
| +++ b/content/browser/renderer_host/input/mouse_wheel_rails_filter_unittest_mac.cc |
| @@ -0,0 +1,65 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/memory/scoped_ptr.h" |
| +#include "content/browser/renderer_host/input/mouse_wheel_rails_filter_mac.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +using blink::WebInputEvent; |
| +using blink::WebMouseWheelEvent; |
| + |
| +namespace content { |
| +namespace { |
| + |
| +WebMouseWheelEvent MakeEvent(WebMouseWheelEvent::Phase phase, |
| + float delta_x, |
| + float delta_y) { |
| + WebMouseWheelEvent event; |
| + event.phase = phase; |
| + event.deltaX = delta_x; |
| + event.deltaY = delta_y; |
| + return event; |
| +} |
| + |
| +TEST(MouseWheelRailsFilterMacTest, Functionality) { |
| + WebInputEvent::RailsMode mode; |
| + scoped_ptr<MouseWheelRailsFilterMac> filter(new MouseWheelRailsFilterMac); |
|
tdresser
2015/03/19 13:03:41
Can't this just be stack allocated?
ccameron
2015/03/19 19:33:14
Yup, it can. Habit... done.
|
| + |
| + // Start with a mostly-horizontal event and see that it is locked |
| + // horizontally and continues to be locked. |
| + mode = |
| + filter->UpdateRailsMode(MakeEvent(WebMouseWheelEvent::PhaseBegan, 2, 1)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeHorizontal); |
| + mode = filter->UpdateRailsMode( |
| + MakeEvent(WebMouseWheelEvent::PhaseChanged, 2, 2)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeHorizontal); |
| + mode = filter->UpdateRailsMode( |
| + MakeEvent(WebMouseWheelEvent::PhaseChanged, 10, -4)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeHorizontal); |
| + |
| + // Change from horizontal to vertical and back. |
| + mode = |
| + filter->UpdateRailsMode(MakeEvent(WebMouseWheelEvent::PhaseBegan, 4, 1)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeHorizontal); |
| + mode = filter->UpdateRailsMode( |
| + MakeEvent(WebMouseWheelEvent::PhaseChanged, 3, 4)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeHorizontal); |
| + mode = filter->UpdateRailsMode( |
| + MakeEvent(WebMouseWheelEvent::PhaseChanged, 1, 4)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeVertical); |
| + mode = filter->UpdateRailsMode( |
| + MakeEvent(WebMouseWheelEvent::PhaseChanged, 10, 0)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeHorizontal); |
| + |
| + // Make sure zeroes don't break things. |
| + mode = filter->UpdateRailsMode( |
| + MakeEvent(WebMouseWheelEvent::PhaseChanged, 0, 0)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeFree); |
| + mode = |
| + filter->UpdateRailsMode(MakeEvent(WebMouseWheelEvent::PhaseBegan, 0, 0)); |
| + EXPECT_EQ(mode, WebInputEvent::RailsModeFree); |
| +} |
| + |
| +} // namespace |
| +} // namespace content |