~kdub/mir/privatize-get-buffer-package

« back to all changes in this revision

Viewing changes to tests/integration-tests/input/test_single_seat_setup.cpp

  • Committer: Cemil Azizoglu
  • Date: 2017-02-01 18:11:34 UTC
  • mfrom: (3919.1.83 development-branch)
  • Revision ID: cemil.azizoglu@canonical.com-20170201181134-dtvn996bdt2442ri
merge lp:mir, fix conflict

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
#include "src/server/input/default_input_device_hub.h"
20
20
#include "src/server/input/basic_seat.h"
 
21
#include "src/server/input/config_changer.h"
 
22
#include "src/server/scene/broadcasting_session_event_sink.h"
21
23
 
22
24
#include "mir/test/doubles/mock_input_device.h"
23
25
#include "mir/test/doubles/mock_input_device_observer.h"
25
27
#include "mir/test/doubles/mock_input_region.h"
26
28
#include "mir/test/doubles/mock_touch_visualizer.h"
27
29
#include "mir/test/doubles/mock_cursor_listener.h"
28
 
#include "mir/test/doubles/mock_event_sink.h"
 
30
#include "mir/test/doubles/mock_input_manager.h"
29
31
#include "mir/test/doubles/mock_seat_report.h"
30
32
#include "mir/test/doubles/mock_server_status_listener.h"
 
33
#include "mir/test/doubles/mock_scene_session.h"
 
34
#include "mir/test/doubles/stub_session_container.h"
31
35
#include "mir/test/doubles/triggered_main_loop.h"
32
36
#include "mir/test/event_matchers.h"
33
37
#include "mir/test/doubles/advanceable_clock.h"
53
57
namespace mt = mir::test;
54
58
namespace mtd = mt::doubles;
55
59
namespace mi = mir::input;
 
60
namespace ms = mir::scene;
56
61
namespace geom = mir::geometry;
57
62
using namespace std::literals::chrono_literals;
58
63
using namespace ::testing;
79
84
    mtd::TriggeredMainLoop observer_loop;
80
85
    NiceMock<mtd::MockInputDispatcher> mock_dispatcher;
81
86
    NiceMock<mtd::MockInputRegion> mock_region;
82
 
    NiceMock<mtd::MockEventSink> mock_sink;
83
87
    std::shared_ptr<mir::cookie::Authority> cookie_authority = mir::cookie::Authority::create();
84
88
    NiceMock<mtd::MockCursorListener> mock_cursor_listener;
85
89
    NiceMock<mtd::MockTouchVisualizer> mock_visualizer;
88
92
    mi::receiver::XKBMapper key_mapper;
89
93
    mir::dispatch::MultiplexingDispatchable multiplexer;
90
94
    mtd::AdvanceableClock clock;
 
95
    mtd::MockInputManager mock_input_manager;
 
96
    mtd::StubSessionContainer stub_session_container;
 
97
    ms::BroadcastingSessionEventSink session_event_sink;
91
98
    mi::BasicSeat seat{
92
99
        mt::fake_shared(mock_dispatcher),mt::fake_shared(mock_visualizer), mt::fake_shared(mock_cursor_listener),
93
100
        mt::fake_shared(mock_region), mt::fake_shared(key_mapper), mt::fake_shared(clock), mt::fake_shared(mock_seat_observer)};
94
101
    mi::DefaultInputDeviceHub hub{
95
 
        mt::fake_shared(mock_sink), mt::fake_shared(seat), mt::fake_shared(multiplexer), mt::fake_shared(observer_loop),
 
102
        mt::fake_shared(seat), mt::fake_shared(multiplexer), mt::fake_shared(observer_loop),
96
103
        cookie_authority, mt::fake_shared(key_mapper), mt::fake_shared(mock_status_listener)};
97
104
    NiceMock<mtd::MockInputDeviceObserver> mock_observer;
 
105
    mi::ConfigChanger changer{
 
106
        mt::fake_shared(mock_input_manager),
 
107
            mt::fake_shared(hub),
 
108
            mt::fake_shared(stub_session_container),
 
109
            mt::fake_shared(session_event_sink)
 
110
    };
98
111
 
99
112
    mi::DeviceCapabilities const keyboard_caps = mi::DeviceCapability::keyboard | mi::DeviceCapability::alpha_numeric;
100
113
    mi::DeviceCapabilities const touchpad_caps = mi::DeviceCapability::touchpad | mi::DeviceCapability::pointer;
472
485
    mouse_sink_1->handle_input(*motion_4);
473
486
}
474
487
 
475
 
TEST_F(SingleSeatInputDeviceHubSetup, input_device_changes_sent_to_sink)
 
488
TEST_F(SingleSeatInputDeviceHubSetup, input_device_changes_sent_to_session)
476
489
{
477
 
    EXPECT_CALL(mock_sink, handle_input_config_change(UnorderedElementsAre(DeviceMatches(device.get_device_info()))));
 
490
    NiceMock<mtd::MockSceneSession> session;
 
491
    stub_session_container.insert_session(mt::fake_shared(session));
 
492
 
 
493
    EXPECT_CALL(session, send_input_config(UnorderedElementsAre(DeviceMatches(device.get_device_info()))));
478
494
    hub.add_device(mt::fake_shared(device));
479
495
    observer_loop.trigger_server_actions();
480
496
}
481
497
 
482
 
TEST_F(SingleSeatInputDeviceHubSetup, input_device_changes_sent_to_sink_multiple_devices)
 
498
TEST_F(SingleSeatInputDeviceHubSetup, input_device_changes_sent_to_session_multiple_devices)
483
499
{
 
500
    NiceMock<mtd::MockSceneSession> session;
 
501
    stub_session_container.insert_session(mt::fake_shared(session));
 
502
 
484
503
    hub.add_device(mt::fake_shared(device));
485
504
    observer_loop.trigger_server_actions();
486
505
 
487
 
    EXPECT_CALL(mock_sink,
488
 
                handle_input_config_change(UnorderedElementsAre(DeviceMatches(device.get_device_info()),
489
 
                                                                DeviceMatches(another_device.get_device_info()))));
 
506
    EXPECT_CALL(session,
 
507
                send_input_config(UnorderedElementsAre(DeviceMatches(device.get_device_info()),
 
508
                                                       DeviceMatches(another_device.get_device_info()))));
490
509
    hub.add_device(mt::fake_shared(another_device));
491
510
    observer_loop.trigger_server_actions();
492
511
}
497
516
    hub.add_device(mt::fake_shared(another_device));
498
517
    observer_loop.trigger_server_actions();
499
518
 
500
 
    EXPECT_CALL(mock_sink,
501
 
                handle_input_config_change(UnorderedElementsAre(DeviceMatches(another_device.get_device_info()))));
 
519
    NiceMock<mtd::MockSceneSession> session;
 
520
    stub_session_container.insert_session(mt::fake_shared(session));
 
521
    EXPECT_CALL(session,
 
522
                send_input_config(UnorderedElementsAre(DeviceMatches(another_device.get_device_info()))));
502
523
    hub.remove_device(mt::fake_shared(device));
503
524
    observer_loop.trigger_server_actions();
504
525
}