diff options
-rw-r--r-- | tests/auto/compositor/compositor/testcompositor.cpp | 4 | ||||
-rw-r--r-- | tests/auto/compositor/compositor/tst_compositor.cpp | 21 |
2 files changed, 21 insertions, 4 deletions
diff --git a/tests/auto/compositor/compositor/testcompositor.cpp b/tests/auto/compositor/compositor/testcompositor.cpp index 22ecf28cb..d5967a416 100644 --- a/tests/auto/compositor/compositor/testcompositor.cpp +++ b/tests/auto/compositor/compositor/testcompositor.cpp @@ -41,7 +41,9 @@ TestCompositor::TestCompositor(bool createInputDev) void TestCompositor::create() { - new QWaylandOutput(this, nullptr); + auto output = new QWaylandOutput(this, nullptr); + setDefaultOutput(output); + QWaylandCompositor::create(); connect(this, &QWaylandCompositor::surfaceCreated, this, &TestCompositor::onSurfaceCreated); diff --git a/tests/auto/compositor/compositor/tst_compositor.cpp b/tests/auto/compositor/compositor/tst_compositor.cpp index 0e11618aa..6c4aa1070 100644 --- a/tests/auto/compositor/compositor/tst_compositor.cpp +++ b/tests/auto/compositor/compositor/tst_compositor.cpp @@ -79,7 +79,7 @@ private slots: void mapSurface(); void mapSurfaceHiDpi(); void frameCallback(); - void removeOutput(); + void outputs(); void customSurface(); void advertisesXdgShellSupport(); @@ -622,18 +622,33 @@ void tst_WaylandCompositor::frameCallback() wl_surface_destroy(surface); } -void tst_WaylandCompositor::removeOutput() +void tst_WaylandCompositor::outputs() { TestCompositor compositor; + + QSignalSpy defaultOutputSpy(&compositor, SIGNAL(defaultOutputChanged())); + + compositor.create(); + + QSignalSpy outputAddedSpy(&compositor, SIGNAL(outputAdded(QWaylandOutput*))); + QSignalSpy outputRemovedSpy(&compositor, SIGNAL(outputRemoved(QWaylandOutput*))); + QWindow window; window.resize(800, 600); + auto output = new QWaylandOutput(&compositor, &window); + QTRY_COMPARE(outputAddedSpy.count(), 1); + + compositor.setDefaultOutput(output); + QTRY_COMPARE(defaultOutputSpy.count(), 2); - compositor.create(); MockClient client; QTRY_COMPARE(client.m_outputs.size(), 2); delete output; + QTRY_COMPARE(outputRemovedSpy.count(), 1); + QEXPECT_FAIL("", "FIXME: defaultOutputChanged() is not emitted when the default output is removed", Continue); + QTRY_COMPARE(defaultOutputSpy.count(), 3); compositor.flushClients(); QTRY_COMPARE(client.m_outputs.size(), 1); } |