Package org.pentaho.reporting.engine.classic.core.bugs

Source Code of org.pentaho.reporting.engine.classic.core.bugs.Prd2262Test

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.reporting.engine.classic.core.bugs;

import junit.framework.TestCase;
import org.pentaho.reporting.engine.classic.core.AttributeNames;
import org.pentaho.reporting.engine.classic.core.Band;
import org.pentaho.reporting.engine.classic.core.ClassicEngineBoot;
import org.pentaho.reporting.engine.classic.core.Element;
import org.pentaho.reporting.engine.classic.core.MasterReport;
import org.pentaho.reporting.engine.classic.core.ReportProcessingException;
import org.pentaho.reporting.engine.classic.core.filter.types.LabelType;
import org.pentaho.reporting.engine.classic.core.layout.model.LogicalPageBox;
import org.pentaho.reporting.engine.classic.core.layout.output.ContentProcessingException;
import org.pentaho.reporting.engine.classic.core.layout.process.ParagraphLineBreakStep;
import org.pentaho.reporting.engine.classic.core.layout.richtext.HtmlRichTextConverter;
import org.pentaho.reporting.engine.classic.core.style.BandStyleKeys;
import org.pentaho.reporting.engine.classic.core.testsupport.DebugReportRunner;

public class Prd2262Test extends TestCase
{
  private static final String htmlText = "<html><body><p>one<br />\n" +
      "    two<br /><br />\n" +
      "    three<br /></p><p>Paragraph2</p></body></html>";
  private static final String rtfText = "{\\rtf1\\ansi\\deff0\\adeflang1025\n" +
      "{\\fonttbl{\\f0\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f1\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f2\\fswiss\\fprq2\\fcharset0 Arial;}{\\f3\\fnil\\fprq2\\fcharset0 Arial Unicode MS;}{\\f4\\fnil\\fprq2\\fcharset0 Tahoma;}{\\f5\\fnil\\fprq0\\fcharset0 Tahoma;}}\n" +
      "{\\colortbl;\\red0\\green0\\blue0;\\red128\\green128\\blue128;}\n" +
      "{\\stylesheet{\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031\\snext1 Normal;}\n" +
      "{\\s2\\sb240\\sa120\\keepn\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\afs28\\lang255\\ltrch\\dbch\\langfe255\\hich\\f2\\fs28\\lang1031\\loch\\f2\\fs28\\lang1031\\sbasedon1\\snext3 Heading;}\n" +
      "{\\s3\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031\\sbasedon1\\snext3 Body Text;}\n" +
      "{\\s4\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af5\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031\\sbasedon3\\snext4 List;}\n" +
      "{\\s5\\sb120\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af5\\afs24\\lang255\\ai\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\i\\loch\\f0\\fs24\\lang1031\\i\\sbasedon1\\snext5 caption;}\n" +
      "{\\s6\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af5\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031\\sbasedon1\\snext6 Index;}\n" +
      "}\n" +
      "{\\info{\\creatim\\yr2009\\mo11\\dy24\\hr17\\min0}{\\revtim\\yr0\\mo0\\dy0\\hr0\\min0}{\\printim\\yr0\\mo0\\dy0\\hr0\\min0}{\\comment StarWriter}{\\vern3000}}\\deftab709\n" +
      "{\\*\\pgdsctbl\n" +
      "{\\pgdsc0\\pgdscuse195\\pgwsxn11905\\pghsxn16837\\marglsxn1134\\margrsxn1134\\margtsxn1134\\margbsxn1134\\pgdscnxt0 Standard;}}\n" +
      "\\paperh16837\\paperw11905\\margl1134\\margr1134\\margt1134\\margb1134\\sectd\\sbknone\\pgwsxn11905\\pghsxn16837\\marglsxn1134\\margrsxn1134\\margtsxn1134\\margbsxn1134\\ftnbj\\ftnstart1\\ftnrstcont\\ftnnar\\aenddoc\\aftnrstcont\\aftnstart1\\aftnnrlc\n" +
      "\\pard\\plain \\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031 {\\rtlch \\ltrch\\loch\\f0\\fs24\\lang1031\\i0\\b0 Paragraph1}\n" +
      "\\par \\pard\\plain \\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031 {\\rtlch \\ltrch\\loch\\f0\\fs24\\lang1031\\i0\\b0 Paragraph2}\n" +
      "\\par \\pard\\plain \\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs24\\lang255\\ltrch\\dbch\\af3\\langfe255\\hich\\f0\\fs24\\lang1031\\loch\\f0\\fs24\\lang1031 \n" +
      "\\par }";

  public Prd2262Test()
  {
  }

  public Prd2262Test(final String s)
  {
    super(s);
  }

  protected void setUp() throws Exception
  {
    ClassicEngineBoot.getInstance().start();
  }

  public void testHtmlParsing() throws ReportProcessingException, ContentProcessingException
  {
    final Element e = new Element();
    e.setElementType(LabelType.INSTANCE);
    e.setAttribute(AttributeNames.Core.NAMESPACE, AttributeNames.Core.VALUE, htmlText);

    final HtmlRichTextConverter htmlRichTextConverter = new HtmlRichTextConverter();
    final Object o = htmlRichTextConverter.convert(e, htmlText);
    if (o instanceof Band == false)
    {
      fail();
      return;
    }
    final Band containerBand = (Band) o;
    assertEquals("Container Band is block: ", "block", containerBand.getStyle().getStyleProperty(BandStyleKeys.LAYOUT));
    assertEquals(1, containerBand.getElementCount());

    final Band htmlBand = (Band) containerBand.getElement(0);
    assertEquals("HTML Band is block: ", "block", htmlBand.getStyle().getStyleProperty(BandStyleKeys.LAYOUT));
    assertEquals(1, htmlBand.getElementCount());

    final Band bodyBand = (Band) htmlBand.getElement(0);
    assertEquals("BODY Band is block: ", "block", bodyBand.getStyle().getStyleProperty(BandStyleKeys.LAYOUT));
    assertEquals(2, bodyBand.getElementCount());

    final Band p1Band = (Band) bodyBand.getElement(0);
    assertEquals("P[0] Band is block: ", "block", p1Band.getStyle().getStyleProperty(BandStyleKeys.LAYOUT));
    assertEquals(1, p1Band.getElementCount());
    translateToRenderableElements(p1Band);

    final Band p2Band = (Band) bodyBand.getElement(0);
    assertEquals("P[1] Band is block: ", "block", p2Band.getStyle().getStyleProperty(BandStyleKeys.LAYOUT));
    assertEquals(1, p2Band.getElementCount());
  }

  private void translateToRenderableElements(final Band b)
      throws ReportProcessingException, ContentProcessingException
  {
    final LogicalPageBox logicalPageBox = DebugReportRunner.layoutSingleBand(new MasterReport(), b);

    final ParagraphLineBreakStep step = new ParagraphLineBreakStep();
    step.compute(logicalPageBox);
    System.out.println();
  }
}
TOP

Related Classes of org.pentaho.reporting.engine.classic.core.bugs.Prd2262Test

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.