diff --git a/autotests/taglibwritertest.cpp b/autotests/taglibwritertest.cpp --- a/autotests/taglibwritertest.cpp +++ b/autotests/taglibwritertest.cpp @@ -27,21 +27,23 @@ { QFETCH(QString, fileType); QFETCH(QString, mimeType); + QFETCH(QString, stringSuffix); QString temporaryFileName = QStringLiteral("writertest.") + fileType; QFile::copy(testFilePath("test." + fileType), testFilePath(temporaryFileName)); TagLibWriter writerPlugin{this}; QCOMPARE(writerPlugin.writeMimetypes().contains(mimeType),true); WriteData data(testFilePath(temporaryFileName), mimeType); - data.add(Property::Title, "Title1"); - data.add(Property::Artist, "Artist1"); - data.add(Property::Album, "Album1"); + + data.add(Property::Title, QString(QStringLiteral("Title1") + stringSuffix)); + data.add(Property::Artist, QString(QStringLiteral("Artist1") + stringSuffix)); + data.add(Property::Album, QString(QStringLiteral("Album1") + stringSuffix)); data.add(Property::TrackNumber, 10); data.add(Property::ReleaseYear, 1999); - data.add(Property::Genre, "Genre1"); - data.add(Property::Comment, "Comment1"); + data.add(Property::Genre, QString(QStringLiteral("Genre1") + stringSuffix)); + data.add(Property::Comment, QString(QStringLiteral("Comment1") + stringSuffix)); writerPlugin.write(data); TagLib::FileRef file(testFilePath(temporaryFileName).toUtf8().constData(), true); @@ -55,50 +57,99 @@ QString extractedGenre = t2q(tags->genre()); QString extractedComment = t2q(tags->comment()); - QCOMPARE(extractedTitle, QStringLiteral("Title1")); - QCOMPARE(extractedArtist, QStringLiteral("Artist1")); - QCOMPARE(extractedAlbum, QStringLiteral("Album1")); + QCOMPARE(extractedTitle, QString(QStringLiteral("Title1") + stringSuffix)); + QCOMPARE(extractedArtist, QString(QStringLiteral("Artist1") + stringSuffix)); + QCOMPARE(extractedAlbum, QString(QStringLiteral("Album1") + stringSuffix)); QCOMPARE(extractedTrackNumber, 10u); QCOMPARE(extractedYear, 1999u); - QCOMPARE(extractedGenre, QStringLiteral("Genre1")); - QCOMPARE(extractedComment, QStringLiteral("Comment1")); + QCOMPARE(extractedGenre, QString(QStringLiteral("Genre1") + stringSuffix)); + QCOMPARE(extractedComment, QString(QStringLiteral("Comment1") + stringSuffix)); QFile::remove(testFilePath(temporaryFileName)); } void TagLibWriterTest::testCommonData_data() { + // Add some unicode characters, use codepoints to avoid any issues with + // source encoding: "€µ" + static const QChar data[4] = { 0x20ac, 0xb5 }; + QString unicodeTestStringSuffix(data, 2); + QTest::addColumn("fileType"); QTest::addColumn("mimeType"); + QTest::addColumn("stringSuffix"); + QTest::addRow("flac") << QStringLiteral("flac") << QStringLiteral("audio/flac") + << QString() + ; + + QTest::addRow("flac_unicode") + << QStringLiteral("flac") + << QStringLiteral("audio/flac") + << unicodeTestStringSuffix ; QTest::addRow("m4a") << QStringLiteral("m4a") << QStringLiteral("audio/mp4") + << QString() + ; + + QTest::addRow("m4a_unicode") + << QStringLiteral("m4a") + << QStringLiteral("audio/mp4") + << unicodeTestStringSuffix ; QTest::addRow("mp3") << QStringLiteral("mp3") << QStringLiteral("audio/mpeg3") + << QString() + ; + + QTest::addRow("mp3_unicode") + << QStringLiteral("mp3") + << QStringLiteral("audio/mpeg3") + << unicodeTestStringSuffix ; QTest::addRow("mpc") << QStringLiteral("mpc") << QStringLiteral("audio/x-musepack") + << QString() + ; + + QTest::addRow("mpc_unicode") + << QStringLiteral("mpc") + << QStringLiteral("audio/x-musepack") + << unicodeTestStringSuffix ; QTest::addRow("ogg") << QStringLiteral("ogg") << QStringLiteral("audio/ogg") + << QString() + ; + + QTest::addRow("ogg_unicode") + << QStringLiteral("ogg") + << QStringLiteral("audio/ogg") + << unicodeTestStringSuffix ; QTest::addRow("opus") << QStringLiteral("opus") << QStringLiteral("audio/opus") + << QString() + ; + + QTest::addRow("opus_unicode") + << QStringLiteral("opus") + << QStringLiteral("audio/opus") + << QStringLiteral("€") ; }