wl_cursor is no longer used to load cursors on server side so the test is irrelevant now.remotes/origin/work/mart/gestureconfig
parent
a650f0b069
commit
7734676aa1
2 changed files with 0 additions and 100 deletions
@ -1,99 +0,0 @@ |
||||
/*
|
||||
KWin - the KDE window manager |
||||
This file is part of the KDE project. |
||||
|
||||
SPDX-FileCopyrightText: 2018 Martin Flöser <mgraesslin@kde.org> |
||||
|
||||
SPDX-License-Identifier: GPL-2.0-or-later |
||||
*/ |
||||
#include "kwin_wayland_test.h" |
||||
|
||||
#include "composite.h" |
||||
#include "core/platform.h" |
||||
#include "cursor.h" |
||||
#include "effectloader.h" |
||||
#include "effects.h" |
||||
#include "wayland/display.h" |
||||
#include "wayland/output_interface.h" |
||||
#include "wayland_server.h" |
||||
#include "workspace.h" |
||||
#include "x11window.h" |
||||
|
||||
#include <KConfigGroup> |
||||
|
||||
#include <KWayland/Client/seat.h> |
||||
#include <KWayland/Client/server_decoration.h> |
||||
#include <KWayland/Client/surface.h> |
||||
|
||||
using namespace KWin; |
||||
using namespace KWayland::Client; |
||||
static const QString s_socketName = QStringLiteral("wayland_test_kwin_crash_cursor_physical_size_empty-0"); |
||||
|
||||
class DontCrashCursorPhysicalSizeEmpty : public QObject |
||||
{ |
||||
Q_OBJECT |
||||
private Q_SLOTS: |
||||
void init(); |
||||
void initTestCase(); |
||||
void cleanup(); |
||||
void testMoveCursorOverDeco(); |
||||
}; |
||||
|
||||
void DontCrashCursorPhysicalSizeEmpty::init() |
||||
{ |
||||
QVERIFY(Test::setupWaylandConnection(Test::AdditionalWaylandInterface::Decoration)); |
||||
|
||||
workspace()->setActiveOutput(QPoint(640, 512)); |
||||
KWin::Cursors::self()->mouse()->setPos(QPoint(640, 512)); |
||||
} |
||||
|
||||
void DontCrashCursorPhysicalSizeEmpty::cleanup() |
||||
{ |
||||
Test::destroyWaylandConnection(); |
||||
} |
||||
|
||||
void DontCrashCursorPhysicalSizeEmpty::initTestCase() |
||||
{ |
||||
qRegisterMetaType<KWin::Window *>(); |
||||
QSignalSpy applicationStartedSpy(kwinApp(), &Application::started); |
||||
kwinApp()->platform()->setInitialWindowSize(QSize(1280, 1024)); |
||||
QVERIFY(waylandServer()->init(s_socketName)); |
||||
QMetaObject::invokeMethod(kwinApp()->platform(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(int, 2)); |
||||
|
||||
if (!QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("icons/DMZ-White/index.theme")).isEmpty()) { |
||||
qputenv("XCURSOR_THEME", QByteArrayLiteral("DMZ-White")); |
||||
} else { |
||||
// might be vanilla-dmz (e.g. Arch, FreeBSD)
|
||||
qputenv("XCURSOR_THEME", QByteArrayLiteral("Vanilla-DMZ")); |
||||
} |
||||
qputenv("XCURSOR_SIZE", QByteArrayLiteral("0")); |
||||
|
||||
kwinApp()->start(); |
||||
QVERIFY(applicationStartedSpy.wait()); |
||||
} |
||||
|
||||
void DontCrashCursorPhysicalSizeEmpty::testMoveCursorOverDeco() |
||||
{ |
||||
// This test ensures that there is no endless recursion if the cursor theme cannot be created
|
||||
// a reason for creation failure could be physical size not existing
|
||||
// see BUG: 390314
|
||||
std::unique_ptr<KWayland::Client::Surface> surface(Test::createSurface()); |
||||
Test::waylandServerSideDecoration()->create(surface.get(), surface.get()); |
||||
std::unique_ptr<Test::XdgToplevel> shellSurface(Test::createXdgToplevelSurface(surface.get())); |
||||
|
||||
auto window = Test::renderAndWaitForShown(surface.get(), QSize(100, 50), Qt::blue); |
||||
QVERIFY(window); |
||||
QVERIFY(window->isDecorated()); |
||||
|
||||
// destroy physical size
|
||||
KWaylandServer::Display *display = waylandServer()->display(); |
||||
auto output = display->outputs().first(); |
||||
output->setPhysicalSize(QSize(0, 0)); |
||||
// and fake a cursor theme change, so that the theme gets recreated
|
||||
Q_EMIT KWin::Cursors::self()->mouse()->themeChanged(); |
||||
|
||||
KWin::Cursors::self()->mouse()->setPos(QPoint(window->frameGeometry().center().x(), window->clientPos().y() / 2)); |
||||
} |
||||
|
||||
WAYLANDTEST_MAIN(DontCrashCursorPhysicalSizeEmpty) |
||||
#include "dont_crash_cursor_physical_size_empty.moc" |
||||
Loading…
Reference in new issue