40
struct MockInputConfiguration : usc::InputConfiguration
43
MOCK_METHOD1(set_mouse_primary_button, void(int32_t));
44
MOCK_METHOD1(set_mouse_cursor_speed, void(double));
45
MOCK_METHOD1(set_mouse_scroll_speed, void(double));
46
MOCK_METHOD1(set_touchpad_primary_button, void(int32_t));
47
MOCK_METHOD1(set_touchpad_cursor_speed, void(double));
48
MOCK_METHOD1(set_touchpad_scroll_speed, void(double));
49
MOCK_METHOD1(set_two_finger_scroll, void(bool));
50
MOCK_METHOD1(set_tap_to_click, void(bool));
51
MOCK_METHOD1(set_disable_touchpad_with_mouse, void(bool));
52
MOCK_METHOD1(set_disable_touchpad_while_typing, void(bool));
55
class UnityInputDBusClient : public ut::DBusClient
58
UnityInputDBusClient(std::string const& address)
61
"com.canonical.Unity.Input",
62
"/com/canonical/Unity/Input"}
66
ut::DBusAsyncReplyString request_introspection()
68
return invoke_with_reply<ut::DBusAsyncReplyString>(
69
"org.freedesktop.DBus.Introspectable", "Introspect",
73
ut::DBusAsyncReplyVoid request(char const* requestName, int32_t value)
75
return invoke_with_reply<ut::DBusAsyncReplyVoid>(
76
unity_input_interface, requestName,
77
DBUS_TYPE_INT32, &value,
81
ut::DBusAsyncReplyVoid request_set_mouse_primary_button(int32_t button)
83
return request("setMousePrimaryButton", button);
86
ut::DBusAsyncReplyVoid request_set_touchpad_primary_button(int32_t button)
88
return request("setTouchpadPrimaryButton", button);
91
ut::DBusAsyncReplyVoid request(char const* requestName, double value)
93
return invoke_with_reply<ut::DBusAsyncReplyVoid>(
94
unity_input_interface, requestName,
95
DBUS_TYPE_DOUBLE, &value,
99
ut::DBusAsyncReplyVoid request_set_mouse_cursor_speed(double speed)
101
return request("setMouseCursorSpeed", speed);
104
ut::DBusAsyncReplyVoid request_set_mouse_scroll_speed(double speed)
106
return request("setMouseScrollSpeed", speed);
109
ut::DBusAsyncReplyVoid request_set_touchpad_cursor_speed(double speed)
111
return request("setTouchpadCursorSpeed", speed);
114
ut::DBusAsyncReplyVoid request_set_touchpad_scroll_speed(double speed)
116
return request("setTouchpadScrollSpeed", speed);
119
ut::DBusAsyncReplyVoid request(char const* requestName, bool value)
121
dbus_bool_t copied = value;
122
return invoke_with_reply<ut::DBusAsyncReplyVoid>(
123
unity_input_interface, requestName,
124
DBUS_TYPE_BOOLEAN, &copied,
128
ut::DBusAsyncReplyVoid request_set_touchpad_two_finger_scroll(bool enabled)
130
return request("setTouchpadTwoFingerScroll", enabled);
133
ut::DBusAsyncReplyVoid request_set_touchpad_tap_to_click(bool enabled)
135
return request("setTouchpadTapToClick", enabled);
138
ut::DBusAsyncReplyVoid request_set_touchpad_disable_with_mouse(bool enabled)
140
return request("setTouchpadDisableWithMouse", enabled);
143
ut::DBusAsyncReplyVoid request_set_touchpad_disable_while_typing(bool enabled)
145
return request("setTouchpadDisableWhileTyping", enabled);
148
char const* const unity_input_interface = "com.canonical.Unity.Input";
151
41
struct AUnityInputService : testing::Test
153
43
std::chrono::seconds const default_timeout{3};
156
std::shared_ptr<MockInputConfiguration> const mock_input_configuration =
157
std::make_shared<testing::NiceMock<MockInputConfiguration>>();
158
UnityInputDBusClient client{bus.address()};
46
std::shared_ptr<ut::MockInputConfiguration> const mock_input_configuration =
47
std::make_shared<testing::NiceMock<ut::MockInputConfiguration>>();
48
ut::UnityInputDBusClient client{bus.address()};
49
std::shared_ptr<usc::DBusEventLoop> const dbus_loop=
50
std::make_shared<usc::DBusEventLoop>();
51
usc::UnityInputService service{dbus_loop, bus.address(), mock_input_configuration};
159
52
std::shared_ptr<usc::DBusConnectionThread> const dbus_thread =
160
std::make_shared<usc::DBusConnectionThread>(bus.address());
161
usc::UnityInputService service{dbus_thread, mock_input_configuration};
53
std::make_shared<usc::DBusConnectionThread>(dbus_loop);