public void fireLFProgressUpdate(float p) { java.util.Iterator<IIOReadProgressListener> listeners = _listeners.iterator(); while( listeners.hasNext() ) { ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, (100/buffersToCreate)+(p/buffersToCreate)); } } private void fireProgressUpdate(int mb_row) {
@Test public void testAddIIOWriteProgressListenerCallbacks() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener); ordered.verify(listener).imageStarted(writer, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listener).imageComplete(writer); }
@Test public void testMultipleAddIIOReadProgressListenerCallbacks() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class); IIOReadProgressListener listenerToo = mock(IIOReadProgressListener.class); IIOReadProgressListener listenerThree = mock(IIOReadProgressListener.class); reader.addIIOReadProgressListener(listener); reader.addIIOReadProgressListener(listenerToo); reader.addIIOReadProgressListener(listenerThree); try { reader.read(0); } catch (IOException e) { fail("Could not read image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener, listenerToo, listenerThree); ordered.verify(listener).imageStarted(reader, 0); ordered.verify(listenerToo).imageStarted(reader, 0); ordered.verify(listenerThree).imageStarted(reader, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listenerToo, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listenerThree, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listener).imageComplete(reader); ordered.verify(listenerToo).imageComplete(reader); ordered.verify(listenerThree).imageComplete(reader); reader.dispose(); }
@Test public void testAbort() { final ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class, "Progress1"); reader.addIIOReadProgressListener(listener); IIOReadProgressListener listenerToo = mock(IIOReadProgressListener.class, "Progress2"); reader.addIIOReadProgressListener(listenerToo); // Create a listener that just makes the reader abort immediately... IIOReadProgressListener abortingListener = mock(IIOReadProgressListener.class, "Aborter"); Answer<Void> abort = new Answer<Void>() { public Void answer(InvocationOnMock invocation) throws Throwable { reader.abort(); return null; } }; doAnswer(abort).when(abortingListener).imageStarted(any(ImageReader.class), anyInt()); doAnswer(abort).when(abortingListener).imageProgress(any(ImageReader.class), anyInt()); reader.addIIOReadProgressListener(abortingListener); try { reader.read(0); } catch (IOException e) { failBecause("Image could not be read", e); } verify(listener).readAborted(reader); verify(listenerToo).readAborted(reader); reader.dispose(); }
@Test public void testInvalidICCSingleChunkBadSequence() throws IOException { // Regression // Single segment ICC profile, with chunk index/count == 0 JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/invalid-icc-single-chunk-bad-sequence-number.jpg"))); assertEquals(1772, reader.getWidth(0)); assertEquals(2126, reader.getHeight(0)); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceRegion(new Rectangle(reader.getWidth(0), 8)); IIOReadWarningListener warningListener = mock(IIOReadWarningListener.class); reader.addIIOReadWarningListener(warningListener); BufferedImage image = reader.read(0, param); assertNotNull(image); assertEquals(1772, image.getWidth()); assertEquals(8, image.getHeight()); verify(warningListener, atLeast(1)).warningOccurred(eq(reader), anyString()); }
@Test public void testAddIIOReadProgressListenerCallbacks() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class); reader.addIIOReadProgressListener(listener); try { reader.read(0); } catch (IOException e) { fail("Could not read image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener); ordered.verify(listener).imageStarted(reader, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listener).imageComplete(reader); reader.dispose(); }
@Test public void testMultipleAddIIOWriteProgressListenerCallbacks() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); IIOWriteProgressListener listenerToo = mock(IIOWriteProgressListener.class); IIOWriteProgressListener listenerThree = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); writer.addIIOWriteProgressListener(listenerToo); writer.addIIOWriteProgressListener(listenerThree); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener, listenerToo, listenerThree); ordered.verify(listener).imageStarted(writer, 0); ordered.verify(listenerToo).imageStarted(writer, 0); ordered.verify(listenerThree).imageStarted(writer, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listenerToo, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listenerThree, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listener).imageComplete(writer); ordered.verify(listenerToo).imageComplete(writer); ordered.verify(listenerThree).imageComplete(writer); }
public void fireRGBProgressUpdate(float p) { java.util.Iterator<IIOReadProgressListener> listeners = _listeners.iterator(); while( listeners.hasNext() ) { ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, ((bufferCount+4)*(100/buffersToCreate))+(p/buffersToCreate)); } }
@Test public void testReadDuplicateComponentIds() throws IOException { JPEGImageReader reader = createReader(); try { reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/duplicate-component-ids.jpg"))); IIOReadWarningListener listener = mock(IIOReadWarningListener.class); reader.addIIOReadWarningListener(listener); assertEquals(367, reader.getWidth(0)); assertEquals(242, reader.getHeight(0)); BufferedImage image = reader.read(0, null); verify(listener, times(1)).warningOccurred(eq(reader), and(matches("(?i).*duplicate component ID.*(?-i)SOF.*"), contains("1"))); verify(listener, times(1)).warningOccurred(eq(reader), and(matches("(?i).*duplicate component ID.*(?-i)SOS.*"), contains("1"))); assertNotNull(image); assertEquals(367, image.getWidth()); assertEquals(242, image.getHeight()); assertEquals(ColorSpace.TYPE_RGB, image.getColorModel().getColorSpace().getType()); } finally { reader.dispose(); } }
@Test public void testAddIIOReadProgressListenerCallbacksJPEG() { ImageReader reader = createReader(); TestData data = new TestData(getClassLoaderResource("/bmpsuite/q/rgb24jpeg.bmp"), new Dimension(127, 64)); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class); reader.addIIOReadProgressListener(listener); try { reader.read(0); } catch (IOException e) { fail("Could not read image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener); ordered.verify(listener).imageStarted(reader, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listener).imageComplete(reader); }
@Test public void testRemoveIIOWriteProgressListenerMultiple() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); IIOWriteProgressListener listenerToo = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listenerToo); writer.removeIIOWriteProgressListener(listener); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // Should not have called any methods... verifyZeroInteractions(listener); // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listenerToo); ordered.verify(listenerToo).imageStarted(writer, 0); ordered.verify(listenerToo, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listenerToo).imageComplete(writer); }
private void fireProgressUpdate(int mb_row) { java.util.Iterator<IIOReadProgressListener> listeners = _listeners.iterator(); while( listeners.hasNext() ) { ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, (100.0f*((float)(mb_row+1)/(float)getMacroBlockRows()))/buffersToCreate); } } public void fireRGBProgressUpdate(float p) {
@Test public void testReadAdobeAPP14CMYKAnd3channelData() throws IOException { JPEGImageReader reader = createReader(); try { reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/exif-jfif-app13-app14ycck-3channel.jpg"))); IIOReadWarningListener listener = mock(IIOReadWarningListener.class); reader.addIIOReadWarningListener(listener); assertEquals(310, reader.getWidth(0)); assertEquals(384, reader.getHeight(0)); BufferedImage image = reader.read(0, null); verify(listener, times(1)).warningOccurred(eq(reader), matches("(?i).*Adobe App14.*(?-i)CMYK.*SOF.*")); assertNotNull(image); assertEquals(310, image.getWidth()); assertEquals(384, image.getHeight()); assertEquals(ColorSpace.TYPE_RGB, image.getColorModel().getColorSpace().getType()); } finally { reader.dispose(); } }
@Test public void testAddIIOReadProgressListenerCallbacksPNG() { ImageReader reader = createReader(); TestData data = new TestData(getClassLoaderResource("/bmpsuite/q/rgb24png.bmp"), new Dimension(127, 64)); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class); reader.addIIOReadProgressListener(listener); try { reader.read(0); } catch (IOException e) { fail("Could not read image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener); ordered.verify(listener).imageStarted(reader, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listener).imageComplete(reader); }
public void fireLFProgressUpdate(float p) { java.util.Iterator<IIOReadProgressListener> listeners = _listeners.iterator(); while( listeners.hasNext() ) { ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, (100/buffersToCreate)+(p/buffersToCreate)); } } private void fireProgressUpdate(int mb_row) {
@Test public void testEmbeddedBeforeBaseURI() throws URISyntaxException, IOException { // Asking for metadata, width, height etc, before attempting to read using a param, // will cause the document to be parsed without a base URI. // This will work, but may not use the CSS... URL resource = getClassLoaderResource("/svg/barChart.svg"); SVGImageReader reader = createReader(); TestData data = new TestData(resource, (Dimension) null); try (ImageInputStream stream = data.getInputStream()) { reader.setInput(stream); IIOReadWarningListener listener = mock(IIOReadWarningListener.class); reader.addIIOReadWarningListener(listener); assertEquals(450, reader.getWidth(0)); assertEquals(500, reader.getHeight(0)); // Expect the warning about the missing CSS verify(listener, atMost(1)).warningOccurred(any(ImageReader.class), anyString()); reset(listener); SVGReadParam param = reader.getDefaultReadParam(); param.setBaseURI(resource.toURI().toASCIIString()); BufferedImage image = reader.read(0, param); assertNotNull(image); assertEquals(450, image.getWidth()); assertEquals(500, image.getHeight()); // No more warnings now that the base URI is set verifyZeroInteractions(listener); } finally { reader.dispose(); } }
@Test public void testRemoveIIOReadProgressListenerMultiple() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class, "Listener1"); reader.addIIOReadProgressListener(listener); IIOReadProgressListener listenerToo = mock(IIOReadProgressListener.class, "Listener2"); reader.addIIOReadProgressListener(listenerToo); reader.removeIIOReadProgressListener(listener); try { reader.read(0); } catch (IOException e) { fail("Could not read image"); } // Should not have called any methods on listener1... verifyZeroInteractions(listener); InOrder ordered = inOrder(listenerToo); ordered.verify(listenerToo).imageStarted(reader, 0); ordered.verify(listenerToo, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listenerToo).imageComplete(reader); reader.dispose(); }
public void fireRGBProgressUpdate(float p) { java.util.Iterator<IIOReadProgressListener> listeners = _listeners.iterator(); while( listeners.hasNext() ) { ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, ((bufferCount+4)*(100/buffersToCreate))+(p/buffersToCreate)); } }
@Test public void testAddIIOReadProgressListenerCallbacks() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); IIOReadProgressListener listener = mock(IIOReadProgressListener.class); reader.addIIOReadProgressListener(listener); try { reader.read(0); } catch (IOException e) { fail("Could not read image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener); ordered.verify(listener).imageStarted(reader, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(reader), anyInt()); ordered.verify(listener).imageComplete(reader); }
private void fireProgressUpdate(int mb_row) { java.util.Iterator<IIOReadProgressListener> listeners = _listeners.iterator(); while( listeners.hasNext() ) { ( (IIOReadProgressListener)listeners.next() ).imageProgress( null, (100.0f*((float)(mb_row+1)/(float)getMacroBlockRows()))/buffersToCreate); } } public void fireRGBProgressUpdate(float p) {