summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Dubsky <pavel.dubsky@qt.io>2023-05-03 17:19:43 +0200
committerPavel Dubsky <pavel.dubsky@qt.io>2023-05-04 12:51:31 +0200
commitceef0960d3291d53eba6ff410940f2b0c94ded17 (patch)
tree1154d89e49c0479df2ee621fd4976c60594b3135
parent742a13f27eb8e76ef0e194ad5cf8757f8932728d (diff)
downloadqtmultimedia-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.cpp27
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"