diff options
author | Luis Bernardo <lbernardo@apache.org> | 2013-02-06 14:52:43 +0000 |
---|---|---|
committer | Luis Bernardo <lbernardo@apache.org> | 2013-02-06 14:52:43 +0000 |
commit | c788330c064425eeca796ce6c5d26d62fc0e5f9e (patch) | |
tree | 20b5924ba9502bbad2b01acd6d7da1253eff4e9f /test/java | |
parent | 5733c762297057da81eb93d5fbef15a4cd0bef2c (diff) | |
download | xmlgraphics-fop-c788330c064425eeca796ce6c5d26d62fc0e5f9e.tar.gz xmlgraphics-fop-c788330c064425eeca796ce6c5d26d62fc0e5f9e.zip |
FOP-2206: adds unit test for PSPainter.drawText()
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1442992 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test/java')
-rw-r--r-- | test/java/org/apache/fop/render/ps/PSPainterTestCase.java | 70 |
1 files changed, 62 insertions, 8 deletions
diff --git a/test/java/org/apache/fop/render/ps/PSPainterTestCase.java b/test/java/org/apache/fop/render/ps/PSPainterTestCase.java index 0a9f552ff..79e5bd9b6 100644 --- a/test/java/org/apache/fop/render/ps/PSPainterTestCase.java +++ b/test/java/org/apache/fop/render/ps/PSPainterTestCase.java @@ -20,27 +20,36 @@ import java.awt.Color; import java.awt.Rectangle; import java.io.IOException; import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import org.junit.Before; import org.junit.Test; import org.mockito.verification.VerificationMode; -import org.apache.xmlgraphics.ps.PSGenerator; - -import org.apache.fop.apps.FOUserAgent; -import org.apache.fop.fo.Constants; -import org.apache.fop.render.intermediate.IFContext; -import org.apache.fop.render.intermediate.IFState; -import org.apache.fop.traits.BorderProps; - import static org.junit.Assert.fail; +import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyFloat; +import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.apache.xmlgraphics.ps.PSGenerator; + +import org.apache.fop.apps.FOUserAgent; +import org.apache.fop.fo.Constants; +import org.apache.fop.fonts.Font; +import org.apache.fop.fonts.FontInfo; +import org.apache.fop.fonts.FontTriplet; +import org.apache.fop.fonts.MultiByteFont; +import org.apache.fop.fonts.Typeface; +import org.apache.fop.render.intermediate.IFContext; +import org.apache.fop.render.intermediate.IFState; +import org.apache.fop.traits.BorderProps; + public class PSPainterTestCase { private PSDocumentHandler docHandler; @@ -107,4 +116,49 @@ public class PSPainterTestCase { } } + @Test + public void testDrawText() { + int fontSize = 12000; + String fontName = "MockFont"; + PSGenerator psGenerator = mock(PSGenerator.class); + PSRenderingUtil psRenderingUtil = mock(PSRenderingUtil.class); + PSDocumentHandler psDocumentHandler = mock(PSDocumentHandler.class); + FontInfo fontInfo = mock(FontInfo.class); + PSFontResource psFontResource = mock(PSFontResource.class); + MultiByteFont multiByteFont = mock(MultiByteFont.class); + Font font = mock(Font.class); + when(psDocumentHandler.getGenerator()).thenReturn(psGenerator); + when(psDocumentHandler.getPSUtil()).thenReturn(psRenderingUtil); + when(psDocumentHandler.getFontInfo()).thenReturn(fontInfo); + when(psDocumentHandler.getPSResourceForFontKey(fontName)).thenReturn(psFontResource); + when(fontInfo.getInternalFontKey(any(FontTriplet.class))).thenReturn(fontName); + when(fontInfo.getFontInstance(any(FontTriplet.class), anyInt())).thenReturn(font); + Map<String, Typeface> fonts = new HashMap<String, Typeface>(); + fonts.put(fontName, multiByteFont); + when(fontInfo.getFonts()).thenReturn(fonts); + + IFState ifState = IFState.create(); + ifState.setFontSize(fontSize); + + PSPainter psPainter = new PSPainter(psDocumentHandler, ifState); + + int x = 100000; + int y = 100000; + int letterSpacing = 0; + int wordSpacing = 0; + int dp[][] = {{100, 100, 0, 0}, null, null, {200, 200, -100, -100}}; + double X = (x + dp[0][0]) / 1000.0; + double Y = (y - dp[0][1]) / 1000.0; + when(psGenerator.formatDouble(X)).thenReturn("100.100"); + when(psGenerator.formatDouble(Y)).thenReturn("99.900"); + String text = "Hello Mock!"; + try { + psPainter.drawText(x, y, letterSpacing, wordSpacing, dp, text); + verify(psGenerator).writeln("1 0 0 -1 100.100 99.900 Tm"); + verify(psGenerator).writeln("[<0000> [-100 100] <00000000> [200 -200] <0000> [-300 300] " + + "<0000000000000000000000000000>] TJ"); + } catch (Exception e) { + fail("something broke..."); + } + } } |