From 175b12beba7bb4d1bf150c217afffc3d88801272 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 24 Feb 2015 09:35:56 +0100 Subject: Prevent static functions of Q[Gui]Application from crashing if there is no instance. Add tests. Task-number: QTBUG-44499 Change-Id: I160b089ad3f23ab71a87519e50f8a2ef5d2a4a6f Reviewed-by: Marc Mutz --- .../kernel/qguiapplication/tst_qguiapplication.cpp | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'tests/auto/gui/kernel') diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp index 3cf7803cfb..b921e1519f 100644 --- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp @@ -77,6 +77,8 @@ private slots: void layoutDirection(); void globalShareContext(); + void staticFunctions(); + void settableStyleHints_data(); void settableStyleHints(); // Needs to run last as it changes style hints. }; @@ -966,6 +968,42 @@ void tst_QGuiApplication::globalShareContext() #endif } +// Test that static functions do not crash if there is no application instance. +void tst_QGuiApplication::staticFunctions() +{ + QGuiApplication::setApplicationDisplayName(QString()); + QGuiApplication::applicationDisplayName(); + QGuiApplication::allWindows(); + QGuiApplication::topLevelWindows(); + QGuiApplication::topLevelAt(QPoint(0, 0)); + QGuiApplication::setWindowIcon(QIcon()); + QGuiApplication::windowIcon(); + QGuiApplication::platformName(); + QGuiApplication::modalWindow(); + QGuiApplication::focusWindow(); + QGuiApplication::focusObject(); + QGuiApplication::primaryScreen(); + QGuiApplication::screens(); + QGuiApplication::overrideCursor(); + QGuiApplication::setOverrideCursor(QCursor()); + QGuiApplication::changeOverrideCursor(QCursor()); + QGuiApplication::restoreOverrideCursor(); + QGuiApplication::keyboardModifiers(); + QGuiApplication::queryKeyboardModifiers(); + QGuiApplication::mouseButtons(); + QGuiApplication::setLayoutDirection(Qt::LeftToRight); + QGuiApplication::layoutDirection(); + QGuiApplication::styleHints(); + QGuiApplication::setDesktopSettingsAware(true); + QGuiApplication::desktopSettingsAware(); + QGuiApplication::inputMethod(); + QGuiApplication::platformNativeInterface(); + QGuiApplication::platformFunction(QByteArrayLiteral("bla")); + QGuiApplication::setQuitOnLastWindowClosed(true); + QGuiApplication::quitOnLastWindowClosed(); + QGuiApplication::applicationState(); +} + void tst_QGuiApplication::settableStyleHints_data() { QTest::addColumn("appInstance"); -- cgit v1.2.3