4 #include "../abstracttrack.h" 10 void OverallTests::checkFlacTestfile1()
13 const auto tracks = m_fileInfo.
tracks();
14 CPPUNIT_ASSERT(tracks.size() == 1);
15 for(
const auto &track : tracks) {
18 CPPUNIT_ASSERT(track->channelCount() == 2);
19 CPPUNIT_ASSERT(track->samplingFrequency() == 44100);
20 CPPUNIT_ASSERT(track->bitsPerSample() == 16);
21 CPPUNIT_ASSERT(track->duration().minutes() == 4);
23 const auto tags = m_fileInfo.
tags();
27 CPPUNIT_ASSERT(tags.size() == 1);
30 CPPUNIT_ASSERT(tags.front()->value(
KnownField::Album).toString() ==
"Don't Go Away (Apple Lossless)");
31 CPPUNIT_ASSERT(tags.front()->value(
KnownField::Genre).toString() ==
"Alternative & Punk");
41 checkOggTestMetaData();
44 CPPUNIT_ASSERT_EQUAL(0_st, tags.size());
52 void OverallTests::checkFlacTestfile2()
55 const auto tracks = m_fileInfo.
tracks();
56 CPPUNIT_ASSERT(tracks.size() == 1);
57 for(
const auto &track : tracks) {
60 CPPUNIT_ASSERT(track->channelCount() == 2);
61 CPPUNIT_ASSERT(track->samplingFrequency() == 44100);
62 CPPUNIT_ASSERT(track->bitsPerSample() == 16);
63 CPPUNIT_ASSERT(track->duration().minutes() == 4);
65 const auto tags = m_fileInfo.
tags();
68 CPPUNIT_ASSERT(tags.size() == 1);
71 checkOggTestMetaData();
74 CPPUNIT_ASSERT_EQUAL(0_st, tags.size());
83 cerr << endl <<
"FLAC parser" << endl;
86 parseFile(TestUtilities::testFilePath(
"flac/test.flac"), &OverallTests::checkFlacTestfile1);
87 parseFile(TestUtilities::testFilePath(
"flac/test.ogg"), &OverallTests::checkFlacTestfile2);
95 void OverallTests::testFlacMaking()
101 for(m_mode = 0; m_mode != 0x2; ++m_mode) {
107 list<string> testConditions;
109 testConditions.emplace_back(
"removing tag");
111 testConditions.emplace_back(
"modifying tag");
113 cerr << endl <<
"FLAC maker - testmode " << m_mode <<
": " << joinStrings(testConditions,
", ") << endl;
117 void (
OverallTests::*modifyRoutine)(void) = (m_mode & RemoveTag) ? &OverallTests::removeAllTags : &OverallTests::setOggTestMetaData;
118 makeFile(TestUtilities::workingCopyPath(
"flac/test.flac"), modifyRoutine, &OverallTests::checkFlacTestfile1);
119 makeFile(TestUtilities::workingCopyPath(
"flac/test.ogg"), modifyRoutine, &OverallTests::checkFlacTestfile2);
void testFlacParsing()
Tests the FLAC parser via MediaFileInfo.
The OverallTests class tests reading and writing tags and parsing technical information for all suppo...