@Test
public void testPNG() throws Exception {

    Metadata metadata = new Metadata();
    metadata.set(Metadata.CONTENT_TYPE, "image/png");
    try (InputStream stream = getClass().getResourceAsStream("/test-documents/testPNG.png")) {
        parser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
    }
    assertEquals("75", metadata.get("height"));
    assertEquals("100", metadata.get("width"));
    assertEquals("0.35273367", metadata.get("Dimension VerticalPixelSize"));
    assertEquals("8 8 8", metadata.get("Data BitsPerSample"));
    assertEquals("Perceptual", metadata.get("sRGB"));
    assertEquals("true", metadata.get("Compression Lossless"));
    assertEquals("year=2008, month=5, day=6, hour=6, minute=18, second=47", metadata.get("tIME"));
    assertEquals("Normal", metadata.get("Dimension ImageOrientation"));
    assertEquals("1.0", metadata.get("Dimension PixelAspectRatio"));
    assertEquals("keyword=Comment, value=Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership.", metadata.get("tEXt tEXtEntry"));
    assertEquals("deflate", metadata.get("Compression CompressionTypeName"));
    assertEquals("UnsignedIntegral", metadata.get("Data SampleFormat"));
    assertEquals("0.35273367", metadata.get("Dimension HorizontalPixelSize"));
    assertEquals("none", metadata.get("Transparency Alpha"));
    assertEquals("pixelsPerUnitXAxis=2835, pixelsPerUnitYAxis=2835, unitSpecifier=meter", metadata.get("pHYs"));
    assertEquals("3", metadata.get("Chroma NumChannels"));
    assertEquals("1", metadata.get("Compression NumProgressiveScans"));
    assertEquals("RGB", metadata.get("Chroma ColorSpaceType"));
    assertEquals("keyword=Comment, value=Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file distributed with this work for additional information regarding copyright ownership., encoding=ISO-8859-1, compression=none", metadata.get("Text TextEntry"));
    assertEquals("PixelInterleaved", metadata.get("Data PlanarConfiguration"));
    assertEquals("width=100, height=75, bitDepth=8, colorType=RGB, compressionMethod=deflate, filterMethod=adaptive, interlaceMethod=none", metadata.get("IHDR"));
    assertEquals("true", metadata.get("Chroma BlackIsZero"));
    assertEquals("year=2008, month=5, day=6, hour=6, minute=18, second=47", metadata.get("Document ImageModificationTime"));
    assertEquals("image/png", metadata.get("Content-Type"));
    assertEquals("100", metadata.get(Metadata.IMAGE_WIDTH));
    assertEquals("75", metadata.get(Metadata.IMAGE_LENGTH));
    assertEquals("8 8 8", metadata.get(Metadata.BITS_PER_SAMPLE));
}