forked from Exiv2/exiv2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_ImageJpeg.cpp
58 lines (43 loc) · 1.68 KB
/
test_ImageJpeg.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <image.hpp> // Unit under test
#include <gtest/gtest.h>
using namespace Exiv2;
namespace
{
const std::string testData(TESTDATA_PATH); /// \todo use filesystem library with C++17
}
TEST(AJpegImage, canReadMetadata)
{
auto image = ImageFactory::open(testData + "/DSC_3079.jpg", false);
ASSERT_NO_THROW(image->readMetadata());
ASSERT_EQ(bigEndian, image->byteOrder());
ASSERT_TRUE(image->good());
ASSERT_EQ(720, image->pixelWidth());
ASSERT_EQ(1280, image->pixelHeight());
ASSERT_TRUE(image->comment().empty());
ASSERT_FALSE(image->xmpPacket().empty());
ASSERT_FALSE(image->iccProfileDefined());
ASSERT_FALSE(image->supportsMetadata(mdNone));
ASSERT_TRUE(image->supportsMetadata(mdExif));
ASSERT_TRUE(image->supportsMetadata(mdIptc));
ASSERT_TRUE(image->supportsMetadata(mdComment));
ASSERT_TRUE(image->supportsMetadata(mdXmp));
ASSERT_FALSE(image->supportsMetadata(mdIccProfile));
ASSERT_TRUE(image->nativePreviews().empty());
ASSERT_EQ(ImageType::jpeg, image->imageType());
ASSERT_EQ(14, image->exifData().count());
}
TEST(AJpegImage, hasNoMetadataWhenCreatedFromScratch)
{
const std::string filePath("./here.jpeg");
auto image = ImageFactory::create(ImageType::jpeg, filePath);
ASSERT_NO_THROW(image->readMetadata());
ASSERT_EQ(invalidByteOrder, image->byteOrder());
ASSERT_TRUE(image->good());
ASSERT_EQ(1, image->pixelWidth());
ASSERT_EQ(1, image->pixelHeight());
ASSERT_TRUE(image->comment().empty());
ASSERT_TRUE(image->xmpPacket().empty());
ASSERT_FALSE(image->iccProfileDefined());
ASSERT_EQ(0, image->exifData().count());
ASSERT_EQ(0, std::remove(filePath.c_str()));
}