Browse Source

added unit test which writes a png with a Exif Profile and checks after reloading it, if the profile is still there (#611)

pull/616/head
popow 8 years ago
parent
commit
4ed1df8ffc
  1. 31
      tests/ImageSharp.Tests/MetaData/Profiles/Exif/ExifProfileTests.cs

31
tests/ImageSharp.Tests/MetaData/Profiles/Exif/ExifProfileTests.cs

@ -308,6 +308,23 @@ namespace SixLabors.ImageSharp.Tests
Assert.Equal(495, bytes.Length); Assert.Equal(495, bytes.Length);
} }
[Fact]
public void TestWritingPngPreservesExifProfile()
{
// arrange
Image<Rgba32> image = TestFile.Create(TestImages.Png.Bike).CreateImage();
ExifProfile expected = GetExifProfile();
image.MetaData.ExifProfile = expected;
// act
Image<Rgba32> reloadedImage = WritePngAndRead(image);
// assert
ExifProfile actual = reloadedImage.MetaData.ExifProfile;
Assert.NotNull(actual);
TestProfile(actual);
}
private static ExifProfile GetExifProfile() private static ExifProfile GetExifProfile()
{ {
Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateImage(); Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateImage();
@ -320,7 +337,7 @@ namespace SixLabors.ImageSharp.Tests
private static Image<Rgba32> WriteAndRead(Image<Rgba32> image) private static Image<Rgba32> WriteAndRead(Image<Rgba32> image)
{ {
using (MemoryStream memStream = new MemoryStream()) using (var memStream = new MemoryStream())
{ {
image.SaveAsJpeg(memStream); image.SaveAsJpeg(memStream);
image.Dispose(); image.Dispose();
@ -330,6 +347,18 @@ namespace SixLabors.ImageSharp.Tests
} }
} }
private static Image<Rgba32> WritePngAndRead(Image<Rgba32> image)
{
using (var memStream = new MemoryStream())
{
image.SaveAsPng(memStream);
image.Dispose();
memStream.Position = 0;
return Image.Load<Rgba32>(memStream);
}
}
private static void TestProfile(ExifProfile profile) private static void TestProfile(ExifProfile profile)
{ {
Assert.NotNull(profile); Assert.NotNull(profile);

Loading…
Cancel
Save