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)
|