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"