Exercise native preview clicks and publisher controls escape

This commit is contained in:
evgeny committed 2026-10-20 20:42:23 +02:00
1 parent 64064c2cbf
commit 2781208361
2 files changed
+11 -1

No files matched your search

+6 -1
View File
@@ -916,7 +916,12 @@ private slots:
QObject::disconnect(sink, nullptr, &engine, nullptr);
StreamPublishWindow controls(&engine, group); controls.show();
auto* preview = controls.findChild<QVideoWidget*>(); QVERIFY(preview);
QTRY_VERIFY(preview->videoSink()->videoFrame().isValid()); controls.close(); QVERIFY(engine.running());
QTRY_VERIFY(preview->videoSink()->videoFrame().isValid());
QSignalSpy closed(&controls, &StreamPublishWindow::closed);
controls.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&controls));
auto* sourceChoice = controls.findChild<QComboBox*>(); QVERIFY(sourceChoice); sourceChoice->setFocus();
QTest::keyClick(sourceChoice, Qt::Key_Escape);
QTRY_COMPARE(closed.count(), 1); QVERIFY(!controls.isVisible()); QVERIFY(engine.running());
uint64_t first = out.pts; unsigned audio = 0, video = 0; uint64_t latest = first, left = 0, right = 0;
auto* decoder = opus_codec_decoder_create(48000, 2); QVERIFY(decoder);
QElapsedTimer elapsed; elapsed.start();
+5
View File
@@ -13,6 +13,7 @@
#include <QSlider>
#include <QPainter>
#include <QWheelEvent>
#include <QWindow>
#ifdef HAVE_STREAM_CAPTURE
#include <QVideoWidget>
#include <QVideoSink>
@@ -513,6 +514,10 @@ private slots:
QSignalSpy manage(&grid, &StreamGridWindow::publishRequested);
QTest::mouseClick(preview, Qt::LeftButton); QTRY_COMPARE(manage.count(), 1);
QCOMPARE(manage.at(0).at(0).toULongLong(), group); QCOMPARE(grid.focusedSource(), uint64_t(0));
auto nativeWindows = preview->findChildren<QWindow*>();
DEBUG_INFO(DEBUG_CATEGORY_STREAM, "fixture local preview native_windows=%lld", (long long)nativeWindows.size());
QVERIFY(!nativeWindows.isEmpty());
QTest::mouseClick(nativeWindows.first(), Qt::LeftButton); QTRY_COMPARE(manage.count(), 2);
snapshot(true);
QPointer<StreamPlayerWindow> remote = grid.findChild<StreamPlayerWindow*>();
QVERIFY(remote); auto* video = remote->findChild<VideoRenderWidget*>(); QVERIFY(video);