~kgunn72/mir/mir-mwc-ppa-disable-tests

« back to all changes in this revision

Viewing changes to tests/acceptance-tests/test_surfaces_with_output_id.cpp

  • Committer: Tarmac
  • Author(s): Alan Griffiths
  • Date: 2015-01-28 20:21:34 UTC
  • mfrom: (2257.1.31 mir3)
  • Revision ID: tarmac-20150128202134-dn97lf8gwk0xcqbc
shell, frontend: Provide a mir::shell::Shell customization point.

Approved by PS Jenkins bot, Kevin DuBois, Alexandros Frantzis.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright © 2013 Canonical Ltd.
 
2
 * Copyright © 2013-2015 Canonical Ltd.
3
3
 *
4
4
 * This program is free software: you can redistribute it and/or modify
5
5
 * it under the terms of the GNU General Public License version 3 as
18
18
 
19
19
#include "mir_toolkit/mir_client_library.h"
20
20
#include "mir/geometry/rectangle.h"
 
21
#include "mir/scene/session.h"
21
22
#include "mir/scene/surface.h"
22
 
#include "mir/shell/surface_coordinator_wrapper.h"
 
23
#include "mir/shell/shell_wrapper.h"
23
24
 
24
25
#include "mir_test_framework/connected_client_headless_server.h"
25
26
#include "mir_test_framework/any_surface.h"
32
33
#include <tuple>
33
34
#include <algorithm>
34
35
 
 
36
namespace mf = mir::frontend;
35
37
namespace ms = mir::scene;
36
38
namespace msh = mir::shell;
37
39
namespace mtf = mir_test_framework;
60
62
    }
61
63
};
62
64
 
63
 
class TrackingSurfaceCoordinator : public msh::SurfaceCoordinatorWrapper
 
65
class TrackingShell : public msh::ShellWrapper
64
66
{
65
67
public:
66
 
    using msh::SurfaceCoordinatorWrapper::SurfaceCoordinatorWrapper;
 
68
    using msh::ShellWrapper::ShellWrapper;
67
69
 
68
 
    std::shared_ptr<ms::Surface> add_surface(
69
 
        ms::SurfaceCreationParameters const& params,
70
 
        ms::Session* session) override
 
70
    mf::SurfaceId create_surface(
 
71
        std::shared_ptr<ms::Session> const& session,
 
72
        ms::SurfaceCreationParameters const& params) override
71
73
    {
72
 
        auto const surface = msh::SurfaceCoordinatorWrapper::add_surface(params, session);
73
 
        surfaces.push_back(surface);
 
74
        auto const surface = msh::ShellWrapper::create_surface(session, params);
 
75
        surfaces.push_back(session->surface(surface));
74
76
        return surface;
75
77
    }
76
78
 
93
95
{
94
96
    void SetUp() override
95
97
    {
96
 
        server.wrap_surface_coordinator([this]
97
 
            (std::shared_ptr<ms::SurfaceCoordinator> const& wrapped)
98
 
            ->std::shared_ptr<ms::SurfaceCoordinator>
 
98
        server.wrap_shell([this]
 
99
            (std::shared_ptr<msh::Shell> const& wrapped)
 
100
            ->std::shared_ptr<msh::Shell>
99
101
            {
100
 
                tracking_surface_coordinator = std::make_shared<TrackingSurfaceCoordinator>(wrapped);
101
 
                return tracking_surface_coordinator;
 
102
                tracking_shell = std::make_shared<TrackingShell>(wrapped);
 
103
                return tracking_shell;
102
104
            });
103
105
 
104
106
        initial_display_layout(display_rects);
105
107
        mtf::ConnectedClientHeadlessServer::SetUp();
106
 
        ASSERT_THAT(tracking_surface_coordinator, NotNull());
 
108
        ASSERT_THAT(tracking_shell, NotNull());
107
109
 
108
110
        config = mir_connection_create_display_config(connection);
109
111
        ASSERT_TRUE(config != NULL);
112
114
    void TearDown() override
113
115
    {
114
116
        mir_display_config_destroy(config);
115
 
        tracking_surface_coordinator.reset();
 
117
        tracking_shell.reset();
116
118
        mtf::ConnectedClientHeadlessServer::TearDown();
117
119
    }
118
120
 
164
166
 
165
167
    MirDisplayConfiguration* config;
166
168
 
167
 
    std::shared_ptr<TrackingSurfaceCoordinator> tracking_surface_coordinator;
 
169
    std::shared_ptr<TrackingShell> tracking_shell;
168
170
};
169
171
 
170
172
}
180
182
        surfaces.push_back(surface);
181
183
    }
182
184
 
183
 
    auto surface_rects = tracking_surface_coordinator->server_surface_rectangles();
 
185
    auto surface_rects = tracking_shell->server_surface_rectangles();
184
186
    auto sorted_display_rects = display_rects;
185
187
    std::sort(sorted_display_rects.begin(), sorted_display_rects.end(), RectangleCompare());
186
188
    std::sort(surface_rects.begin(), surface_rects.end(), RectangleCompare());
206
208
 
207
209
    }
208
210
 
209
 
    auto surface_rects = tracking_surface_coordinator->server_surface_rectangles();
 
211
    auto surface_rects = tracking_shell->server_surface_rectangles();
210
212
    auto display_rects = this->display_rects;
211
213
 
212
214
    std::sort(display_rects.begin(), display_rects.end(), RectangleCompare());