diff options
author | Alexey Ushakov <Alexey.Ushakov@jetbrains.com> | 2016-10-06 17:14:42 +0300 |
---|---|---|
committer | Alexey Ushakov <Alexey.Ushakov@jetbrains.com> | 2016-10-06 17:15:27 +0300 |
commit | 6cd467b9afa2a8764defdac49e84be6bda288f6f (patch) | |
tree | e025728c94bd43892f12c941f6678c3595dfbb46 /idea | |
parent | 7fc15780aa876b6f444dde40e594d5a86aa64b8e (diff) | |
download | jdk8u_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.xml | 43 | ||||
-rw-r--r-- | idea/java/tests/src/quality/text/DroidFontTest.java | 86 | ||||
-rw-r--r-- | idea/java/tests/testdata/quality/text/droidsans.png | bin | 0 -> 291 bytes | |||
-rw-r--r-- | idea/java/tests/testdata/quality/text/droidsansbold.png | bin | 0 -> 341 bytes | |||
-rw-r--r-- | idea/java/tests/testdata/quality/text/droidsansmono.png | bin | 0 -> 371 bytes | |||
-rw-r--r-- | idea/java/tests/testdata/quality/text/droidserifbold.png | bin | 0 -> 368 bytes | |||
-rw-r--r-- | idea/java/tests/testdata/quality/text/droidserifitalic.png | bin | 0 -> 427 bytes | |||
-rw-r--r-- | idea/java/tests/testdata/quality/text/droidserifregular.png | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000000..ab4d409138 --- /dev/null +++ b/idea/java/tests/testdata/quality/text/droidsans.png diff --git a/idea/java/tests/testdata/quality/text/droidsansbold.png b/idea/java/tests/testdata/quality/text/droidsansbold.png Binary files differnew file mode 100644 index 0000000000..34f0267f80 --- /dev/null +++ b/idea/java/tests/testdata/quality/text/droidsansbold.png diff --git a/idea/java/tests/testdata/quality/text/droidsansmono.png b/idea/java/tests/testdata/quality/text/droidsansmono.png Binary files differnew file mode 100644 index 0000000000..c386b1fcfe --- /dev/null +++ b/idea/java/tests/testdata/quality/text/droidsansmono.png diff --git a/idea/java/tests/testdata/quality/text/droidserifbold.png b/idea/java/tests/testdata/quality/text/droidserifbold.png Binary files differnew file mode 100644 index 0000000000..6fbe9f788f --- /dev/null +++ b/idea/java/tests/testdata/quality/text/droidserifbold.png diff --git a/idea/java/tests/testdata/quality/text/droidserifitalic.png b/idea/java/tests/testdata/quality/text/droidserifitalic.png Binary files differnew file mode 100644 index 0000000000..32c03c23c5 --- /dev/null +++ b/idea/java/tests/testdata/quality/text/droidserifitalic.png diff --git a/idea/java/tests/testdata/quality/text/droidserifregular.png b/idea/java/tests/testdata/quality/text/droidserifregular.png Binary files differnew file mode 100644 index 0000000000..139f73decc --- /dev/null +++ b/idea/java/tests/testdata/quality/text/droidserifregular.png |