diff options
author | Pavel Dubsky <pavel.dubsky@qt.io> | 2023-05-03 17:19:43 +0200 |
---|---|---|
committer | Pavel Dubsky <pavel.dubsky@qt.io> | 2023-05-04 12:51:31 +0200 |
commit | ceef0960d3291d53eba6ff410940f2b0c94ded17 (patch) | |
tree | 1154d89e49c0479df2ee621fd4976c60594b3135 | |
parent | 742a13f27eb8e76ef0e194ad5cf8757f8932728d (diff) | |
download | qtmultimedia-ceef0960d3291d53eba6ff410940f2b0c94ded17.tar.gz |
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 <artem.dyomin@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
-rw-r--r-- | tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
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" |