aboutsummaryrefslogtreecommitdiff
path: root/idea
diff options
context:
space:
mode:
authorAlexey Ushakov <Alexey.Ushakov@jetbrains.com>2016-10-06 17:14:42 +0300
committerAlexey Ushakov <Alexey.Ushakov@jetbrains.com>2016-10-06 17:15:27 +0300
commit6cd467b9afa2a8764defdac49e84be6bda288f6f (patch)
treee025728c94bd43892f12c941f6678c3595dfbb46 /idea
parent7fc15780aa876b6f444dde40e594d5a86aa64b8e (diff)
downloadjdk8u_jdk-6cd467b9afa2a8764defdac49e84be6bda288f6f.tar.gz
JRE-43 Font.getFamily() does not work in headless modejb8u112-b443
Added golden image tests for bundled fonts
Diffstat (limited to 'idea')
-rw-r--r--idea/java/tests/quality_tests.xml43
-rw-r--r--idea/java/tests/src/quality/text/DroidFontTest.java86
-rw-r--r--idea/java/tests/testdata/quality/text/droidsans.pngbin0 -> 291 bytes
-rw-r--r--idea/java/tests/testdata/quality/text/droidsansbold.pngbin0 -> 341 bytes
-rw-r--r--idea/java/tests/testdata/quality/text/droidsansmono.pngbin0 -> 371 bytes
-rw-r--r--idea/java/tests/testdata/quality/text/droidserifbold.pngbin0 -> 368 bytes
-rw-r--r--idea/java/tests/testdata/quality/text/droidserifitalic.pngbin0 -> 427 bytes
-rw-r--r--idea/java/tests/testdata/quality/text/droidserifregular.pngbin0 -> 430 bytes
8 files changed, 129 insertions, 0 deletions
diff --git a/idea/java/tests/quality_tests.xml b/idea/java/tests/quality_tests.xml
new file mode 100644
index 0000000000..842cefdefc
--- /dev/null
+++ b/idea/java/tests/quality_tests.xml
@@ -0,0 +1,43 @@
+<project name="QualityTests" default="run" basedir=".">
+<description>
+ JBRE Performance tests
+ </description>
+ <property name="src" location="src"/>
+ <property name="lib" location="lib"/>
+ <property name="testdata" location="testdata"/>
+ <property name="build" location="build"/>
+ <property name="test_jvm" location="../../../jbsdk/jdk/Contents/Home/bin/java"/>
+
+ <target name="init">
+ <tstamp/>
+ <mkdir dir="${build}"/>
+ </target>
+
+ <target name="compile" depends="init"
+ description="compile the source">
+ <javac srcdir="${src}" destdir="${build}">
+ <classpath>
+ <pathelement location="${lib}/junit-4.12.jar" />
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="run" depends="compile">
+ <junit printsummary="on" haltonfailure="no" showoutput="on" fork="yes" jvm="${test_jvm}">
+ <classpath>
+ <pathelement location="${lib}/junit-4.12.jar" />
+ <pathelement location="${lib}/hamcrest-core-1.3.jar" />
+ <pathelement location="${build}"/>
+ </classpath>
+ <jvmarg value="-Dtestdata=${testdata}" />
+ <formatter type="plain" />
+
+ <test name="quality.text.DroidFontTest"/>
+ </junit>
+ </target>
+
+ <target name="clean"
+ description="clean up">
+ <delete dir="${build}"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/idea/java/tests/src/quality/text/DroidFontTest.java b/idea/java/tests/src/quality/text/DroidFontTest.java
new file mode 100644
index 0000000000..40f81e4af0
--- /dev/null
+++ b/idea/java/tests/src/quality/text/DroidFontTest.java
@@ -0,0 +1,86 @@
+package quality.text;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.awt.image.Raster;
+import java.io.File;
+import java.io.IOException;
+
+public class DroidFontTest {
+
+ private void doTestFont(String name) throws IOException, FontFormatException {
+ String testDataStr = System.getProperty("testdata");
+ Assert.assertNotNull("testdata property is not set", testDataStr);
+
+ File testData = new File(testDataStr, "quality" + File.separator + "text");
+
+ BufferedImage bimg = new BufferedImage(200, 100, BufferedImage.TYPE_INT_RGB);
+ Graphics2D g2d = bimg.createGraphics();
+
+ Font f = new Font(name, Font.PLAIN, 20);
+
+ g2d.setFont(f);
+ g2d.setColor(Color.WHITE);
+ Rectangle2D bnd = f.getStringBounds(name, g2d.getFontRenderContext());
+
+ g2d.drawString(name, 0, 25);
+
+
+ BufferedImage resultImage = bimg.getSubimage((int) bnd.getX(), (int) (25 + bnd.getY()),
+ (int) bnd.getWidth(), (int) bnd.getHeight());
+
+ String gfName = name.toLowerCase().replace(" ", "").concat(".png");
+
+ BufferedImage goldenImage = ImageIO.read(new File(testData, gfName));
+ Assert.assertTrue("Golden image and result have different sizes",
+ resultImage.getWidth() == goldenImage.getWidth() && resultImage.getHeight() == resultImage.getHeight());
+
+ Raster gRaster = goldenImage.getData();
+ Raster rRaster = resultImage.getData();
+ int [] gArr = new int[3];
+ int [] rArr = new int[3];
+ for (int i = 0; i < gRaster.getWidth(); i++) {
+ for (int j = 0; j < gRaster.getHeight(); j++) {
+ gRaster.getPixel(i, j, gArr);
+ rRaster.getPixel(i, j, rArr);
+ Assert.assertArrayEquals("Different pixels found at (" + i + "," + j + ")", gArr, rArr);
+ }
+ }
+ }
+
+
+ @Test
+ public void testDroidSans() throws Exception {
+ doTestFont("Droid Sans");
+ }
+
+ @Test
+ public void testDroidSansBold() throws Exception {
+ doTestFont("Droid Sans Bold");
+ }
+
+ @Test
+ public void testDroidSansMono() throws Exception {
+ doTestFont("Droid Sans Mono");
+ }
+
+ @Test
+ public void testDroidSerifRegular() throws Exception {
+ doTestFont("Droid Serif Regular");
+ }
+
+ @Test
+ public void testDroidSerifBold() throws Exception {
+ doTestFont("Droid Serif Bold");
+ }
+
+ @Test
+ public void testDroidSerifItalic() throws Exception {
+ doTestFont("Droid Serif Italic");
+ }
+}
diff --git a/idea/java/tests/testdata/quality/text/droidsans.png b/idea/java/tests/testdata/quality/text/droidsans.png
new file mode 100644
index 0000000000..ab4d409138
--- /dev/null
+++ b/idea/java/tests/testdata/quality/text/droidsans.png
Binary files differ
diff --git a/idea/java/tests/testdata/quality/text/droidsansbold.png b/idea/java/tests/testdata/quality/text/droidsansbold.png
new file mode 100644
index 0000000000..34f0267f80
--- /dev/null
+++ b/idea/java/tests/testdata/quality/text/droidsansbold.png
Binary files differ
diff --git a/idea/java/tests/testdata/quality/text/droidsansmono.png b/idea/java/tests/testdata/quality/text/droidsansmono.png
new file mode 100644
index 0000000000..c386b1fcfe
--- /dev/null
+++ b/idea/java/tests/testdata/quality/text/droidsansmono.png
Binary files differ
diff --git a/idea/java/tests/testdata/quality/text/droidserifbold.png b/idea/java/tests/testdata/quality/text/droidserifbold.png
new file mode 100644
index 0000000000..6fbe9f788f
--- /dev/null
+++ b/idea/java/tests/testdata/quality/text/droidserifbold.png
Binary files differ
diff --git a/idea/java/tests/testdata/quality/text/droidserifitalic.png b/idea/java/tests/testdata/quality/text/droidserifitalic.png
new file mode 100644
index 0000000000..32c03c23c5
--- /dev/null
+++ b/idea/java/tests/testdata/quality/text/droidserifitalic.png
Binary files differ
diff --git a/idea/java/tests/testdata/quality/text/droidserifregular.png b/idea/java/tests/testdata/quality/text/droidserifregular.png
new file mode 100644
index 0000000000..139f73decc
--- /dev/null
+++ b/idea/java/tests/testdata/quality/text/droidserifregular.png
Binary files differ