From e712df38620f7b6f08fd8748c20c14ade6ebf157 Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Tue, 20 Mar 2012 17:49:44 +0100 Subject: [PATCH] More test cases. --- .../image/BufferedImageFactoryTestCase.java | 113 +++++++++++++++++- 1 file changed, 110 insertions(+), 3 deletions(-) diff --git a/common/common-image/src/test/java/com/twelvemonkeys/image/BufferedImageFactoryTestCase.java b/common/common-image/src/test/java/com/twelvemonkeys/image/BufferedImageFactoryTestCase.java index 21368881..131f05fd 100644 --- a/common/common-image/src/test/java/com/twelvemonkeys/image/BufferedImageFactoryTestCase.java +++ b/common/common-image/src/test/java/com/twelvemonkeys/image/BufferedImageFactoryTestCase.java @@ -167,6 +167,38 @@ public class BufferedImageFactoryTestCase { } } + @Test + public void testAbort() throws Exception { + URL resource = getClass().getResource("/sunflower.jpg"); + assertNotNull(resource); + Image source = Toolkit.getDefaultToolkit().createImage(resource); + assertNotNull(source); + + final BufferedImageFactory factory = new BufferedImageFactory(source); + + // Listener should abort ASAP + factory.addProgressListener(new BufferedImageFactory.ProgressListener() { + public void progress(BufferedImageFactory pFactory, float pPercentage) { + if (pPercentage > 5) { + pFactory.abort(); + } + } + }); + + BufferedImage image = factory.getBufferedImage(); + + assertEquals(187, image.getWidth()); + assertEquals(283, image.getHeight()); + + // Upper right should be loaded + assertEquals((image.getRGB(186, 0) & 0xFF0000) >> 16 , 0x68, 10); + assertEquals((image.getRGB(186, 0) & 0xFF00) >> 8, 0x91, 10); + assertEquals(image.getRGB(186, 0) & 0xFF, 0xE0, 10); + + // Lower right should be blank + assertEquals(image.getRGB(186, 282) & 0xFFFFFF, 0); + } + @Test public void testListener() { URL resource = getClass().getResource("/sunflower.jpg"); @@ -180,7 +212,82 @@ public class BufferedImageFactoryTestCase { factory.addProgressListener(listener); factory.getBufferedImage(); - listener.verify(); + listener.verify(100f); + } + + @Test + public void testRemoveListener() { + URL resource = getClass().getResource("/sunflower.jpg"); + assertNotNull(resource); + Image source = Toolkit.getDefaultToolkit().createImage(resource); + assertNotNull(source); + + BufferedImageFactory factory = new BufferedImageFactory(source); + + VerifyingListener listener = new VerifyingListener(factory); + factory.addProgressListener(listener); + factory.removeProgressListener(listener); + factory.getBufferedImage(); + + listener.verify(0); + } + + @Test + public void testRemoveNullListener() { + URL resource = getClass().getResource("/sunflower.jpg"); + assertNotNull(resource); + Image source = Toolkit.getDefaultToolkit().createImage(resource); + assertNotNull(source); + + BufferedImageFactory factory = new BufferedImageFactory(source); + + VerifyingListener listener = new VerifyingListener(factory); + factory.addProgressListener(listener); + factory.removeProgressListener(null); + factory.getBufferedImage(); + + listener.verify(100); + } + + @Test + public void testRemoveNotAdddedListener() { + URL resource = getClass().getResource("/sunflower.jpg"); + assertNotNull(resource); + Image source = Toolkit.getDefaultToolkit().createImage(resource); + assertNotNull(source); + + BufferedImageFactory factory = new BufferedImageFactory(source); + + VerifyingListener listener = new VerifyingListener(factory); + factory.addProgressListener(listener); + factory.removeProgressListener(new BufferedImageFactory.ProgressListener() { + public void progress(BufferedImageFactory pFactory, float pPercentage) { + } + }); + factory.getBufferedImage(); + + listener.verify(100); + } + + @Test + public void testRemoveAllListeners() { + URL resource = getClass().getResource("/sunflower.jpg"); + assertNotNull(resource); + Image source = Toolkit.getDefaultToolkit().createImage(resource); + assertNotNull(source); + + BufferedImageFactory factory = new BufferedImageFactory(source); + + VerifyingListener listener = new VerifyingListener(factory); + VerifyingListener listener2 = new VerifyingListener(factory); + factory.addProgressListener(listener); + factory.addProgressListener(listener); + factory.addProgressListener(listener2); + factory.removeAllProgressListeners(); + factory.getBufferedImage(); + + listener.verify(0); + listener2.verify(0); } private static class VerifyingListener implements BufferedImageFactory.ProgressListener { @@ -199,8 +306,8 @@ public class BufferedImageFactoryTestCase { } - public void verify() { - assertEquals(100f, progress, .1f); // Sanity test that the listener was invoked + public void verify(final float expectedProgress) { + assertEquals(expectedProgress, progress, .1f); // Sanity test that the listener was invoked } } }