Commit 0809a357 authored by David Edmundson's avatar David Edmundson
Browse files

Improve testWindowScaled test

Comparing a pure blue square isn't a very effective test as someone
cropping the image will still pass.

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision:
parent bc003c02
......@@ -124,12 +124,18 @@ QObject *createShellSurface(ShellSurfaceType type, KWayland::Client::Surface *su
KWayland::Client::ShellSurface *createShellSurface(KWayland::Client::Surface *surface, QObject *parent = nullptr);
KWayland::Client::XdgShellSurface *createXdgShellV5Surface(KWayland::Client::Surface *surface, QObject *parent = nullptr);
* Creates a shared memory buffer of @p size in @p color and attaches it to the @p surface.
* The @p surface gets damaged and committed, thus it's rendered.
void render(KWayland::Client::Surface *surface, const QSize &size, const QColor &color, const QImage::Format &format = QImage::Format_ARGB32);
* Creates a shared memory buffer using the supplied image @p img and attaches it to the @p surface
void render(KWayland::Client::Surface *surface, const QImage &img);
* Waits till a new ShellClient is shown and returns the created ShellClient.
* If no ShellClient gets shown during @p timeout @c null is returned.
......@@ -223,7 +223,17 @@ void SceneQPainterTest::testWindowScaled()
// now let's map the window
QVERIFY(Test::renderAndWaitForShown(, QSize(400, 600), Qt::blue));
//draw a blue square@400x600 with red rectangle@200x200 in the middle
const QSize size(400,600);
QImage img(size, QImage::Format_ARGB32);
QPainter surfacePainter(&img);
surfacePainter.fillRect(200,300,200,200, Qt::red);
//add buffer
Test::render(, img);
// which should trigger a frame
if (frameRenderedSpy.isEmpty()) {
......@@ -233,6 +243,7 @@ void SceneQPainterTest::testWindowScaled()
QPainter painter(&referenceImage);
painter.fillRect(0, 0, 200, 300, Qt::blue);
painter.fillRect(100, 150, 100, 100, Qt::red);
painter.fillRect(5, 5, 10, 10, Qt::red); //cursor
QCOMPARE(referenceImage, *scene->backend()->buffer());
......@@ -295,8 +295,13 @@ void render(Surface *surface, const QSize &size, const QColor &color, const QIma
QImage img(size, format);
render(surface, img);
void render(Surface *surface, const QImage &img)
surface->damage(QRect(QPoint(0, 0), size));
surface->damage(QRect(QPoint(0, 0), img.size()));
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment