3 #include "../mediafileinfo.h" 4 #include "../abstracttrack.h" 7 #include <c++utilities/io/catchiofailure.h> 8 #include <c++utilities/tests/testutils.h> 11 #include <cppunit/TestFixture.h> 12 #include <cppunit/extensions/HelperMacros.h> 17 using namespace Media;
29 CPPUNIT_TEST(testInitialStatus);
30 CPPUNIT_TEST(testFileSystemMethods);
31 CPPUNIT_TEST(testParsingUnsupportedFile);
32 CPPUNIT_TEST(testFullParseAndFurtherProperties);
33 CPPUNIT_TEST_SUITE_END();
39 void testInitialStatus();
40 void testFileSystemMethods();
41 void testParsingUnsupportedFile();
42 void testPartialParsingAndTagCreationOfMp4File();
44 void testFullParseAndFurtherProperties();
76 CPPUNIT_ASSERT_EQUAL(
"unsupported.bin"s, file.
fileName());
77 CPPUNIT_ASSERT_EQUAL(
"unsupported"s, file.
fileName(
true));
79 CPPUNIT_ASSERT_EQUAL(
".bin"s, file.
extension());
80 CPPUNIT_ASSERT_EQUAL(static_cast<uint64>(0), file.
size());
83 CPPUNIT_ASSERT(file.
isOpen());
85 CPPUNIT_ASSERT_EQUAL(static_cast<uint64>(41), file.
size());
100 CPPUNIT_ASSERT_EQUAL(ContainerFormat::Unknown, file.
containerFormat());
106 MediaFileInfo file(testFilePath(
"mtx-test-data/aac/he-aacv2-ps.m4a"));
114 CPPUNIT_FAIL(
"expected std::ios_base::failure because file has been closed");
127 CPPUNIT_ASSERT_EQUAL(0_st, file.
trackCount());
131 "Parsing attachments is not implemented for the container format of the file.",
132 "parsing attachments")
139 CPPUNIT_ASSERT_EQUAL(0_st, file.
id3v2Tags().size());
141 CPPUNIT_ASSERT(!file.
mp4Tag());
146 CPPUNIT_ASSERT_EQUAL(1_st, file.
id3v2Tags().size());
151 CPPUNIT_ASSERT(file.
mp4Tag());
156 MediaFileInfo file(testFilePath(
"matroska_wave1/test1.mkv"));
167 CPPUNIT_ASSERT_EQUAL(ContainerFormat::Matroska, file.
containerFormat());
173 CPPUNIT_ASSERT_EQUAL(1_st, file.
tags().size());
175 CPPUNIT_ASSERT(!file.
mp4Tag());
178 CPPUNIT_ASSERT_EQUAL(2_st, file.
trackCount());
180 CPPUNIT_ASSERT_EQUAL(0_st, file.
chapters().size());
182 CPPUNIT_ASSERT_EQUAL(0_st, file.
attachments().size());
192 file.
tags().back()->addNotification(NotificationType::Critical,
"error",
"test");
198 file.
tracks().back()->setLanguage(
"eng");
200 CPPUNIT_ASSERT_EQUAL(unordered_set<string>({}), file.
availableLanguages(MediaType::Text));
201 CPPUNIT_ASSERT_EQUAL(
"ID: 2422994868, type: Video"s, file.
tracks()[0]->label());
202 CPPUNIT_ASSERT_EQUAL(
"ID: 3653291187, type: Audio, language: \"eng\""s, file.
tracks()[1]->label());
203 CPPUNIT_ASSERT_EQUAL(
"MS-MPEG-4-480p / MP3-2ch-eng"s, file.
technicalSummary());
Contains utility classes helping to read and write streams.