KWin
Loading...
Searching...
No Matches
xinerama_test.cpp
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2024 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#include "kwin_wayland_test.h"
8
9#include "core/output.h"
10#include "wayland_server.h"
11#include "workspace.h"
12
13namespace KWin
14{
15
16static const QString s_socketName = QStringLiteral("wayland_test_kwin_xinerama-0");
17
18class XineramaTest : public QObject
19{
20 Q_OBJECT
21
22private Q_SLOTS:
23 void initTestCase();
24 void indexToOutput();
25};
26
27void XineramaTest::initTestCase()
28{
29 QSignalSpy applicationStartedSpy(kwinApp(), &Application::started);
30 QVERIFY(waylandServer()->init(s_socketName));
31 kwinApp()->start();
32 QVERIFY(applicationStartedSpy.wait());
33}
34
35void XineramaTest::indexToOutput()
36{
38 Test::OutputInfo{
39 .geometry = QRect(0, 0, 1280, 1024),
40 .scale = 1.5,
41 },
42 Test::OutputInfo{
43 .geometry = QRect(1280, 0, 1280, 1024),
44 .scale = 1.5,
45 },
46 });
47 kwinApp()->setXwaylandScale(1.5);
48
49 // Start Xwayland
51 QVERIFY(!xcb_connection_has_error(c.get()));
52
53 const auto outputs = workspace()->outputs();
54 QCOMPARE(workspace()->xineramaIndexToOutput(0), outputs.at(0));
55 QCOMPARE(workspace()->xineramaIndexToOutput(1), outputs.at(1));
56
58 QCOMPARE(workspace()->xineramaIndexToOutput(0), outputs.at(1));
59 QCOMPARE(workspace()->xineramaIndexToOutput(1), outputs.at(0));
60}
61
62} // namespace KWin
63
65#include "xinerama_test.moc"
void setOutputOrder(const QList< Output * > &order)
QList< Output * > outputs() const
Definition workspace.h:762
#define WAYLANDTEST_MAIN(TestObject)
void setOutputConfig(const QList< QRect > &geometries)
XcbConnectionPtr createX11Connection()
QList< KWayland::Client::Output * > outputs
std::unique_ptr< xcb_connection_t, XcbConnectionDeleter > XcbConnectionPtr
WaylandServer * waylandServer()
Workspace * workspace()
Definition workspace.h:830