@ -56,17 +56,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
using ( Image < TPixel > image = provider . GetImage ( new PngDecoder ( ) ) )
{
PngMetadata meta = image . Metadata . GetFormatMetadata ( PngFormat . Instance ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Comment" ) & & m . Value . Equals ( "comment" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Author" ) & & m . Value . Equals ( "ImageSharp" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Copyright" ) & & m . Value . Equals ( "ImageSharp" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Title" ) & & m . Value . Equals ( "unittest" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Description" ) & & m . Value . Equals ( "compressed-text" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "International" ) & & m . Value . Equals ( "'e', mu'tlheghvam, ghaH yu'" ) & & m . LanguageTag . Equals ( "x-klingon" ) & & m . TranslatedKeyword . Equals ( "warning" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "International2" ) & & m . Value . Equals ( "ИМАГЕШАРП" ) & & m . LanguageTag . Equals ( "rus" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "CompressedInternational" ) & & m . Value . Equals ( "la plume de la mante" ) & & m . LanguageTag . Equals ( "fra" ) & & m . TranslatedKeyword . Equals ( "foobar" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "CompressedInternational2" ) & & m . Value . Equals ( "這是一個考驗" ) & & m . LanguageTag . Equals ( "chinese" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "NoLang" ) & & m . Value . Equals ( "this text chunk is missing a language tag" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "NoTranslatedKeyword" ) & & m . Value . Equals ( "dieser chunk hat kein übersetztes Schlüßelwort" ) ) ;
VerifyTextDataIsPresent ( meta ) ;
}
}
@ -85,17 +75,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
using ( Image < Rgba32 > image = decoder . Decode < Rgba32 > ( Configuration . Default , memoryStream ) )
{
PngMetadata meta = image . Metadata . GetFormatMetadata ( PngFormat . Instance ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Comment" ) & & m . Value . Equals ( "comment" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Author" ) & & m . Value . Equals ( "ImageSharp" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Copyright" ) & & m . Value . Equals ( "ImageSharp" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Title" ) & & m . Value . Equals ( "unittest" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Description" ) & & m . Value . Equals ( "compressed-text" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "International" ) & & m . Value . Equals ( "'e', mu'tlheghvam, ghaH yu'" ) & & m . LanguageTag . Equals ( "x-klingon" ) & & m . TranslatedKeyword . Equals ( "warning" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "International2" ) & & m . Value . Equals ( "ИМАГЕШАРП" ) & & m . LanguageTag . Equals ( "rus" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "CompressedInternational" ) & & m . Value . Equals ( "la plume de la mante" ) & & m . LanguageTag . Equals ( "fra" ) & & m . TranslatedKeyword . Equals ( "foobar" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "CompressedInternational2" ) & & m . Value . Equals ( "這是一個考驗" ) & & m . LanguageTag . Equals ( "chinese" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "NoLang" ) & & m . Value . Equals ( "this text chunk is missing a language tag" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "NoTranslatedKeyword" ) & & m . Value . Equals ( "dieser chunk hat kein übersetztes Schlüßelwort" ) ) ;
VerifyTextDataIsPresent ( meta ) ;
}
}
}
@ -178,7 +158,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
IgnoreMetadata = true
} ;
var testFile = TestFile . Create ( TestImages . Png . Blur ) ;
var testFile = TestFile . Create ( TestImages . Png . PngWithMetadata ) ;
using ( Image < Rgba32 > image = testFile . CreateRgba32Image ( options ) )
{
@ -220,5 +200,38 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
Assert . Equal ( resolutionUnit , meta . ResolutionUnits ) ;
}
}
[Theory]
[InlineData(TestImages.Png.PngWithMetadata)]
public void Identify_ReadsTextData ( string imagePath )
{
var testFile = TestFile . Create ( imagePath ) ;
using ( var stream = new MemoryStream ( testFile . Bytes , false ) )
{
IImageInfo imageInfo = Image . Identify ( stream ) ;
Assert . NotNull ( imageInfo ) ;
PngMetadata meta = imageInfo . Metadata . GetFormatMetadata ( PngFormat . Instance ) ;
VerifyTextDataIsPresent ( meta ) ;
}
}
private static void VerifyTextDataIsPresent ( PngMetadata meta )
{
Assert . NotNull ( meta ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Comment" ) & & m . Value . Equals ( "comment" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Author" ) & & m . Value . Equals ( "ImageSharp" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Copyright" ) & & m . Value . Equals ( "ImageSharp" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Title" ) & & m . Value . Equals ( "unittest" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "Description" ) & & m . Value . Equals ( "compressed-text" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "International" ) & & m . Value . Equals ( "'e', mu'tlheghvam, ghaH yu'" ) & &
m . LanguageTag . Equals ( "x-klingon" ) & & m . TranslatedKeyword . Equals ( "warning" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "International2" ) & & m . Value . Equals ( "ИМАГЕШАРП" ) & & m . LanguageTag . Equals ( "rus" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "CompressedInternational" ) & & m . Value . Equals ( "la plume de la mante" ) & &
m . LanguageTag . Equals ( "fra" ) & & m . TranslatedKeyword . Equals ( "foobar" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "CompressedInternational2" ) & & m . Value . Equals ( "這是一個考驗" ) & &
m . LanguageTag . Equals ( "chinese" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "NoLang" ) & & m . Value . Equals ( "this text chunk is missing a language tag" ) ) ;
Assert . Contains ( meta . TextData , m = > m . Keyword . Equals ( "NoTranslatedKeyword" ) & & m . Value . Equals ( "dieser chunk hat kein übersetztes Schlüßelwort" ) ) ;
}
}
}