summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/compositor/compositor/testcompositor.cpp4
-rw-r--r--tests/auto/compositor/compositor/tst_compositor.cpp21
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);
}