82
82
std::shared_ptr<mir::cookie::Authority> cookie_authority = mir::cookie::Authority::create();
83
83
mir::dispatch::MultiplexingDispatchable multiplexer;
84
84
NiceMock<mtd::MockInputSeat> mock_seat;
85
NiceMock<mtd::MockEventSink> mock_sink;
86
85
NiceMock<mtd::MockKeyMapper> mock_key_mapper;
87
86
NiceMock<mtd::MockServerStatusListener> mock_server_status_listener;
88
mi::DefaultInputDeviceHub hub{mt::fake_shared(mock_sink), mt::fake_shared(mock_seat), mt::fake_shared(multiplexer),
87
mi::DefaultInputDeviceHub hub{mt::fake_shared(mock_seat), mt::fake_shared(multiplexer),
89
88
mt::fake_shared(observer_loop), cookie_authority, mt::fake_shared(mock_key_mapper), mt::fake_shared(mock_server_status_listener)};
90
89
NiceMock<mtd::MockInputDeviceObserver> mock_observer;
91
90
NiceMock<mtd::MockInputDevice> device{"device","dev-1", mi::DeviceCapability::unknown};
236
235
observer_loop.trigger_server_actions();
238
TEST_F(InputDeviceHubTest, when_pointer_configuration_is_applied_successfully_observer_is_triggerd)
240
std::shared_ptr<mi::Device> dev_ptr;
241
MirPointerConfig pointer_conf;
243
ON_CALL(mock_observer, device_added(WithName("mouse"))).WillByDefault(SaveArg<0>(&dev_ptr));
245
hub.add_device(mt::fake_shared(mouse));
246
hub.add_observer(mt::fake_shared(mock_observer));
247
observer_loop.trigger_server_actions();
249
EXPECT_CALL(mock_observer, device_changed(WithName("mouse")));
250
EXPECT_CALL(mock_observer, changes_complete());
252
dev_ptr->apply_pointer_configuration(pointer_conf);
253
observer_loop.trigger_server_actions();
256
TEST_F(InputDeviceHubTest, when_tpd_configuration_is_applied_successfully_observer_is_triggerd)
258
std::shared_ptr<mi::Device> dev_ptr;
259
MirTouchpadConfig tpd_conf;
261
ON_CALL(mock_observer, device_added(WithName("tpd"))).WillByDefault(SaveArg<0>(&dev_ptr));
263
hub.add_device(mt::fake_shared(touchpad));
264
hub.add_observer(mt::fake_shared(mock_observer));
265
observer_loop.trigger_server_actions();
267
EXPECT_CALL(mock_observer, device_changed(WithName("tpd")));
268
EXPECT_CALL(mock_observer, changes_complete());
270
dev_ptr->apply_touchpad_configuration(tpd_conf);
271
observer_loop.trigger_server_actions();
274
TEST_F(InputDeviceHubTest, when_configuration_attempt_fails_observer_is_not_triggerd)
276
std::shared_ptr<mi::Device> dev_ptr;
277
MirTouchpadConfig tpd_conf;
279
ON_CALL(mock_observer, device_added(WithName("mouse"))).WillByDefault(SaveArg<0>(&dev_ptr));
281
hub.add_device(mt::fake_shared(mouse));
282
hub.add_observer(mt::fake_shared(mock_observer));
283
observer_loop.trigger_server_actions();
285
EXPECT_CALL(mock_observer, device_changed(WithName("mouse"))).Times(0);
286
EXPECT_CALL(mock_observer, changes_complete()).Times(0);
288
try {dev_ptr->apply_touchpad_configuration(tpd_conf); } catch (...) {}
289
observer_loop.trigger_server_actions();
290
::testing::Mock::VerifyAndClearExpectations(&mock_observer);