modules/graphics/src/test/java/test/javafx/scene/image/ImageTest.java

Print this page
rev 9250 : 8134762: Refactor Javafx graphics module tests for clear separation of tests
Reviewed-by:


   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package javafx.scene.image;
  27 
  28 import com.sun.javafx.pgstub.*;
  29 import com.sun.javafx.test.PropertyInvalidationCounter;





  30 import com.sun.javafx.tk.Toolkit;
  31 import javafx.beans.InvalidationListener;
  32 import javafx.beans.Observable;
  33 import org.junit.Before;
  34 import org.junit.Test;
  35 
  36 import java.io.ByteArrayInputStream;
  37 import java.io.InputStream;
  38 import java.util.LinkedList;
  39 import java.util.Queue;


  40 
  41 import static org.junit.Assert.*;
  42 
  43 public final class ImageTest {
  44     private final StubToolkit toolkit;
  45     private final StubImageLoaderFactory imageLoaderFactory;
  46 
  47     public ImageTest() {
  48         toolkit = (StubToolkit) Toolkit.getToolkit();
  49         imageLoaderFactory = toolkit.getImageLoaderFactory();
  50     }
  51 
  52     @Before
  53     public void setUp() {
  54         imageLoaderFactory.reset();
  55     }
  56 
  57     @Test
  58     public void loadImageFromUrlBasicTest() {
  59         final String url = "file:test.png";


  73         final Image image = new Image(url, 200, 400, true, true);
  74 
  75         assertEquals(url, image.impl_getUrl());
  76         verifyLoadedImage(image, 200, 400, true, true, 300, 100);
  77     }
  78 
  79     @Test
  80     public void loadImageFromMissingUrlTest() {
  81         final Image image = new Image("file:missing.png");
  82 
  83         assertTrue(image.isError());
  84     }
  85 
  86     @Test
  87     public void loadImageFromStreamBasicTest() {
  88         final InputStream is = new ByteArrayInputStream(new byte[0]);
  89         registerImage(is, 100, 200);
  90 
  91         final Image image = new Image(is);
  92 
  93         assertEquals(is, image.getImpl_source());
  94         verifyLoadedImage(image, 0, 0, false, false, 100, 200);
  95     }
  96 
  97     @Test
  98     public void loadImageFromStreamScaledTest() {
  99         final InputStream is = new ByteArrayInputStream(new byte[0]);
 100         registerImage(is, 300, 100);
 101 
 102         final Image image = new Image(is, 200, 400, true, true);
 103 
 104         assertEquals(is, image.getImpl_source());
 105         verifyLoadedImage(image, 200, 400, true, true, 300, 100);
 106     }
 107 
 108     @Test
 109     public void fromPlatformImageTest() {
 110         final Object fakePlatformImage = new Object();
 111         registerImage(fakePlatformImage, 200, 500);
 112 
 113         final Image image = Image.impl_fromPlatformImage(fakePlatformImage);
 114         verifyLoadedImage(image, 0, 0, false, false, 200, 500);
 115     }
 116 
 117     @Test
 118     public void loadImageAsyncProgressTest() {
 119         final String url = "file:test.png";
 120         registerImage(url, 200, 100);
 121 
 122         final Image image = new Image(url, true);
 123 
 124         final StubAsyncImageLoader lastAsyncImageLoader =


 464     }
 465 
 466     private void registerImage(final Object source,
 467                                final int width,
 468                                final int height) {
 469         imageLoaderFactory.registerImage(
 470                 source, new StubPlatformImageInfo(width, height));
 471     }
 472 
 473     private StubAsyncImageLoader getLastAsyncImageLoader() {
 474         final StubAsyncImageLoader lastAsyncImageLoader =
 475                 imageLoaderFactory.getLastAsyncImageLoader();
 476         assertNotNull(lastAsyncImageLoader);
 477         assertTrue(lastAsyncImageLoader.isStarted());
 478 
 479         return lastAsyncImageLoader;
 480     }
 481 
 482     @Test
 483     public void createImageFromClasspathTest() {
 484         final String url = "javafx/scene/image/test.png";
 485         final String resolvedUrl = Thread.currentThread().getContextClassLoader().getResource(url).toString();
 486         registerImage(resolvedUrl, 100, 200);
 487         
 488         final Image image = new Image(url);
 489 
 490         assertEquals(resolvedUrl, image.impl_getUrl());
 491         verifyLoadedImage(image, 0, 0, false, false, 100, 200);
 492     }
 493     
 494     @Test
 495     public void createImageFromClasspathTest_withLeadingSlash() {
 496         final String url = "/javafx/scene/image/test.png";
 497         final String resolvedUrl = Thread.currentThread().getContextClassLoader().getResource(url.substring(1)).toString();
 498         registerImage(resolvedUrl, 100, 200);
 499         
 500         final Image image = new Image(url);
 501 
 502         assertEquals(resolvedUrl, image.impl_getUrl());
 503         verifyLoadedImage(image, 0, 0, false, false, 100, 200);
 504     }
 505 
 506     @Test(expected=NullPointerException.class)
 507     public void createImageFromNullUrlTest() {
 508         new Image((String) null);
 509     }
 510 
 511     @Test(expected=NullPointerException.class)
 512     public void createImageAsyncFromNullUrlTest() {
 513         new Image(null, true);
 514     }
 515 
 516     @Test(expected=NullPointerException.class)




   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package test.javafx.scene.image;
  27 
  28 import test.com.sun.javafx.pgstub.StubPlatformImageInfo;
  29 import test.com.sun.javafx.pgstub.StubPlatformImage;
  30 import test.com.sun.javafx.pgstub.StubImageLoader;
  31 import test.com.sun.javafx.pgstub.StubAsyncImageLoader;
  32 import test.com.sun.javafx.pgstub.StubImageLoaderFactory;
  33 import test.com.sun.javafx.pgstub.StubToolkit;
  34 import test.com.sun.javafx.test.PropertyInvalidationCounter;
  35 import com.sun.javafx.tk.Toolkit;
  36 import javafx.beans.InvalidationListener;
  37 import javafx.beans.Observable;
  38 import org.junit.Before;
  39 import org.junit.Test;
  40 
  41 import java.io.ByteArrayInputStream;
  42 import java.io.InputStream;
  43 import java.util.LinkedList;
  44 import java.util.Queue;
  45 import javafx.scene.image.Image;
  46 import javafx.scene.image.ImageShim;
  47 
  48 import static org.junit.Assert.*;
  49 
  50 public final class ImageTest {
  51     private final StubToolkit toolkit;
  52     private final StubImageLoaderFactory imageLoaderFactory;
  53 
  54     public ImageTest() {
  55         toolkit = (StubToolkit) Toolkit.getToolkit();
  56         imageLoaderFactory = toolkit.getImageLoaderFactory();
  57     }
  58 
  59     @Before
  60     public void setUp() {
  61         imageLoaderFactory.reset();
  62     }
  63 
  64     @Test
  65     public void loadImageFromUrlBasicTest() {
  66         final String url = "file:test.png";


  80         final Image image = new Image(url, 200, 400, true, true);
  81 
  82         assertEquals(url, image.impl_getUrl());
  83         verifyLoadedImage(image, 200, 400, true, true, 300, 100);
  84     }
  85 
  86     @Test
  87     public void loadImageFromMissingUrlTest() {
  88         final Image image = new Image("file:missing.png");
  89 
  90         assertTrue(image.isError());
  91     }
  92 
  93     @Test
  94     public void loadImageFromStreamBasicTest() {
  95         final InputStream is = new ByteArrayInputStream(new byte[0]);
  96         registerImage(is, 100, 200);
  97 
  98         final Image image = new Image(is);
  99 
 100         assertEquals(is, ImageShim.getImpl_source(image));
 101         verifyLoadedImage(image, 0, 0, false, false, 100, 200);
 102     }
 103 
 104     @Test
 105     public void loadImageFromStreamScaledTest() {
 106         final InputStream is = new ByteArrayInputStream(new byte[0]);
 107         registerImage(is, 300, 100);
 108 
 109         final Image image = new Image(is, 200, 400, true, true);
 110 
 111         assertEquals(is, ImageShim.getImpl_source(image));
 112         verifyLoadedImage(image, 200, 400, true, true, 300, 100);
 113     }
 114 
 115     @Test
 116     public void fromPlatformImageTest() {
 117         final Object fakePlatformImage = new Object();
 118         registerImage(fakePlatformImage, 200, 500);
 119 
 120         final Image image = Image.impl_fromPlatformImage(fakePlatformImage);
 121         verifyLoadedImage(image, 0, 0, false, false, 200, 500);
 122     }
 123 
 124     @Test
 125     public void loadImageAsyncProgressTest() {
 126         final String url = "file:test.png";
 127         registerImage(url, 200, 100);
 128 
 129         final Image image = new Image(url, true);
 130 
 131         final StubAsyncImageLoader lastAsyncImageLoader =


 471     }
 472 
 473     private void registerImage(final Object source,
 474                                final int width,
 475                                final int height) {
 476         imageLoaderFactory.registerImage(
 477                 source, new StubPlatformImageInfo(width, height));
 478     }
 479 
 480     private StubAsyncImageLoader getLastAsyncImageLoader() {
 481         final StubAsyncImageLoader lastAsyncImageLoader =
 482                 imageLoaderFactory.getLastAsyncImageLoader();
 483         assertNotNull(lastAsyncImageLoader);
 484         assertTrue(lastAsyncImageLoader.isStarted());
 485 
 486         return lastAsyncImageLoader;
 487     }
 488 
 489     @Test
 490     public void createImageFromClasspathTest() {
 491         final String url = "test/javafx/scene/image/test.png";
 492         final String resolvedUrl = Thread.currentThread().getContextClassLoader().getResource(url).toString();
 493         registerImage(resolvedUrl, 100, 200);
 494         
 495         final Image image = new Image(url);
 496 
 497         assertEquals(resolvedUrl, image.impl_getUrl());
 498         verifyLoadedImage(image, 0, 0, false, false, 100, 200);
 499     }
 500     
 501     @Test
 502     public void createImageFromClasspathTest_withLeadingSlash() {
 503         final String url = "/test/javafx/scene/image/test.png";
 504         final String resolvedUrl = Thread.currentThread().getContextClassLoader().getResource(url.substring(1)).toString();
 505         registerImage(resolvedUrl, 100, 200);
 506         
 507         final Image image = new Image(url);
 508 
 509         assertEquals(resolvedUrl, image.impl_getUrl());
 510         verifyLoadedImage(image, 0, 0, false, false, 100, 200);
 511     }
 512 
 513     @Test(expected=NullPointerException.class)
 514     public void createImageFromNullUrlTest() {
 515         new Image((String) null);
 516     }
 517 
 518     @Test(expected=NullPointerException.class)
 519     public void createImageAsyncFromNullUrlTest() {
 520         new Image(null, true);
 521     }
 522 
 523     @Test(expected=NullPointerException.class)