From ceef0960d3291d53eba6ff410940f2b0c94ded17 Mon Sep 17 00:00:00 2001 From: Pavel Dubsky Date: Wed, 3 May 2023 17:19:43 +0200 Subject: Add test for non-ASCII characters in file name The test is supposed to check whether media file can be opened and played if its name contains non-ASCII characters. Task-number: QTBUG-112707 Pick-to: 6.5 Change-Id: I9703869039cfdb9c5f994d5403f1bbfd0d23118e Reviewed-by: Artem Dyomin Reviewed-by: Lars Knoll --- .../tst_qmediaplayerbackend.cpp | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp index 091b5e9e3..be78a4859 100644 --- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp +++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp @@ -79,6 +79,7 @@ private slots: void changeLoopsOnTheFly(); void lazyLoadVideo(); void videoSinkSignals(); + void nonAsciiFileName(); private: QUrl selectVideoFile(const QStringList& mediaCandidates); @@ -1922,6 +1923,32 @@ void tst_QMediaPlayerBackend::videoSinkSignals() QCOMPARE(videoSizeCounter, 1); } +void tst_QMediaPlayerBackend::nonAsciiFileName() +{ + QFile resourceFile(":/testdata/test.wav"); + if (!resourceFile.open(QIODeviceBase::ReadOnly)) + QSKIP("Could not open a resource file"); + + QTemporaryFile temporaryFile("äöüØøÆ中文"); + if (!temporaryFile.open()) + QSKIP("Could not open a temporary file"); + + QByteArray bytes = resourceFile.readAll(); + QDataStream stream(&temporaryFile); + stream.writeRawData(bytes.data(), bytes.length()); + + QMediaPlayer player; + + QSignalSpy errorOccurredSpy(&player, &QMediaPlayer::errorOccurred); + + player.setSource(temporaryFile.fileName()); + player.play(); + + QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia); + + QCOMPARE(errorOccurredSpy.size(), 0); +} + QTEST_MAIN(tst_QMediaPlayerBackend) #include "tst_qmediaplayerbackend.moc" -- cgit v1.2.1