| Index: remoting/protocol/input_event_tracker_unittest.cc
|
| diff --git a/remoting/protocol/input_event_tracker_unittest.cc b/remoting/protocol/input_event_tracker_unittest.cc
|
| index e8b5746552618ba81a594d10e9c33b645082cf46..89f7a7279fb0df14097dd45b119ecc7ca0b45600 100644
|
| --- a/remoting/protocol/input_event_tracker_unittest.cc
|
| +++ b/remoting/protocol/input_event_tracker_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "remoting/proto/event.pb.h"
|
| #include "remoting/protocol/protocol_mock_objects.h"
|
| +#include "remoting/protocol/test_event_matchers.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -16,34 +17,15 @@ using ::testing::InSequence;
|
| namespace remoting {
|
| namespace protocol {
|
|
|
| +using test::EqualsKeyEventWithCapsLock;
|
| +using test::EqualsMouseEvent;
|
| +using test::EqualsKeyEventWithoutLockStates;
|
| +
|
| namespace {
|
|
|
| static const MouseEvent::MouseButton BUTTON_LEFT = MouseEvent::BUTTON_LEFT;
|
| static const MouseEvent::MouseButton BUTTON_RIGHT = MouseEvent::BUTTON_RIGHT;
|
|
|
| -// A hardcoded value used to verify |lock_states| is preserved.
|
| -static const uint32 kTestLockStates = protocol::KeyEvent::LOCK_STATES_CAPSLOCK;
|
| -
|
| -// Verify the usb key code and the "pressed" state.
|
| -// Also verify that the event doesn't have |lock_states| set.
|
| -MATCHER_P2(EqualsUsbEventWithoutLockStates, usb_keycode, pressed, "") {
|
| - return arg.usb_keycode() == static_cast<uint32>(usb_keycode) &&
|
| - arg.pressed() == pressed &&
|
| - !arg.has_lock_states();
|
| -}
|
| -
|
| -// Verify the usb key code, the "pressed" state, and the lock states.
|
| -MATCHER_P2(EqualsUsbEvent, usb_keycode, pressed, "") {
|
| - return arg.usb_keycode() == static_cast<uint32>(usb_keycode) &&
|
| - arg.pressed() == pressed &&
|
| - arg.lock_states() == kTestLockStates;
|
| -}
|
| -
|
| -MATCHER_P4(EqualsMouseEvent, x, y, button, down, "") {
|
| - return arg.x() == x && arg.y() == y && arg.button() == button &&
|
| - arg.button_down() == down;
|
| -}
|
| -
|
| MATCHER_P2(TouchPointIdsAndTypeEqual, ids, type, "") {
|
| if (arg.event_type() != type)
|
| return false;
|
| @@ -55,24 +37,24 @@ MATCHER_P2(TouchPointIdsAndTypeEqual, ids, type, "") {
|
| return touch_ids == ids;
|
| }
|
|
|
| -static KeyEvent NewUsbEvent(uint32 usb_keycode,
|
| - bool pressed) {
|
| +static KeyEvent NewUsbEvent(uint32 usb_keycode, bool pressed) {
|
| KeyEvent event;
|
| event.set_usb_keycode(usb_keycode);
|
| event.set_pressed(pressed);
|
| // Create all key events with the hardcoded |lock_state| in this test.
|
| - event.set_lock_states(kTestLockStates);
|
| + event.set_lock_states(KeyEvent::LOCK_STATES_CAPSLOCK);
|
| return event;
|
| }
|
|
|
| -static void PressAndReleaseUsb(InputStub* input_stub,
|
| - uint32 usb_keycode) {
|
| +static void PressAndReleaseUsb(InputStub* input_stub, uint32 usb_keycode) {
|
| input_stub->InjectKeyEvent(NewUsbEvent(usb_keycode, true));
|
| input_stub->InjectKeyEvent(NewUsbEvent(usb_keycode, false));
|
| }
|
|
|
| -static MouseEvent NewMouseEvent(int x, int y,
|
| - MouseEvent::MouseButton button, bool down) {
|
| +static MouseEvent NewMouseEvent(int x,
|
| + int y,
|
| + MouseEvent::MouseButton button,
|
| + bool down) {
|
| MouseEvent event;
|
| event.set_x(x);
|
| event.set_y(y);
|
| @@ -96,15 +78,17 @@ TEST(InputEventTrackerTest, NothingToRelease) {
|
| {
|
| InSequence s;
|
|
|
| - EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(1, true)));
|
| - EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(1, false)));
|
| - EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| - EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| + EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(1, true)));
|
| + EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(1, false)));
|
| + EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(2, true)));
|
| + EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(2, false)));
|
|
|
| EXPECT_CALL(mock_stub,
|
| - InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_LEFT, true)));
|
| + InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_LEFT, true)));
|
| EXPECT_CALL(mock_stub,
|
| - InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_LEFT, false)));
|
| + InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_LEFT, false)));
|
| }
|
|
|
| PressAndReleaseUsb(&input_tracker, 1);
|
| @@ -125,27 +109,30 @@ TEST(InputEventTrackerTest, ReleaseAllKeys) {
|
| {
|
| InSequence s;
|
|
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(3, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(1, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(1, false)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| -
|
| injects += EXPECT_CALL(mock_stub,
|
| - InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_RIGHT, true)));
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(3, true)));
|
| injects += EXPECT_CALL(mock_stub,
|
| - InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_LEFT, true)));
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(1, true)));
|
| + injects += EXPECT_CALL(
|
| + mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(1, false)));
|
| injects += EXPECT_CALL(mock_stub,
|
| - InjectMouseEvent(EqualsMouseEvent(1, 1, BUTTON_LEFT, false)));
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(2, true)));
|
| + injects += EXPECT_CALL(
|
| + mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(2, false)));
|
| +
|
| + injects += EXPECT_CALL(mock_stub, InjectMouseEvent(EqualsMouseEvent(
|
| + 0, 0, BUTTON_RIGHT, true)));
|
| + injects += EXPECT_CALL(
|
| + mock_stub, InjectMouseEvent(EqualsMouseEvent(0, 0, BUTTON_LEFT, true)));
|
| + injects += EXPECT_CALL(mock_stub, InjectMouseEvent(EqualsMouseEvent(
|
| + 1, 1, BUTTON_LEFT, false)));
|
| }
|
|
|
| // The key should be released but |lock_states| should not be set.
|
| - EXPECT_CALL(mock_stub,
|
| - InjectKeyEvent(EqualsUsbEventWithoutLockStates(3, false)))
|
| - .After(injects);
|
| - EXPECT_CALL(mock_stub,
|
| - InjectMouseEvent(EqualsMouseEvent(1, 1, BUTTON_RIGHT, false)))
|
| - .After(injects);
|
| + EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsKeyEventWithoutLockStates(
|
| + 3, false))).After(injects);
|
| + EXPECT_CALL(mock_stub, InjectMouseEvent(EqualsMouseEvent(
|
| + 1, 1, BUTTON_RIGHT, false))).After(injects);
|
|
|
| input_tracker.InjectKeyEvent(NewUsbEvent(3, true));
|
| PressAndReleaseUsb(&input_tracker, 1);
|
| @@ -172,27 +159,34 @@ TEST(InputEventTrackerTest, TrackUsbKeyEvents) {
|
| {
|
| InSequence s;
|
|
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(3, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(6, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(7, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(5, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(5, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(3, true)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(6, true)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(7, true)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(5, true)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(5, true)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(2, true)));
|
| + injects += EXPECT_CALL(
|
| + mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(2, false)));
|
| }
|
|
|
| // The key should be auto released with no |lock_states|.
|
| EXPECT_CALL(mock_stub,
|
| - InjectKeyEvent(EqualsUsbEventWithoutLockStates(3, false)))
|
| + InjectKeyEvent(EqualsKeyEventWithoutLockStates(3, false)))
|
| .After(injects);
|
| EXPECT_CALL(mock_stub,
|
| - InjectKeyEvent(EqualsUsbEventWithoutLockStates(6, false)))
|
| + InjectKeyEvent(EqualsKeyEventWithoutLockStates(6, false)))
|
| .After(injects);
|
| EXPECT_CALL(mock_stub,
|
| - InjectKeyEvent(EqualsUsbEventWithoutLockStates(7, false)))
|
| + InjectKeyEvent(EqualsKeyEventWithoutLockStates(7, false)))
|
| .After(injects);
|
| EXPECT_CALL(mock_stub,
|
| - InjectKeyEvent(EqualsUsbEventWithoutLockStates(5, false)))
|
| + InjectKeyEvent(EqualsKeyEventWithoutLockStates(5, false)))
|
| .After(injects);
|
|
|
| input_tracker.InjectKeyEvent(NewUsbEvent(3, true));
|
| @@ -222,16 +216,21 @@ TEST(InputEventTrackerTest, InvalidEventsNotTracked) {
|
| {
|
| InSequence s;
|
|
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(3, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(1, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(1, false)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(3, true)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(1, true)));
|
| + injects += EXPECT_CALL(
|
| + mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(1, false)));
|
| injects += EXPECT_CALL(mock_stub, InjectKeyEvent(_)).Times(2);
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, true)));
|
| - injects += EXPECT_CALL(mock_stub, InjectKeyEvent(EqualsUsbEvent(2, false)));
|
| + injects += EXPECT_CALL(mock_stub,
|
| + InjectKeyEvent(EqualsKeyEventWithCapsLock(2, true)));
|
| + injects += EXPECT_CALL(
|
| + mock_stub, InjectKeyEvent(EqualsKeyEventWithCapsLock(2, false)));
|
| }
|
|
|
| EXPECT_CALL(mock_stub,
|
| - InjectKeyEvent(EqualsUsbEventWithoutLockStates(3, false)))
|
| + InjectKeyEvent(EqualsKeyEventWithoutLockStates(3, false)))
|
| .After(injects);
|
|
|
| input_tracker.InjectKeyEvent(NewUsbEvent(3, true));
|
|
|