git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1342792 13f79535-47bb-0310-9956-ffa450edef68tags/fop-1_1rc1old
* @param documentHandler the parent document handler | * @param documentHandler the parent document handler | ||||
*/ | */ | ||||
public PSPainter(PSDocumentHandler documentHandler) { | public PSPainter(PSDocumentHandler documentHandler) { | ||||
this(documentHandler, IFState.create()); | |||||
} | |||||
protected PSPainter(PSDocumentHandler documentHandler, IFState state) { | |||||
super(); | super(); | ||||
this.documentHandler = documentHandler; | this.documentHandler = documentHandler; | ||||
this.borderPainter = new PSBorderPainter(documentHandler.gen); | this.borderPainter = new PSBorderPainter(documentHandler.gen); | ||||
this.state = IFState.create(); | |||||
this.state = state; | |||||
} | } | ||||
/** {@inheritDoc} */ | /** {@inheritDoc} */ | ||||
public void drawText(int x, int y, int letterSpacing, int wordSpacing, | public void drawText(int x, int y, int letterSpacing, int wordSpacing, | ||||
int[][] dp, String text) throws IFException { | int[][] dp, String text) throws IFException { | ||||
try { | try { | ||||
//Do not draw text if font-size is 0 as it creates an invalid PostScript file | |||||
if (state.getFontSize() == 0) { | |||||
return; | |||||
} | |||||
PSGenerator generator = getGenerator(); | PSGenerator generator = getGenerator(); | ||||
generator.useColor(state.getTextColor()); | generator.useColor(state.getTextColor()); | ||||
beginTextObject(); | beginTextObject(); |
documents. Example: the fix of marks layering will be such a case when it's done. | documents. Example: the fix of marks layering will be such a case when it's done. | ||||
--> | --> | ||||
<release version="FOP Trunk" date="TBD"> | <release version="FOP Trunk" date="TBD"> | ||||
<action context="Renderers" dev="GA" type="fix" fixes-bug="53294" due-to="Robert Meyer"> | |||||
Fix invalid PostScript file being created when font-size is 0. | |||||
</action> | |||||
<action context="Docs" dev="GA" type="update"> | <action context="Docs" dev="GA" type="update"> | ||||
Update FAQ and New Bug documentation. | Update FAQ and New Bug documentation. | ||||
</action> | </action> |
/* | |||||
* Licensed to the Apache Software Foundation (ASF) under one or more | |||||
* contributor license agreements. See the NOTICE file distributed with | |||||
* this work for additional information regarding copyright ownership. | |||||
* The ASF licenses this file to You under the Apache License, Version 2.0 | |||||
* (the "License"); you may not use this file except in compliance with | |||||
* the License. You may obtain a copy of the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, | |||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
* See the License for the specific language governing permissions and | |||||
* limitations under the License. | |||||
*/ | |||||
package org.apache.fop.render.ps; | |||||
import java.io.IOException; | |||||
import org.junit.Before; | |||||
import org.junit.Test; | |||||
import org.mockito.verification.VerificationMode; | |||||
import org.apache.xmlgraphics.ps.PSGenerator; | |||||
import org.apache.fop.render.intermediate.IFState; | |||||
import static org.mockito.Mockito.mock; | |||||
import static org.mockito.Mockito.never; | |||||
import static org.mockito.Mockito.times; | |||||
import static org.mockito.Mockito.verify; | |||||
public class PSPainterTestCase { | |||||
private PSDocumentHandler docHandler; | |||||
private PSPainter psPainter; | |||||
private PSGenerator gen; | |||||
private IFState state; | |||||
@Before | |||||
public void setup() { | |||||
docHandler = new PSDocumentHandler(); | |||||
gen = mock(PSGenerator.class); | |||||
docHandler.gen = gen; | |||||
state = IFState.create(); | |||||
psPainter = new PSPainter(docHandler, state); | |||||
} | |||||
@Test | |||||
public void testNonZeroFontSize() throws IOException { | |||||
testFontSize(6, times(1)); | |||||
} | |||||
@Test | |||||
public void testZeroFontSize() throws IOException { | |||||
testFontSize(0, never()); | |||||
} | |||||
private void testFontSize(int fontSize, VerificationMode test) throws IOException { | |||||
state.setFontSize(fontSize); | |||||
try { | |||||
psPainter.drawText(10, 10, 2, 2, null, "Test"); | |||||
} catch (Exception ex) { | |||||
//Expected | |||||
} | |||||
verify(gen, test).useColor(state.getTextColor()); | |||||
} | |||||
} |