exiv2/unitTests/test_riffVideo.cpp
Mohamed Ali Chebbi d755fc18b5
1748 Video Support in V1.0: part 2/3 : support Riffvideo (#2415)
* 1748 Video Support in V1.0: part 2/3 : support RiffVideo

* limit the buffer_size

* Update exiv2.md

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>

* Code Review and cleanUp code

* Update riffvideo.hpp

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2022-12-31 10:45:45 +01:00

55 lines
1.4 KiB
C++

// SPDX-License-Identifier: GPL-2.0-or-later
#include <gtest/gtest.h>
#include <array>
#include <exiv2/riffvideo.hpp>
using namespace Exiv2;
TEST(RiffVideo, canBeOpenedWithEmptyMemIo) {
auto memIo = std::make_unique<MemIo>();
ASSERT_NO_THROW(RiffVideo riff(std::move(memIo)));
}
TEST(RiffVideo, mimeTypeIsRiff) {
auto memIo = std::make_unique<MemIo>();
RiffVideo riff(std::move(memIo));
ASSERT_EQ("video/riff", riff.mimeType());
}
TEST(RiffVideo, isRiffTypewithEmptyDataReturnsFalse) {
MemIo memIo;
ASSERT_FALSE(isRiffType(memIo, false));
}
TEST(RiffVideo, emptyThrowError) {
auto memIo = std::make_unique<MemIo>();
RiffVideo riff(std::move(memIo));
ASSERT_THROW(riff.readMetadata(), Exiv2::Error);
}
TEST(RiffVideo, printStructurePrintsNothingAndthrowError) {
auto memIo = std::make_unique<MemIo>();
RiffVideo riff(std::move(memIo));
std::ostringstream stream;
ASSERT_THROW(riff.printStructure(stream, Exiv2::kpsNone, 1), Exiv2::Error);
ASSERT_TRUE(stream.str().empty());
}
TEST(RiffVideo, readMetadata) {
auto memIo = std::make_unique<MemIo>();
RiffVideo riff(std::move(memIo));
XmpData xmpData;
xmpData["Xmp.video.TotalStream"] = 1000;
xmpData["Xmp.video.TimecodeScale"] = 10001;
xmpData["Xmp.video.AspectRatio"] = "4:3";
ASSERT_NO_THROW(riff.setXmpData(xmpData));
auto data = riff.xmpData();
ASSERT_FALSE(data.empty());
ASSERT_EQ(xmpData["Xmp.video.TotalStream"].count(), 4);
}