diff options
author | Liang Qi <liang.qi@qt.io> | 2018-12-22 18:53:35 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-12-22 18:53:35 +0100 |
commit | 5a6020f6efb4f09a77745614c6d1c0369bc5e365 (patch) | |
tree | ed8dec085d4f2a7ac359e5bbbb432b8449fb82fa /tests/auto/compositor | |
parent | ed03ec25de7e44d8e9a6aea359518851f5a8efa9 (diff) | |
parent | f2dc41b5babf0a7b51a1735f290540d7be695042 (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
README
src/hardwareintegration/client/xcomposite_share/xcomposite_share.pri
Change-Id: I7cbbf39916821f0f1749e3ccab3151f68f4aa1ac
Diffstat (limited to 'tests/auto/compositor')
-rw-r--r-- | tests/auto/compositor/compositor/compositor.pro | 4 | ||||
-rw-r--r-- | tests/auto/compositor/compositor/tst_compositor.cpp | 56 |
2 files changed, 55 insertions, 5 deletions
diff --git a/tests/auto/compositor/compositor/compositor.pro b/tests/auto/compositor/compositor/compositor.pro index 29443f7a9..7cf40557b 100644 --- a/tests/auto/compositor/compositor/compositor.pro +++ b/tests/auto/compositor/compositor/compositor.pro @@ -7,8 +7,8 @@ QT += core-private gui-private waylandcompositor waylandcompositor-private QMAKE_USE += wayland-client wayland-server -qtConfig(xkbcommon-evdev): \ - QMAKE_USE += xkbcommon_evdev +qtConfig(xkbcommon): \ + QMAKE_USE += xkbcommon WAYLANDCLIENTSOURCES += \ ../../../../src/3rdparty/protocol/xdg-shell-unstable-v5.xml \ diff --git a/tests/auto/compositor/compositor/tst_compositor.cpp b/tests/auto/compositor/compositor/tst_compositor.cpp index 78e01af7e..8335690f2 100644 --- a/tests/auto/compositor/compositor/tst_compositor.cpp +++ b/tests/auto/compositor/compositor/tst_compositor.cpp @@ -58,7 +58,7 @@ class tst_WaylandCompositor : public QObject private slots: void init(); void seatCapabilities(); -#if QT_CONFIG(xkbcommon_evdev) +#if QT_CONFIG(xkbcommon) void simpleKeyboard(); void keyboardKeymaps(); void keyboardLayoutSwitching(); @@ -73,11 +73,13 @@ private slots: void multipleClients(); void geometry(); void modes(); + void comparingModes(); void sizeFollowsWindow(); void mapSurface(); void mapSurfaceHiDpi(); void frameCallback(); void removeOutput(); + void customSurface(); void advertisesXdgShellSupport(); void createsXdgSurfaces(); @@ -170,7 +172,7 @@ void tst_WaylandCompositor::multipleClients() QTRY_COMPARE(compositor.surfaces.size(), 0); } -#if QT_CONFIG(xkbcommon_evdev) +#if QT_CONFIG(xkbcommon) void tst_WaylandCompositor::simpleKeyboard() { @@ -283,7 +285,7 @@ void tst_WaylandCompositor::keyboardLayoutSwitching() QTRY_COMPARE(mockKeyboard->m_lastKeyCode, 44u); } -#endif // QT_CONFIG(xkbcommon_evdev) +#endif // QT_CONFIG(xkbcommon) void tst_WaylandCompositor::keyboardGrab() { @@ -374,6 +376,28 @@ void tst_WaylandCompositor::modes() QTRY_COMPARE(client.geometry, QRect(QPoint(0, 0), QSize(1920, 1080))); } +void tst_WaylandCompositor::comparingModes() +{ + QWaylandOutputMode mode1(QSize(800, 600), 120000); + QWaylandOutputMode mode2(QSize(1024, 768), 100000); + QWaylandOutputMode mode3(QSize(1024, 768), 120000); + QWaylandOutputMode mode4(QSize(800, 600), 100000); + + QCOMPARE(mode1, mode1); + QCOMPARE(mode2, mode2); + QCOMPARE(mode3, mode3); + QCOMPARE(mode4, mode4); + + for (auto mode: {mode2, mode3, mode4}) + QVERIFY(mode1 != mode); + for (auto mode: {mode1, mode3, mode4}) + QVERIFY(mode2 != mode); + for (auto mode: {mode1, mode2, mode4}) + QVERIFY(mode3 != mode); + for (auto mode: {mode1, mode2, mode3}) + QVERIFY(mode4 != mode); +} + void tst_WaylandCompositor::sizeFollowsWindow() { TestCompositor compositor; @@ -599,6 +623,32 @@ void tst_WaylandCompositor::removeOutput() QTRY_COMPARE(client.m_outputs.size(), 1); } +class CustomSurface : public QWaylandSurface { + Q_OBJECT +public: + explicit CustomSurface() = default; +}; + +void tst_WaylandCompositor::customSurface() +{ + TestCompositor compositor; + QObject::connect(&compositor, &TestCompositor::surfaceRequested, this, [&compositor] (QWaylandClient *client, uint id, int version) { + auto *s = new CustomSurface(); + QCOMPARE(s->waylandClient(), nullptr); + s->initialize(&compositor, client, id, version); + QCOMPARE(s->waylandClient(), client->client()); + }); + QObject::connect(&compositor, &TestCompositor::surfaceCreated, this, [] (QWaylandSurface *surface) { + auto *custom = qobject_cast<CustomSurface *>(surface); + QVERIFY(custom != nullptr); + }); + compositor.create(); + + MockClient client; + wl_surface *surface = client.createSurface(); + QTRY_COMPARE(compositor.surfaces.size(), 1); +} + void tst_WaylandCompositor::seatCapabilities() { TestCompositor compositor; |