You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by lb...@apache.org on 2013/02/06 15:52:43 UTC

svn commit: r1442992 - /xmlgraphics/fop/trunk/test/java/org/apache/fop/render/ps/PSPainterTestCase.java

Author: lbernardo
Date: Wed Feb  6 14:52:43 2013
New Revision: 1442992

URL: http://svn.apache.org/viewvc?rev=1442992&view=rev
Log:
FOP-2206: adds unit test for PSPainter.drawText()

Modified:
    xmlgraphics/fop/trunk/test/java/org/apache/fop/render/ps/PSPainterTestCase.java

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/render/ps/PSPainterTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/ps/PSPainterTestCase.java?rev=1442992&r1=1442991&r2=1442992&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/render/ps/PSPainterTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/render/ps/PSPainterTestCase.java Wed Feb  6 14:52:43 2013
@@ -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...");
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org