1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.imaging.formats.jpeg.segments;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.fail;
21
22 import java.io.ByteArrayInputStream;
23 import java.io.IOException;
24 import java.io.InputStream;
25
26 import org.apache.commons.imaging.ImagingException;
27 import org.apache.commons.imaging.bytesource.ByteSource;
28 import org.apache.commons.imaging.formats.jpeg.JpegImageParser;
29 import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters;
30 import org.apache.commons.imaging.formats.jpeg.JpegUtils;
31 import org.junit.jupiter.api.Test;
32
33 public class NegSizeSegmentTest {
34
35 @Test
36 public void testCreatesNegSizeSegment() throws IOException {
37 final byte[] bytes = new byte[8];
38 bytes[0] = (byte) 0xff;
39 bytes[1] = (byte) 0xd8;
40 bytes[2] = (byte) 0xe1;
41 bytes[3] = (byte) 0xff;
42 bytes[4] = (byte) 0x01;
43 bytes[5] = (byte) 0x00;
44 bytes[6] = (byte) 0x00;
45 bytes[7] = (byte) 0x00;
46
47 try {
48 final InputStream inputStream = new ByteArrayInputStream(bytes);
49 final ByteSource bs = ByteSource.inputStream(inputStream, "NegSizeSegment");
50 final JpegImageParser p = new JpegImageParser();
51 p.getBufferedImage(bs, new JpegImagingParameters());
52 fail("Expecting exception: ImageReadException");
53 } catch (final ImagingException e) {
54 assertEquals("Invalid segment size", e.getMessage());
55 assertEquals(JpegUtils.class.getName(), e.getStackTrace()[0].getClassName());
56 }
57
58 }
59
60 }