diff --git a/tools/chatgui/tests/test_desktop_commands.cpp b/tools/chatgui/tests/test_desktop_commands.cpp index a3ffdc2dc..72b7fe54f 100644 --- a/tools/chatgui/tests/test_desktop_commands.cpp +++ b/tools/chatgui/tests/test_desktop_commands.cpp @@ -329,6 +329,12 @@ private slots: const QString photo = directory.filePath("photo.png"); QImage image(32, 24, QImage::Format_RGB32); image.fill(Qt::green); QVERIFY(image.save(photo)); const auto logger = qScopeGuard([] { debug_disable_file_output(); }); + const auto diagnostics = qScopeGuard([&] { + if (QTest::currentTestFailed()) { + directory.setAutoRemove(false); + DEBUG_ERROR(DEBUG_CATEGORY_GENERAL, "Media geometry fixture failed; diagnostics: %s", qPrintable(log)); + } + }); auto findWindow = [](const QString& name) -> QWidget* { for (auto* widget : QApplication::topLevelWidgets()) if (widget->objectName() == name && widget->isVisible()) return widget; @@ -341,6 +347,7 @@ private slots: auto* node = window.utunNode(); if (!node || !node->isRunning()) directory.setAutoRemove(false); QVERIFY2(node && node->isRunning(), qPrintable(log)); QTRY_VERIFY(db.isOpen()); + debug_set_category_level(DEBUG_CATEGORY_GENERAL, DEBUG_LEVEL_DEBUG); QVERIFY(QMetaObject::invokeMethod(&window, "openImage", Q_ARG(QString, photo))); auto* viewer = findWindow("chatImageViewer"); QVERIFY(viewer); if (!stage) { @@ -355,6 +362,11 @@ private slots: QCOMPARE(viewer->isFullScreen(), fullscreen); } else { QCOMPARE(viewer->screen(), window.screen()); + const QRect area = window.screen()->availableGeometry(), actual = viewer->normalGeometry(); + const QMargins margins = viewer->windowHandle()->frameMargins(); + DEBUG_INFO(DEBUG_CATEGORY_GENERAL, "Media fallback: area=%d,%d %dx%d normal=%d,%d %dx%d frame=%d,%d,%d,%d state=%d", + area.x(), area.y(), area.width(), area.height(), actual.x(), actual.y(), actual.width(), actual.height(), + margins.left(), margins.top(), margins.right(), margins.bottom(), int(viewer->windowState())); QVERIFY(window.screen()->availableGeometry().contains(viewer->normalGeometry())); QVERIFY(!viewer->isFullScreen()); }