Fix for bug 41015 - add in another paragraph property

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@480093 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2006-11-28 15:34:20 +00:00
parent aca2ade290
commit 0bf725ae46
3 changed files with 34 additions and 1 deletions

View File

@ -102,7 +102,8 @@ public class StyleTextPropAtom extends RecordAtom
new TextProp(2, 0x4000, "spaceafter"),
new TextProp(2, 0x8000, "para_unknown_4"),
new TextProp(2, 0x10000, "para_unknown_5"),
new TextProp(2, 0xA0000, "para_unknown_6")
new TextProp(2, 0xA0000, "para_unknown_6"),
new TextProp(2, 0x200000, "para_unknown_7")
};
/** All the different kinds of character properties we might handle */
public static TextProp[] characterTextPropTypes = new TextProp[] {

View File

@ -412,4 +412,36 @@ public class TestTextRun extends TestCase {
assertEquals(tpCC.getTextPropList(), ntpCC.getTextPropList());
assertEquals(tpDC.getTextPropList(), ntpDC.getTextPropList());
}
/**
* Test case for Bug 41015.
*
* In some cases RichTextRun.getText() threw StringIndexOutOfBoundsException because
* of the wrong list of potential paragraph properties defined in StyleTextPropAtom.
*
*/
public void testBug41015() throws Exception {
RichTextRun[] rt;
SlideShow ppt = new SlideShow(new HSLFSlideShow(System.getProperty("HSLF.testdata.path") + "/bug-41015.ppt"));
Slide sl = ppt.getSlides()[0];
TextRun[] txt = sl.getTextRuns();
assertEquals(2, txt.length);
rt = txt[0].getRichTextRuns();
assertEquals(1, rt.length);
assertEquals(0, rt[0].getIndentLevel());
assertEquals("sdfsdfsdf", rt[0].getText());
rt = txt[1].getRichTextRuns();
assertEquals(2, rt.length);
assertEquals(0, rt[0].getIndentLevel());
assertEquals("Sdfsdfsdf\n" +
"Dfgdfg\n" +
"Dfgdfgdfg\n", rt[0].getText());
assertEquals(1, rt[1].getIndentLevel());
assertEquals("Sdfsdfs\n" +
"Sdfsdf\n", rt[1].getText());
}
}