From 62ca84242e2999201f9e38a9dc494acb6a500f2b Mon Sep 17 00:00:00 2001 From: Ildar Khayrutdinov Date: Sun, 30 Jan 2022 17:33:41 +0300 Subject: [PATCH] Add test --- .../Formats/Jpg/JpegDecoderTests.Metadata.cs | 45 ++++++++++++------- tests/ImageSharp.Tests/TestImages.cs | 1 + .../baseline/Calliphora_encoded_strings.jpg | 3 ++ 3 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 tests/Images/Input/Jpg/baseline/Calliphora_encoded_strings.jpg diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.Metadata.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.Metadata.cs index 95f72f1073..296ca6af4e 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.Metadata.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.Metadata.cs @@ -303,7 +303,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg } [Fact] - public void EncodedStringTags() + public void EncodedStringTags_WriteAndRead() { using var memoryStream = new MemoryStream(); using (var image = Image.Load(TestFile.GetInputFileFullPath(TestImages.Jpeg.Baseline.Calliphora))) @@ -331,25 +331,40 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg using (var image = Image.Load(memoryStream)) { ExifProfile exif = image.Metadata.ExifProfile; - Assert.NotNull(exif); + VerifyEncodedStrings(exif); + } + } + + [Fact] + public void EncodedStringTags_Read() + { + using (var image = Image.Load(TestFile.GetInputFileFullPath(TestImages.Jpeg.Baseline.Calliphora_EncodedStrings))) + { + ExifProfile exif = image.Metadata.ExifProfile; + VerifyEncodedStrings(exif); + } + } - Assert.Equal("2022-01-06", exif.GetValue(ExifTag.GPSDateStamp).Value); + private static void VerifyEncodedStrings(ExifProfile exif) + { + Assert.NotNull(exif); - Assert.Equal("A bit of test metadata for image title", exif.GetValue(ExifTag.XPTitle).Value); - Assert.Equal("A bit of test metadata for image comment", exif.GetValue(ExifTag.XPComment).Value); - Assert.Equal("Dan Petitt", exif.GetValue(ExifTag.XPAuthor).Value); - Assert.Equal("Keyword1;Keyword2", exif.GetValue(ExifTag.XPKeywords).Value); - Assert.Equal("This is a subject", exif.GetValue(ExifTag.XPSubject).Value); + Assert.Equal("2022-01-06", exif.GetValue(ExifTag.GPSDateStamp).Value); - Assert.Equal("user comment (ASCII)", exif.GetValue(ExifTag.UserComment).Value.Text); - Assert.Equal(EncodedString.CharacterCode.ASCII, exif.GetValue(ExifTag.UserComment).Value.Code); + Assert.Equal("A bit of test metadata for image title", exif.GetValue(ExifTag.XPTitle).Value); + Assert.Equal("A bit of test metadata for image comment", exif.GetValue(ExifTag.XPComment).Value); + Assert.Equal("Dan Petitt", exif.GetValue(ExifTag.XPAuthor).Value); + Assert.Equal("Keyword1;Keyword2", exif.GetValue(ExifTag.XPKeywords).Value); + Assert.Equal("This is a subject", exif.GetValue(ExifTag.XPSubject).Value); - Assert.Equal("GPS processing method (JIS)", exif.GetValue(ExifTag.GPSProcessingMethod).Value.Text); - Assert.Equal(EncodedString.CharacterCode.JIS, exif.GetValue(ExifTag.GPSProcessingMethod).Value.Code); + Assert.Equal("user comment (ASCII)", exif.GetValue(ExifTag.UserComment).Value.Text); + Assert.Equal(EncodedString.CharacterCode.ASCII, exif.GetValue(ExifTag.UserComment).Value.Code); - Assert.Equal("GPS area info (Unicode)", (string)exif.GetValue(ExifTag.GPSAreaInformation).Value); - Assert.Equal(EncodedString.CharacterCode.Unicode, exif.GetValue(ExifTag.GPSAreaInformation).Value.Code); - } + Assert.Equal("GPS processing method (JIS)", exif.GetValue(ExifTag.GPSProcessingMethod).Value.Text); + Assert.Equal(EncodedString.CharacterCode.JIS, exif.GetValue(ExifTag.GPSProcessingMethod).Value.Code); + + Assert.Equal("GPS area info (Unicode)", (string)exif.GetValue(ExifTag.GPSAreaInformation).Value); + Assert.Equal(EncodedString.CharacterCode.Unicode, exif.GetValue(ExifTag.GPSAreaInformation).Value.Code); } } } diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index bce22799da..172cfd7161 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -191,6 +191,7 @@ namespace SixLabors.ImageSharp.Tests public const string Exif = "Jpg/baseline/exif.jpg"; public const string Floorplan = "Jpg/baseline/Floorplan.jpg"; public const string Calliphora = "Jpg/baseline/Calliphora.jpg"; + public const string Calliphora_EncodedStrings = "Jpg/baseline/Calliphora_encoded_strings.jpg"; public const string Ycck = "Jpg/baseline/ycck.jpg"; public const string Turtle420 = "Jpg/baseline/turtle.jpg"; public const string GammaDalaiLamaGray = "Jpg/baseline/gamma_dalai_lama_gray.jpg"; diff --git a/tests/Images/Input/Jpg/baseline/Calliphora_encoded_strings.jpg b/tests/Images/Input/Jpg/baseline/Calliphora_encoded_strings.jpg new file mode 100644 index 0000000000..6551f0d050 --- /dev/null +++ b/tests/Images/Input/Jpg/baseline/Calliphora_encoded_strings.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e4398f3573ab7fd2aaeb88462061edff27f9fa0c86d8ec84808a736807fcdce +size 258077