Changeset View
Changeset View
Standalone View
Standalone View
autotests/integration/shell_client_test.cpp
Show First 20 Lines • Show All 80 Lines • ▼ Show 20 Line(s) | 80 | { | |||
---|---|---|---|---|---|
81 | Test::destroyWaylandConnection(); | 81 | Test::destroyWaylandConnection(); | ||
82 | } | 82 | } | ||
83 | 83 | | |||
84 | void TestShellClient::testMapUnmapMap() | 84 | void TestShellClient::testMapUnmapMap() | ||
85 | { | 85 | { | ||
86 | // this test verifies that mapping a previously mapped window works correctly | 86 | // this test verifies that mapping a previously mapped window works correctly | ||
87 | QSignalSpy clientAddedSpy(waylandServer(), &WaylandServer::shellClientAdded); | 87 | QSignalSpy clientAddedSpy(waylandServer(), &WaylandServer::shellClientAdded); | ||
88 | QVERIFY(clientAddedSpy.isValid()); | 88 | QVERIFY(clientAddedSpy.isValid()); | ||
89 | QSignalSpy effectsWindowShownSpy(effects, &EffectsHandler::windowShown); | ||||
90 | QVERIFY(effectsWindowShownSpy.isValid()); | ||||
91 | QSignalSpy effectsWindowHiddenSpy(effects, &EffectsHandler::windowHidden); | ||||
92 | QVERIFY(effectsWindowHiddenSpy.isValid()); | ||||
89 | 93 | | |||
90 | QScopedPointer<Surface> surface(Test::createSurface()); | 94 | QScopedPointer<Surface> surface(Test::createSurface()); | ||
91 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | 95 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | ||
92 | 96 | | |||
93 | // now let's render | 97 | // now let's render | ||
94 | Test::render(surface.data(), QSize(100, 50), Qt::blue); | 98 | Test::render(surface.data(), QSize(100, 50), Qt::blue); | ||
95 | 99 | | |||
96 | QVERIFY(clientAddedSpy.isEmpty()); | 100 | QVERIFY(clientAddedSpy.isEmpty()); | ||
97 | QVERIFY(clientAddedSpy.wait()); | 101 | QVERIFY(clientAddedSpy.wait()); | ||
98 | auto client = clientAddedSpy.first().first().value<ShellClient*>(); | 102 | auto client = clientAddedSpy.first().first().value<ShellClient*>(); | ||
99 | QVERIFY(client); | 103 | QVERIFY(client); | ||
100 | QVERIFY(client->isShown(true)); | 104 | QVERIFY(client->isShown(true)); | ||
101 | QCOMPARE(client->isHiddenInternal(), false); | 105 | QCOMPARE(client->isHiddenInternal(), false); | ||
102 | QCOMPARE(client->readyForPainting(), true); | 106 | QCOMPARE(client->readyForPainting(), true); | ||
103 | QCOMPARE(workspace()->activeClient(), client); | 107 | QCOMPARE(workspace()->activeClient(), client); | ||
108 | QVERIFY(effectsWindowShownSpy.isEmpty()); | ||||
104 | 109 | | |||
105 | // now unmap | 110 | // now unmap | ||
106 | QSignalSpy hiddenSpy(client, &ShellClient::windowHidden); | 111 | QSignalSpy hiddenSpy(client, &ShellClient::windowHidden); | ||
107 | QVERIFY(hiddenSpy.isValid()); | 112 | QVERIFY(hiddenSpy.isValid()); | ||
108 | QSignalSpy windowClosedSpy(client, &ShellClient::windowClosed); | 113 | QSignalSpy windowClosedSpy(client, &ShellClient::windowClosed); | ||
109 | QVERIFY(windowClosedSpy.isValid()); | 114 | QVERIFY(windowClosedSpy.isValid()); | ||
110 | surface->attachBuffer(Buffer::Ptr()); | 115 | surface->attachBuffer(Buffer::Ptr()); | ||
111 | surface->commit(Surface::CommitFlag::None); | 116 | surface->commit(Surface::CommitFlag::None); | ||
112 | QVERIFY(hiddenSpy.wait()); | 117 | QVERIFY(hiddenSpy.wait()); | ||
113 | QCOMPARE(client->readyForPainting(), true); | 118 | QCOMPARE(client->readyForPainting(), true); | ||
114 | QCOMPARE(client->isHiddenInternal(), true); | 119 | QCOMPARE(client->isHiddenInternal(), true); | ||
115 | QVERIFY(windowClosedSpy.isEmpty()); | 120 | QVERIFY(windowClosedSpy.isEmpty()); | ||
116 | QVERIFY(!workspace()->activeClient()); | 121 | QVERIFY(!workspace()->activeClient()); | ||
122 | QCOMPARE(effectsWindowHiddenSpy.count(), 1); | ||||
123 | QCOMPARE(effectsWindowHiddenSpy.first().first().value<EffectWindow*>(), client->effectWindow()); | ||||
117 | 124 | | |||
118 | QSignalSpy windowShownSpy(client, &ShellClient::windowShown); | 125 | QSignalSpy windowShownSpy(client, &ShellClient::windowShown); | ||
119 | QVERIFY(windowShownSpy.isValid()); | 126 | QVERIFY(windowShownSpy.isValid()); | ||
120 | Test::render(surface.data(), QSize(100, 50), Qt::blue); | 127 | Test::render(surface.data(), QSize(100, 50), Qt::blue); | ||
121 | QCOMPARE(clientAddedSpy.count(), 1); | 128 | QCOMPARE(clientAddedSpy.count(), 1); | ||
122 | QVERIFY(windowShownSpy.wait()); | 129 | QVERIFY(windowShownSpy.wait()); | ||
123 | QCOMPARE(windowShownSpy.count(), 1); | 130 | QCOMPARE(windowShownSpy.count(), 1); | ||
124 | QCOMPARE(clientAddedSpy.count(), 1); | 131 | QCOMPARE(clientAddedSpy.count(), 1); | ||
132 | QCOMPARE(client->readyForPainting(), true); | ||||
133 | QCOMPARE(client->isHiddenInternal(), false); | ||||
125 | QCOMPARE(workspace()->activeClient(), client); | 134 | QCOMPARE(workspace()->activeClient(), client); | ||
135 | QCOMPARE(effectsWindowShownSpy.count(), 1); | ||||
136 | QCOMPARE(effectsWindowShownSpy.first().first().value<EffectWindow*>(), client->effectWindow()); | ||||
126 | 137 | | |||
127 | // let's unmap again | 138 | // let's unmap again | ||
128 | surface->attachBuffer(Buffer::Ptr()); | 139 | surface->attachBuffer(Buffer::Ptr()); | ||
129 | surface->commit(Surface::CommitFlag::None); | 140 | surface->commit(Surface::CommitFlag::None); | ||
130 | QVERIFY(hiddenSpy.wait()); | 141 | QVERIFY(hiddenSpy.wait()); | ||
131 | QCOMPARE(hiddenSpy.count(), 2); | 142 | QCOMPARE(hiddenSpy.count(), 2); | ||
143 | QCOMPARE(client->readyForPainting(), true); | ||||
144 | QCOMPARE(client->isHiddenInternal(), true); | ||||
132 | QVERIFY(windowClosedSpy.isEmpty()); | 145 | QVERIFY(windowClosedSpy.isEmpty()); | ||
146 | QCOMPARE(effectsWindowHiddenSpy.count(), 2); | ||||
147 | QCOMPARE(effectsWindowHiddenSpy.last().first().value<EffectWindow*>(), client->effectWindow()); | ||||
133 | 148 | | |||
134 | shellSurface.reset(); | 149 | shellSurface.reset(); | ||
135 | surface.reset(); | 150 | surface.reset(); | ||
136 | QVERIFY(windowClosedSpy.wait()); | 151 | QVERIFY(windowClosedSpy.wait()); | ||
137 | QCOMPARE(windowClosedSpy.count(), 1); | 152 | QCOMPARE(windowClosedSpy.count(), 1); | ||
153 | QCOMPARE(effectsWindowHiddenSpy.count(), 2); | ||||
138 | } | 154 | } | ||
139 | 155 | | |||
140 | void TestShellClient::testDesktopPresenceChanged() | 156 | void TestShellClient::testDesktopPresenceChanged() | ||
141 | { | 157 | { | ||
142 | // this test verifies that the desktop presence changed signals are properly emitted | 158 | // this test verifies that the desktop presence changed signals are properly emitted | ||
143 | QScopedPointer<Surface> surface(Test::createSurface()); | 159 | QScopedPointer<Surface> surface(Test::createSurface()); | ||
144 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | 160 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | ||
145 | auto c = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | 161 | auto c = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | ||
Show All 32 Lines |