mirror of https://github.com/SixLabors/ImageSharp
4 changed files with 163 additions and 7 deletions
@ -0,0 +1,79 @@ |
|||
// <copyright file="TiffDecoderHeaderTests.cs" company="James Jackson-South">
|
|||
// Copyright (c) James Jackson-South and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
// </copyright>
|
|||
|
|||
namespace ImageSharp.Tests |
|||
{ |
|||
using System.IO; |
|||
using System.Linq; |
|||
using Xunit; |
|||
|
|||
using ImageSharp.Formats; |
|||
|
|||
public class TiffDecoderHeaderTests |
|||
{ |
|||
public static object[][] IsLittleEndianValues = new[] { new object[] { false }, |
|||
new object[] { true } }; |
|||
|
|||
[Theory] |
|||
[MemberData(nameof(IsLittleEndianValues))] |
|||
public void Decode_ThrowsException_WithInvalidByteOrderMarkers(bool isLittleEndian) |
|||
{ |
|||
Stream stream = new TiffGenHeader() |
|||
{ |
|||
FirstIfd = new TiffGenIfd(), |
|||
ByteOrderMarker = 0x1234 |
|||
} |
|||
.ToStream(isLittleEndian); |
|||
|
|||
TiffDecoder decoder = new TiffDecoder(); |
|||
|
|||
ImageFormatException e = Assert.Throws<ImageFormatException>(() => { TestDecode(decoder, stream); }); |
|||
|
|||
Assert.Equal("Invalid TIFF file header.", e.Message); |
|||
} |
|||
|
|||
[Theory] |
|||
[MemberData(nameof(IsLittleEndianValues))] |
|||
public void Decode_ThrowsException_WithIncorrectMagicNumber(bool isLittleEndian) |
|||
{ |
|||
Stream stream = new TiffGenHeader() |
|||
{ |
|||
FirstIfd = new TiffGenIfd(), |
|||
MagicNumber = 32 |
|||
} |
|||
.ToStream(isLittleEndian); |
|||
|
|||
TiffDecoder decoder = new TiffDecoder(); |
|||
|
|||
ImageFormatException e = Assert.Throws<ImageFormatException>(() => { TestDecode(decoder, stream); }); |
|||
|
|||
Assert.Equal("Invalid TIFF file header.", e.Message); |
|||
} |
|||
|
|||
[Theory] |
|||
[MemberData(nameof(IsLittleEndianValues))] |
|||
public void Decode_ThrowsException_WithNoIfdZero(bool isLittleEndian) |
|||
{ |
|||
Stream stream = new TiffGenHeader() |
|||
{ |
|||
FirstIfd = null |
|||
} |
|||
.ToStream(isLittleEndian); |
|||
|
|||
TiffDecoder decoder = new TiffDecoder(); |
|||
|
|||
ImageFormatException e = Assert.Throws<ImageFormatException>(() => { TestDecode(decoder, stream); }); |
|||
|
|||
Assert.Equal("Invalid TIFF file header.", e.Message); |
|||
} |
|||
|
|||
private void TestDecode(TiffDecoder decoder, Stream stream) |
|||
{ |
|||
Configuration.Default.AddImageFormat(new TiffFormat()); |
|||
Image image = new Image(1,1); |
|||
decoder.Decode<Color>(image, stream, null); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue