File indexing completed on 2024-04-28 04:48:44
0001 /* 0002 SPDX-FileCopyrightText: 2019 (c) Alexander Stippich <a.stippich@gmx.net> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #include "filescanner.h" 0008 #include "filewriter.h" 0009 #include "config-upnp-qt.h" 0010 0011 #include <QObject> 0012 #include <QUrl> 0013 #include <QFile> 0014 0015 #include <QTest> 0016 0017 class FileWriterTest: public QObject 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 0023 explicit FileWriterTest(QObject *aParent = nullptr) : QObject(aParent) 0024 { 0025 } 0026 0027 private Q_SLOTS: 0028 0029 void initTestCase() 0030 { 0031 0032 } 0033 0034 void testFileAllMetaDataWrite() 0035 { 0036 const auto testFileName = QStringLiteral("writerTest.ogg"); 0037 const auto testFileUrl = QUrl::fromLocalFile(testFileName); 0038 QFile::copy(QStringLiteral(LOCAL_FILE_TESTS_SAMPLE_FILES_PATH) + QStringLiteral("/music/test.ogg"), testFileName); 0039 0040 FileWriter fileWriter; 0041 FileScanner fileScanner; 0042 auto scannedTrackBefore = fileScanner.scanOneFile(testFileUrl); 0043 QCOMPARE(scannedTrackBefore.title(), QStringLiteral("Title")); 0044 QCOMPARE(scannedTrackBefore.genre(), QStringLiteral("Genre")); 0045 QCOMPARE(scannedTrackBefore.album(), QStringLiteral("Test")); 0046 QCOMPARE(scannedTrackBefore.artist(), QStringLiteral("Artist")); 0047 QCOMPARE(scannedTrackBefore.year(), 2015); 0048 0049 fileWriter.writeAllMetaDataToFile(testFileUrl, {{DataTypes::AlbumRole, QStringLiteral("testAlbum")}, 0050 {DataTypes::GenreRole, QStringLiteral("testGenre")}, 0051 {DataTypes::YearRole, 1999}, 0052 {DataTypes::TitleRole, QStringLiteral("testTitle")}, 0053 {DataTypes::ArtistRole, QStringLiteral("testArtist")}}); 0054 auto scannedTrackAfter = fileScanner.scanOneFile(testFileUrl); 0055 QCOMPARE(scannedTrackAfter.title(), QStringLiteral("testTitle")); 0056 QCOMPARE(scannedTrackAfter.genre(), QStringLiteral("testGenre")); 0057 QCOMPARE(scannedTrackAfter.album(), QStringLiteral("testAlbum")); 0058 QCOMPARE(scannedTrackAfter.artist(), QStringLiteral("testArtist")); 0059 QCOMPARE(scannedTrackAfter.year(), 1999); 0060 0061 QFile::remove(testFileName); 0062 } 0063 0064 void testFileSingleMetaDataWrite() 0065 { 0066 const auto testFileName = QStringLiteral("writerTest.ogg"); 0067 const auto testFileUrl = QUrl::fromLocalFile(testFileName); 0068 QFile::copy(QStringLiteral(LOCAL_FILE_TESTS_SAMPLE_FILES_PATH) + QStringLiteral("/music/test.ogg"), testFileName); 0069 0070 FileWriter fileWriter; 0071 FileScanner fileScanner; 0072 auto scannedTrackBefore = fileScanner.scanOneFile(testFileUrl); 0073 QCOMPARE(scannedTrackBefore.title(), QStringLiteral("Title")); 0074 QCOMPARE(scannedTrackBefore.genre(), QStringLiteral("Genre")); 0075 QCOMPARE(scannedTrackBefore.album(), QStringLiteral("Test")); 0076 QCOMPARE(scannedTrackBefore.artist(), QStringLiteral("Artist")); 0077 QCOMPARE(scannedTrackBefore.year(), 2015); 0078 0079 fileWriter.writeSingleMetaDataToFile(testFileUrl, DataTypes::AlbumRole, QStringLiteral("testAlbum")); 0080 auto scannedTrackAfter = fileScanner.scanOneFile(testFileUrl); 0081 QCOMPARE(scannedTrackAfter.title(), QStringLiteral("Title")); 0082 QCOMPARE(scannedTrackAfter.genre(), QStringLiteral("Genre")); 0083 QCOMPARE(scannedTrackAfter.album(), QStringLiteral("testAlbum")); 0084 QCOMPARE(scannedTrackAfter.artist(), QStringLiteral("Artist")); 0085 QCOMPARE(scannedTrackAfter.year(), 2015); 0086 0087 QFile::remove(testFileName); 0088 } 0089 }; 0090 0091 QTEST_GUILESS_MAIN(FileWriterTest) 0092 0093 0094 #include "filewritertest.moc"