You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/05/22 21:37:10 UTC
svn commit: r1890122 [14/16] - in /poi/trunk/poi-scratchpad/src:
main/java/org/apache/poi/hdgf/ main/java/org/apache/poi/hdgf/chunks/
main/java/org/apache/poi/hdgf/dev/ main/java/org/apache/poi/hdgf/exceptions/
main/java/org/apache/poi/hdgf/extractor/ ...
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList2.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList2.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList2.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList2.java Sat May 22 21:37:08 2021
@@ -47,88 +47,88 @@ public final class TestNumberedList2 {
private static final POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
@Test
- void testNumberedList() throws IOException {
- try (HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers2.ppt"))) {
- final List<HSLFSlide> slides = ppt.getSlides();
- assertEquals(2, slides.size());
- checkSlide0(slides.get(0));
- checkSlide1(slides.get(1));
- }
+ void testNumberedList() throws IOException {
+ try (HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers2.ppt"))) {
+ final List<HSLFSlide> slides = ppt.getSlides();
+ assertEquals(2, slides.size());
+ checkSlide0(slides.get(0));
+ checkSlide1(slides.get(1));
+ }
}
private void checkSlide0(final HSLFSlide s) {
- final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
- assertNotNull(numberedListArray);
- assertEquals(2, numberedListArray.length);
- final StyleTextProp9Atom numberedListInfoForTextBox0 = numberedListArray[0];
- final StyleTextProp9Atom numberedListInfoForTextBox1 = numberedListArray[1];
- assertNotNull(numberedListInfoForTextBox0);
- assertNotNull(numberedListInfoForTextBox1);
- final TextPFException9[] autoNumbersOfTextBox0 = numberedListInfoForTextBox0.getAutoNumberTypes();
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getfBulletHasAutoNumber());
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getAutoNumberStartNumber());//Default value = 1 will be used
+ final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
+ assertNotNull(numberedListArray);
+ assertEquals(2, numberedListArray.length);
+ final StyleTextProp9Atom numberedListInfoForTextBox0 = numberedListArray[0];
+ final StyleTextProp9Atom numberedListInfoForTextBox1 = numberedListArray[1];
+ assertNotNull(numberedListInfoForTextBox0);
+ assertNotNull(numberedListInfoForTextBox1);
+ final TextPFException9[] autoNumbersOfTextBox0 = numberedListInfoForTextBox0.getAutoNumberTypes();
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getfBulletHasAutoNumber());
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getAutoNumberStartNumber());//Default value = 1 will be used
assertSame(AutoNumberingScheme.arabicPeriod, autoNumbersOfTextBox0[0].getAutoNumberScheme());
- final TextPFException9[] autoNumbersOfTextBox1 = numberedListInfoForTextBox1.getAutoNumberTypes();
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox1[0].getfBulletHasAutoNumber());
- assertEquals(Short.valueOf((short)6), autoNumbersOfTextBox1[0].getAutoNumberStartNumber());//Default value = 1 will be used
+ final TextPFException9[] autoNumbersOfTextBox1 = numberedListInfoForTextBox1.getAutoNumberTypes();
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox1[0].getfBulletHasAutoNumber());
+ assertEquals(Short.valueOf((short)6), autoNumbersOfTextBox1[0].getAutoNumberStartNumber());//Default value = 1 will be used
assertSame(AutoNumberingScheme.arabicPeriod, autoNumbersOfTextBox1[0].getAutoNumberScheme());
- List<List<HSLFTextParagraph>> textParass = s.getTextParagraphs();
- assertEquals(2, textParass.size());
+ List<List<HSLFTextParagraph>> textParass = s.getTextParagraphs();
+ assertEquals(2, textParass.size());
- List<HSLFTextParagraph> textParas = textParass.get(0);
- assertEquals("List Item One\rList Item Two\rList Item Three", HSLFTextParagraph.getRawText(textParas));
- assertEquals(3, textParas.size());
- assertTrue(textParas.get(0).isBullet());
-
- String expected =
- "A numbered list may start at any number \r" +
- "This would be used as a continuation list on another page\r" +
+ List<HSLFTextParagraph> textParas = textParass.get(0);
+ assertEquals("List Item One\rList Item Two\rList Item Three", HSLFTextParagraph.getRawText(textParas));
+ assertEquals(3, textParas.size());
+ assertTrue(textParas.get(0).isBullet());
+
+ String expected =
+ "A numbered list may start at any number \r" +
+ "This would be used as a continuation list on another page\r" +
"This list should start with #6";
- assertEquals(expected, HSLFTextParagraph.getRawText(textParass.get(1)));
+ assertEquals(expected, HSLFTextParagraph.getRawText(textParass.get(1)));
- final EscherTextboxWrapper[] styleAtoms = s.getTextboxWrappers();
- assertEquals(textParass.size(), styleAtoms.length);
- checkSingleRunWrapper(44, styleAtoms[0]);
- checkSingleRunWrapper(130, styleAtoms[1]);
- }
-
- private void checkSlide1(final HSLFSlide s) {
- final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
- assertNotNull(numberedListArray);
- assertEquals(1, numberedListArray.length);
- final StyleTextProp9Atom numberedListInfoForTextBox = numberedListArray[0];
- assertNotNull(numberedListInfoForTextBox);
- final TextPFException9[] autoNumbersOfTextBox = numberedListInfoForTextBox.getAutoNumberTypes();
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox[0].getfBulletHasAutoNumber());
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox[0].getAutoNumberStartNumber());//Default value = 1 will be used
+ final EscherTextboxWrapper[] styleAtoms = s.getTextboxWrappers();
+ assertEquals(textParass.size(), styleAtoms.length);
+ checkSingleRunWrapper(44, styleAtoms[0]);
+ checkSingleRunWrapper(130, styleAtoms[1]);
+ }
+
+ private void checkSlide1(final HSLFSlide s) {
+ final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
+ assertNotNull(numberedListArray);
+ assertEquals(1, numberedListArray.length);
+ final StyleTextProp9Atom numberedListInfoForTextBox = numberedListArray[0];
+ assertNotNull(numberedListInfoForTextBox);
+ final TextPFException9[] autoNumbersOfTextBox = numberedListInfoForTextBox.getAutoNumberTypes();
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox[0].getfBulletHasAutoNumber());
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox[0].getAutoNumberStartNumber());//Default value = 1 will be used
assertSame(AutoNumberingScheme.arabicPeriod, autoNumbersOfTextBox[0].getAutoNumberScheme());
- List<List<HSLFTextParagraph>> textParass = s.getTextParagraphs();
- assertEquals(3, textParass.size());
+ List<List<HSLFTextParagraph>> textParass = s.getTextParagraphs();
+ assertEquals(3, textParass.size());
- List<HSLFTextParagraph> textParas = textParass.get(0);
- assertEquals("Bulleted list\rMore bullets", HSLFTextParagraph.getRawText(textParas));
- assertEquals(2, textParas.size());
- assertTrue(textParas.get(0).isBullet());
-
- String expected = "Numbered list between two bulleted lists\rSecond numbered list item";
- assertEquals(expected, HSLFTextParagraph.getRawText(textParass.get(1)));
- expected = "Second bulleted list \u2013 should appear after numbered list\rMore bullets";
- assertEquals(expected, HSLFTextParagraph.getRawText(textParass.get(2)));
-
- final EscherTextboxWrapper[] styleAtoms = s.getTextboxWrappers();
- assertEquals(textParass.size(), styleAtoms.length);
- checkSingleRunWrapper(27, styleAtoms[0]);
- checkSingleRunWrapper(67, styleAtoms[1]);
- checkSingleRunWrapper(70, styleAtoms[2]);
- }
-
- private void checkSingleRunWrapper(final int exceptedLength, final EscherTextboxWrapper wrapper) {
- final StyleTextPropAtom styleTextPropAtom = wrapper.getStyleTextPropAtom();
- final List<TextPropCollection> textProps = styleTextPropAtom.getCharacterStyles();
- assertEquals(1, textProps.size());
- assertEquals(exceptedLength, textProps.get(0).getCharactersCovered());
- }
+ List<HSLFTextParagraph> textParas = textParass.get(0);
+ assertEquals("Bulleted list\rMore bullets", HSLFTextParagraph.getRawText(textParas));
+ assertEquals(2, textParas.size());
+ assertTrue(textParas.get(0).isBullet());
+
+ String expected = "Numbered list between two bulleted lists\rSecond numbered list item";
+ assertEquals(expected, HSLFTextParagraph.getRawText(textParass.get(1)));
+ expected = "Second bulleted list \u2013 should appear after numbered list\rMore bullets";
+ assertEquals(expected, HSLFTextParagraph.getRawText(textParass.get(2)));
+
+ final EscherTextboxWrapper[] styleAtoms = s.getTextboxWrappers();
+ assertEquals(textParass.size(), styleAtoms.length);
+ checkSingleRunWrapper(27, styleAtoms[0]);
+ checkSingleRunWrapper(67, styleAtoms[1]);
+ checkSingleRunWrapper(70, styleAtoms[2]);
+ }
+
+ private void checkSingleRunWrapper(final int exceptedLength, final EscherTextboxWrapper wrapper) {
+ final StyleTextPropAtom styleTextPropAtom = wrapper.getStyleTextPropAtom();
+ final List<TextPropCollection> textProps = styleTextPropAtom.getCharacterStyles();
+ assertEquals(1, textProps.size());
+ assertEquals(exceptedLength, textProps.get(0).getCharactersCovered());
+ }
}
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList3.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList3.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList3.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestNumberedList3.java Sat May 22 21:37:08 2021
@@ -49,61 +49,61 @@ public final class TestNumberedList3 {
@Test
void testNumberedList() throws IOException {
- try (HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers3.ppt"))) {
- final List<HSLFSlide> slides = ppt.getSlides();
- assertEquals(1, slides.size());
- final HSLFSlide slide = slides.get(0);
- checkSlide(slide);
- }
- }
- private void checkSlide(final HSLFSlide s) {
- final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
- assertNotNull(numberedListArray);
- assertEquals(1, numberedListArray.length);
- final StyleTextProp9Atom numberedListInfoForTextBox = numberedListArray[0];
- assertNotNull(numberedListInfoForTextBox);
- final TextPFException9[] autoNumbersOfTextBox0 = numberedListInfoForTextBox.getAutoNumberTypes();
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getfBulletHasAutoNumber());
- assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getAutoNumberStartNumber());//Default value = 1 will be used
+ try (HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("numbers3.ppt"))) {
+ final List<HSLFSlide> slides = ppt.getSlides();
+ assertEquals(1, slides.size());
+ final HSLFSlide slide = slides.get(0);
+ checkSlide(slide);
+ }
+ }
+ private void checkSlide(final HSLFSlide s) {
+ final StyleTextProp9Atom[] numberedListArray = s.getNumberedListInfo();
+ assertNotNull(numberedListArray);
+ assertEquals(1, numberedListArray.length);
+ final StyleTextProp9Atom numberedListInfoForTextBox = numberedListArray[0];
+ assertNotNull(numberedListInfoForTextBox);
+ final TextPFException9[] autoNumbersOfTextBox0 = numberedListInfoForTextBox.getAutoNumberTypes();
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getfBulletHasAutoNumber());
+ assertEquals(Short.valueOf((short)1), autoNumbersOfTextBox0[0].getAutoNumberStartNumber());//Default value = 1 will be used
assertSame(AutoNumberingScheme.arabicPeriod, autoNumbersOfTextBox0[0].getAutoNumberScheme());
- final List<List<HSLFTextParagraph>> textParass = s.getTextParagraphs();
- assertEquals(3, textParass.size());
- assertEquals("Bulleted list\rMore bullets\rNo bullets here", HSLFTextParagraph.getRawText(textParass.get(0)));
- assertEquals("Numbered list between two bulleted lists\rSecond numbered list item", HSLFTextParagraph.getRawText(textParass.get(1)));
- assertEquals("Second bulleted list \u2013 should appear after numbered list\rMore bullets", HSLFTextParagraph.getRawText(textParass.get(2)));
- assertEquals(3, textParass.get(0).size());
- assertEquals(2, textParass.get(1).size());
- assertEquals(2, textParass.get(2).size());
- assertNull(textParass.get(0).get(0).getStyleTextProp9Atom());
- assertNotNull(textParass.get(1).get(0).getStyleTextProp9Atom());
- assertNull(textParass.get(2).get(0).getStyleTextProp9Atom());
- final TextPFException9[] autoNumbers = textParass.get(1).get(0).getStyleTextProp9Atom().getAutoNumberTypes();
- assertEquals(1, autoNumbers.length);
- assertEquals(Short.valueOf((short)1), autoNumbers[0].getfBulletHasAutoNumber());
- assertEquals(Short.valueOf((short)1), autoNumbers[0].getAutoNumberStartNumber());//Default value = 1 will be used
+ final List<List<HSLFTextParagraph>> textParass = s.getTextParagraphs();
+ assertEquals(3, textParass.size());
+ assertEquals("Bulleted list\rMore bullets\rNo bullets here", HSLFTextParagraph.getRawText(textParass.get(0)));
+ assertEquals("Numbered list between two bulleted lists\rSecond numbered list item", HSLFTextParagraph.getRawText(textParass.get(1)));
+ assertEquals("Second bulleted list \u2013 should appear after numbered list\rMore bullets", HSLFTextParagraph.getRawText(textParass.get(2)));
+ assertEquals(3, textParass.get(0).size());
+ assertEquals(2, textParass.get(1).size());
+ assertEquals(2, textParass.get(2).size());
+ assertNull(textParass.get(0).get(0).getStyleTextProp9Atom());
+ assertNotNull(textParass.get(1).get(0).getStyleTextProp9Atom());
+ assertNull(textParass.get(2).get(0).getStyleTextProp9Atom());
+ final TextPFException9[] autoNumbers = textParass.get(1).get(0).getStyleTextProp9Atom().getAutoNumberTypes();
+ assertEquals(1, autoNumbers.length);
+ assertEquals(Short.valueOf((short)1), autoNumbers[0].getfBulletHasAutoNumber());
+ assertEquals(Short.valueOf((short)1), autoNumbers[0].getAutoNumberStartNumber());//Default value = 1 will be used
assertSame(AutoNumberingScheme.arabicPeriod, autoNumbersOfTextBox0[0].getAutoNumberScheme());
- int chCovered = 0;
- for (HSLFTextParagraph htp : textParass.get(1)) {
- for (HSLFTextRun htr : htp.getTextRuns()) {
- TextPropCollection textProp = htr.getCharacterStyle();
- chCovered += textProp.getCharactersCovered();
- }
- }
- assertEquals(67, chCovered);
+ int chCovered = 0;
+ for (HSLFTextParagraph htp : textParass.get(1)) {
+ for (HSLFTextRun htr : htp.getTextRuns()) {
+ TextPropCollection textProp = htr.getCharacterStyle();
+ chCovered += textProp.getCharactersCovered();
+ }
+ }
+ assertEquals(67, chCovered);
- assertTrue(textParass.get(0).get(0).isBullet());
+ assertTrue(textParass.get(0).get(0).isBullet());
- final EscherTextboxWrapper[] styleAtoms = s.getTextboxWrappers();
- assertEquals(textParass.size(), styleAtoms.length);
- checkSingleRunWrapper(43, styleAtoms[0]);
- checkSingleRunWrapper(67, styleAtoms[1]);
- }
- private void checkSingleRunWrapper(final int exceptedLength, final EscherTextboxWrapper wrapper) {
- final StyleTextPropAtom styleTextPropAtom = wrapper.getStyleTextPropAtom();
- final List<TextPropCollection> textProps = styleTextPropAtom.getCharacterStyles();
- assertEquals(1, textProps.size());
- assertEquals(exceptedLength, textProps.get(0).getCharactersCovered());
- }
+ final EscherTextboxWrapper[] styleAtoms = s.getTextboxWrappers();
+ assertEquals(textParass.size(), styleAtoms.length);
+ checkSingleRunWrapper(43, styleAtoms[0]);
+ checkSingleRunWrapper(67, styleAtoms[1]);
+ }
+ private void checkSingleRunWrapper(final int exceptedLength, final EscherTextboxWrapper wrapper) {
+ final StyleTextPropAtom styleTextPropAtom = wrapper.getStyleTextPropAtom();
+ final List<TextPropCollection> textProps = styleTextPropAtom.getCharacterStyles();
+ assertEquals(1, textProps.size());
+ assertEquals(exceptedLength, textProps.get(0).getCharactersCovered());
+ }
}
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java Sat May 22 21:37:08 2021
@@ -228,13 +228,13 @@ public final class TestPictures {
}
}
- /**
- * Test that on a party corrupt powerpoint document, which has
- * crazy pictures of type 0, we do our best.
- */
+ /**
+ * Test that on a party corrupt powerpoint document, which has
+ * crazy pictures of type 0, we do our best.
+ */
@Test
- void testZeroPictureType() throws IOException {
- try (HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("PictureTypeZero.ppt"))) {
+ void testZeroPictureType() throws IOException {
+ try (HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("PictureTypeZero.ppt"))) {
// Should still have 2 real pictures
assertEquals(2, hslf.getPictureData().size());
@@ -262,7 +262,7 @@ public final class TestPictures {
assertTrue(pdata instanceof WMF);
assertEquals(PictureType.WMF, pdata.getType());
}
- }
+ }
/**
* YK: The test is disabled because the owner asked to delete the test file from POI svn.
@@ -271,10 +271,10 @@ public final class TestPictures {
@Test
@Disabled("requires an internet connection to a 3rd party site")
// As of 2017-06-20, the file still exists at the specified URL and the test passes.
- void testZeroPictureLength() throws IOException {
+ void testZeroPictureLength() throws IOException {
// take the data from www instead of test directory
URL url = new URL("http://www.cs.sfu.ca/~anoop/courses/CMPT-882-Fall-2002/chris.ppt");
- HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(url.openStream());
+ HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(url.openStream());
/* Assume that the file could retrieved...
InputStream is;
HSLFSlideShowImpl hslf;
@@ -288,14 +288,14 @@ public final class TestPictures {
}
*/
- // Should still have 2 real pictures
- assertEquals(2, hslf.getPictureData().size());
- // Both are real pictures, both WMF
- assertEquals(PictureType.WMF, hslf.getPictureData().get(0).getType());
- assertEquals(PictureType.WMF, hslf.getPictureData().get(1).getType());
+ // Should still have 2 real pictures
+ assertEquals(2, hslf.getPictureData().size());
+ // Both are real pictures, both WMF
+ assertEquals(PictureType.WMF, hslf.getPictureData().get(0).getType());
+ assertEquals(PictureType.WMF, hslf.getPictureData().get(1).getType());
- // Now test what happens when we use the SlideShow interface
- try (HSLFSlideShow ppt = new HSLFSlideShow(hslf)) {
+ // Now test what happens when we use the SlideShow interface
+ try (HSLFSlideShow ppt = new HSLFSlideShow(hslf)) {
List<HSLFSlide> slides = ppt.getSlides();
List<HSLFPictureData> pictures = ppt.getPictureData();
assertEquals(27, slides.size());
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestReOrderingSlides.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestReOrderingSlides.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestReOrderingSlides.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestReOrderingSlides.java Sat May 22 21:37:08 2021
@@ -31,268 +31,268 @@ import org.junit.jupiter.api.Test;
* Tests that SlideShow can re-order slides properly
*/
public final class TestReOrderingSlides {
- // A SlideShow with one slide
- private HSLFSlideShowImpl hss_one;
- private HSLFSlideShow ss_one;
-
- // A SlideShow with two slides
- private HSLFSlideShowImpl hss_two;
- private HSLFSlideShow ss_two;
-
- // A SlideShow with three slides
- private HSLFSlideShowImpl hss_three;
- private HSLFSlideShow ss_three;
-
- /**
- * Create/open the slideshows
- */
- @BeforeEach
- void setUp() throws Exception {
+ // A SlideShow with one slide
+ private HSLFSlideShowImpl hss_one;
+ private HSLFSlideShow ss_one;
+
+ // A SlideShow with two slides
+ private HSLFSlideShowImpl hss_two;
+ private HSLFSlideShow ss_two;
+
+ // A SlideShow with three slides
+ private HSLFSlideShowImpl hss_three;
+ private HSLFSlideShow ss_three;
+
+ /**
+ * Create/open the slideshows
+ */
+ @BeforeEach
+ void setUp() throws Exception {
POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- hss_one = new HSLFSlideShowImpl(slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
- ss_one = new HSLFSlideShow(hss_one);
+ hss_one = new HSLFSlideShowImpl(slTests.openResourceAsStream("Single_Coloured_Page.ppt"));
+ ss_one = new HSLFSlideShow(hss_one);
- hss_two = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
- ss_two = new HSLFSlideShow(hss_two);
+ hss_two = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+ ss_two = new HSLFSlideShow(hss_two);
- hss_three = new HSLFSlideShowImpl(slTests.openResourceAsStream("incorrect_slide_order.ppt"));
- ss_three = new HSLFSlideShow(hss_three);
- }
-
- /**
- * Test that we can "re-order" a slideshow with only 1 slide on it
- */
- @Test
- void testReOrder1() throws IOException {
- // Has one slide
- assertEquals(1, ss_one.getSlides().size());
- HSLFSlide s1 = ss_one.getSlides().get(0);
-
- // Check slide 1 is as expected
- assertEquals(256, s1._getSheetNumber());
- assertEquals(3, s1._getSheetRefId());
- assertEquals(1, s1.getSlideNumber());
+ hss_three = new HSLFSlideShowImpl(slTests.openResourceAsStream("incorrect_slide_order.ppt"));
+ ss_three = new HSLFSlideShow(hss_three);
+ }
+
+ /**
+ * Test that we can "re-order" a slideshow with only 1 slide on it
+ */
+ @Test
+ void testReOrder1() throws IOException {
+ // Has one slide
+ assertEquals(1, ss_one.getSlides().size());
+ HSLFSlide s1 = ss_one.getSlides().get(0);
+
+ // Check slide 1 is as expected
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(3, s1._getSheetRefId());
+ assertEquals(1, s1.getSlideNumber());
- // Now move it to one
- ss_one.reorderSlide(1, 1);
+ // Now move it to one
+ ss_one.reorderSlide(1, 1);
- // Write out, and read back in
+ // Write out, and read back in
HSLFSlideShow ss_read = HSLFTestDataSamples.writeOutAndReadBack(ss_one);
- // Check it still has 1 slide
- assertEquals(1, ss_read.getSlides().size());
+ // Check it still has 1 slide
+ assertEquals(1, ss_read.getSlides().size());
+
+ // And check it's as expected
+ s1 = ss_read.getSlides().get(0);
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(3, s1._getSheetRefId());
+ assertEquals(1, s1.getSlideNumber());
+
+ ss_read.close();
+ }
- // And check it's as expected
- s1 = ss_read.getSlides().get(0);
- assertEquals(256, s1._getSheetNumber());
- assertEquals(3, s1._getSheetRefId());
- assertEquals(1, s1.getSlideNumber());
-
- ss_read.close();
- }
-
- /**
- * Test doing a dummy re-order on a slideshow with
- * two slides in it
- */
+ /**
+ * Test doing a dummy re-order on a slideshow with
+ * two slides in it
+ */
@Test
- void testReOrder2() throws IOException {
- // Has two slides
- assertEquals(2, ss_two.getSlides().size());
- HSLFSlide s1 = ss_two.getSlides().get(0);
- HSLFSlide s2 = ss_two.getSlides().get(1);
-
- // Check slide 1 is as expected
- assertEquals(256, s1._getSheetNumber());
- assertEquals(4, s1._getSheetRefId()); // master has notes
- assertEquals(1, s1.getSlideNumber());
- // Check slide 2 is as expected
- assertEquals(257, s2._getSheetNumber());
- assertEquals(6, s2._getSheetRefId()); // master and 1 have notes
- assertEquals(2, s2.getSlideNumber());
+ void testReOrder2() throws IOException {
+ // Has two slides
+ assertEquals(2, ss_two.getSlides().size());
+ HSLFSlide s1 = ss_two.getSlides().get(0);
+ HSLFSlide s2 = ss_two.getSlides().get(1);
+
+ // Check slide 1 is as expected
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(4, s1._getSheetRefId()); // master has notes
+ assertEquals(1, s1.getSlideNumber());
+ // Check slide 2 is as expected
+ assertEquals(257, s2._getSheetNumber());
+ assertEquals(6, s2._getSheetRefId()); // master and 1 have notes
+ assertEquals(2, s2.getSlideNumber());
- // Don't swap them around
- ss_two.reorderSlide(2, 2);
+ // Don't swap them around
+ ss_two.reorderSlide(2, 2);
- // Write out, and read back in
+ // Write out, and read back in
HSLFSlideShow ss_read = HSLFTestDataSamples.writeOutAndReadBack(ss_two);
- // Check it still has 2 slides
- assertEquals(2, ss_read.getSlides().size());
+ // Check it still has 2 slides
+ assertEquals(2, ss_read.getSlides().size());
- // And check it's as expected
- s1 = ss_read.getSlides().get(0);
- s2 = ss_read.getSlides().get(1);
- assertEquals(256, s1._getSheetNumber());
- assertEquals(4, s1._getSheetRefId());
- assertEquals(1, s1.getSlideNumber());
- assertEquals(257, s2._getSheetNumber());
- assertEquals(6, s2._getSheetRefId());
- assertEquals(2, s2.getSlideNumber());
+ // And check it's as expected
+ s1 = ss_read.getSlides().get(0);
+ s2 = ss_read.getSlides().get(1);
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(4, s1._getSheetRefId());
+ assertEquals(1, s1.getSlideNumber());
+ assertEquals(257, s2._getSheetNumber());
+ assertEquals(6, s2._getSheetRefId());
+ assertEquals(2, s2.getSlideNumber());
ss_read.close();
}
- /**
- * Test re-ordering slides in a slideshow with 2 slides on it
- */
+ /**
+ * Test re-ordering slides in a slideshow with 2 slides on it
+ */
@Test
- void testReOrder2swap() throws IOException {
- // Has two slides
- assertEquals(2, ss_two.getSlides().size());
- HSLFSlide s1 = ss_two.getSlides().get(0);
- HSLFSlide s2 = ss_two.getSlides().get(1);
-
- // Check slide 1 is as expected
- assertEquals(256, s1._getSheetNumber());
- assertEquals(4, s1._getSheetRefId()); // master has notes
- assertEquals(1, s1.getSlideNumber());
- // Check slide 2 is as expected
- assertEquals(257, s2._getSheetNumber());
- assertEquals(6, s2._getSheetRefId()); // master and 1 have notes
- assertEquals(2, s2.getSlideNumber());
+ void testReOrder2swap() throws IOException {
+ // Has two slides
+ assertEquals(2, ss_two.getSlides().size());
+ HSLFSlide s1 = ss_two.getSlides().get(0);
+ HSLFSlide s2 = ss_two.getSlides().get(1);
+
+ // Check slide 1 is as expected
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(4, s1._getSheetRefId()); // master has notes
+ assertEquals(1, s1.getSlideNumber());
+ // Check slide 2 is as expected
+ assertEquals(257, s2._getSheetNumber());
+ assertEquals(6, s2._getSheetRefId()); // master and 1 have notes
+ assertEquals(2, s2.getSlideNumber());
- // Swap them around
- ss_two.reorderSlide(2, 1);
+ // Swap them around
+ ss_two.reorderSlide(2, 1);
- // Write out, and read back in
+ // Write out, and read back in
HSLFSlideShow ss_read = HSLFTestDataSamples.writeOutAndReadBack(ss_two);
- // Check it still has 2 slides
- assertEquals(2, ss_read.getSlides().size());
+ // Check it still has 2 slides
+ assertEquals(2, ss_read.getSlides().size());
- // And check it's as expected
- s1 = ss_read.getSlides().get(0);
- s2 = ss_read.getSlides().get(1);
- assertEquals(257, s1._getSheetNumber());
- assertEquals(6, s1._getSheetRefId());
- assertEquals(1, s1.getSlideNumber());
- assertEquals(256, s2._getSheetNumber());
- assertEquals(4, s2._getSheetRefId());
- assertEquals(2, s2.getSlideNumber());
+ // And check it's as expected
+ s1 = ss_read.getSlides().get(0);
+ s2 = ss_read.getSlides().get(1);
+ assertEquals(257, s1._getSheetNumber());
+ assertEquals(6, s1._getSheetRefId());
+ assertEquals(1, s1.getSlideNumber());
+ assertEquals(256, s2._getSheetNumber());
+ assertEquals(4, s2._getSheetRefId());
+ assertEquals(2, s2.getSlideNumber());
- ss_read.close();
+ ss_read.close();
}
- /**
- * Test doing a dummy re-order on a slideshow with
- * three slides in it
- */
+ /**
+ * Test doing a dummy re-order on a slideshow with
+ * three slides in it
+ */
@Test
- void testReOrder3() throws IOException {
- // Has three slides
- assertEquals(3, ss_three.getSlides().size());
- HSLFSlide s1 = ss_three.getSlides().get(0);
- HSLFSlide s2 = ss_three.getSlides().get(1);
- HSLFSlide s3 = ss_three.getSlides().get(2);
-
- // Check slide 1 is as expected
- assertEquals(256, s1._getSheetNumber());
- assertEquals(3, s1._getSheetRefId()); // no notes on master
- assertEquals(1, s1.getSlideNumber());
- // Check slide 2 is as expected (was re-ordered from 3)
- assertEquals(258, s2._getSheetNumber());
- assertEquals(5, s2._getSheetRefId()); // no notes on slide
- assertEquals(2, s2.getSlideNumber());
- // Check slide 3 is as expected (was re-ordered from 2)
- assertEquals(257, s3._getSheetNumber());
- assertEquals(4, s3._getSheetRefId()); // no notes on slide
- assertEquals(3, s3.getSlideNumber());
+ void testReOrder3() throws IOException {
+ // Has three slides
+ assertEquals(3, ss_three.getSlides().size());
+ HSLFSlide s1 = ss_three.getSlides().get(0);
+ HSLFSlide s2 = ss_three.getSlides().get(1);
+ HSLFSlide s3 = ss_three.getSlides().get(2);
+
+ // Check slide 1 is as expected
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(3, s1._getSheetRefId()); // no notes on master
+ assertEquals(1, s1.getSlideNumber());
+ // Check slide 2 is as expected (was re-ordered from 3)
+ assertEquals(258, s2._getSheetNumber());
+ assertEquals(5, s2._getSheetRefId()); // no notes on slide
+ assertEquals(2, s2.getSlideNumber());
+ // Check slide 3 is as expected (was re-ordered from 2)
+ assertEquals(257, s3._getSheetNumber());
+ assertEquals(4, s3._getSheetRefId()); // no notes on slide
+ assertEquals(3, s3.getSlideNumber());
- // Don't swap them around
- ss_three.reorderSlide(2, 2);
+ // Don't swap them around
+ ss_three.reorderSlide(2, 2);
- // Write out, and read back in
+ // Write out, and read back in
HSLFSlideShow ss_read = HSLFTestDataSamples.writeOutAndReadBack(ss_three);
- // Check it still has 3 slides
- assertEquals(3, ss_read.getSlides().size());
+ // Check it still has 3 slides
+ assertEquals(3, ss_read.getSlides().size());
- // And check it's as expected
- s1 = ss_read.getSlides().get(0);
- s2 = ss_read.getSlides().get(1);
- s3 = ss_read.getSlides().get(2);
-
- assertEquals(256, s1._getSheetNumber());
- assertEquals(3, s1._getSheetRefId());
- assertEquals(1, s1.getSlideNumber());
- assertEquals(258, s2._getSheetNumber());
- assertEquals(5, s2._getSheetRefId());
- assertEquals(2, s2.getSlideNumber());
- assertEquals(257, s3._getSheetNumber());
- assertEquals(4, s3._getSheetRefId());
- assertEquals(3, s3.getSlideNumber());
+ // And check it's as expected
+ s1 = ss_read.getSlides().get(0);
+ s2 = ss_read.getSlides().get(1);
+ s3 = ss_read.getSlides().get(2);
+
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(3, s1._getSheetRefId());
+ assertEquals(1, s1.getSlideNumber());
+ assertEquals(258, s2._getSheetNumber());
+ assertEquals(5, s2._getSheetRefId());
+ assertEquals(2, s2.getSlideNumber());
+ assertEquals(257, s3._getSheetNumber());
+ assertEquals(4, s3._getSheetRefId());
+ assertEquals(3, s3.getSlideNumber());
ss_read.close();
}
- /**
- * Test re-ordering slides in a slideshow with 3 slides on it
- */
+ /**
+ * Test re-ordering slides in a slideshow with 3 slides on it
+ */
@Test
- void testReOrder3swap() throws IOException {
- // Has three slides
- assertEquals(3, ss_three.getSlides().size());
- HSLFSlide s1 = ss_three.getSlides().get(0);
- HSLFSlide s2 = ss_three.getSlides().get(1);
- HSLFSlide s3 = ss_three.getSlides().get(2);
-
- // Check slide 1 is as expected
- assertEquals(256, s1._getSheetNumber());
- assertEquals(3, s1._getSheetRefId()); // no notes on master
- assertEquals(1, s1.getSlideNumber());
- // Check slide 2 is as expected (was re-ordered from 3)
- assertEquals(258, s2._getSheetNumber());
- assertEquals(5, s2._getSheetRefId()); // no notes on slide
- assertEquals(2, s2.getSlideNumber());
- // Check slide 3 is as expected (was re-ordered from 2)
- assertEquals(257, s3._getSheetNumber());
- assertEquals(4, s3._getSheetRefId()); // no notes on slide
- assertEquals(3, s3.getSlideNumber());
-
- // Put 3 in place of 1
- // (1 -> 2, 2 -> 3)
- ss_three.reorderSlide(3, 1);
+ void testReOrder3swap() throws IOException {
+ // Has three slides
+ assertEquals(3, ss_three.getSlides().size());
+ HSLFSlide s1 = ss_three.getSlides().get(0);
+ HSLFSlide s2 = ss_three.getSlides().get(1);
+ HSLFSlide s3 = ss_three.getSlides().get(2);
+
+ // Check slide 1 is as expected
+ assertEquals(256, s1._getSheetNumber());
+ assertEquals(3, s1._getSheetRefId()); // no notes on master
+ assertEquals(1, s1.getSlideNumber());
+ // Check slide 2 is as expected (was re-ordered from 3)
+ assertEquals(258, s2._getSheetNumber());
+ assertEquals(5, s2._getSheetRefId()); // no notes on slide
+ assertEquals(2, s2.getSlideNumber());
+ // Check slide 3 is as expected (was re-ordered from 2)
+ assertEquals(257, s3._getSheetNumber());
+ assertEquals(4, s3._getSheetRefId()); // no notes on slide
+ assertEquals(3, s3.getSlideNumber());
- // refresh the slides
- s1 = ss_three.getSlides().get(0);
+ // Put 3 in place of 1
+ // (1 -> 2, 2 -> 3)
+ ss_three.reorderSlide(3, 1);
+
+ // refresh the slides
+ s1 = ss_three.getSlides().get(0);
s2 = ss_three.getSlides().get(1);
s3 = ss_three.getSlides().get(2);
- assertEquals(1, s1.getSlideNumber());
+ assertEquals(1, s1.getSlideNumber());
assertEquals(2, s2.getSlideNumber());
assertEquals(3, s3.getSlideNumber());
assertEquals("Slide 3", ((HSLFTextShape)s1.getShapes().get(0)).getText());
assertEquals("Slide 1", ((HSLFTextShape)s3.getShapes().get(0)).getText());
- // Write out, and read back in
+ // Write out, and read back in
HSLFSlideShow ss_read = HSLFTestDataSamples.writeOutAndReadBack(ss_three);
- // Check it still has 3 slides
- assertEquals(3, ss_read.getSlides().size());
+ // Check it still has 3 slides
+ assertEquals(3, ss_read.getSlides().size());
- // And check it's as expected
- HSLFSlide _s1 = ss_read.getSlides().get(0);
- HSLFSlide _s2 = ss_read.getSlides().get(1);
- HSLFSlide _s3 = ss_read.getSlides().get(2);
+ // And check it's as expected
+ HSLFSlide _s1 = ss_read.getSlides().get(0);
+ HSLFSlide _s2 = ss_read.getSlides().get(1);
+ HSLFSlide _s3 = ss_read.getSlides().get(2);
// 1 --> 3
assertEquals(s1._getSheetNumber(), _s1._getSheetNumber());
- assertEquals(s1._getSheetRefId(), _s1._getSheetRefId());
- assertEquals(1, s1.getSlideNumber());
+ assertEquals(s1._getSheetRefId(), _s1._getSheetRefId());
+ assertEquals(1, s1.getSlideNumber());
// 2nd slide is not updated
assertEquals(s2._getSheetNumber(), _s2._getSheetNumber());
assertEquals(s2._getSheetRefId(), _s2._getSheetRefId());
- assertEquals(2, s2.getSlideNumber());
+ assertEquals(2, s2.getSlideNumber());
// 3 --> 1
assertEquals(s3._getSheetNumber(), _s3._getSheetNumber());
assertEquals(s3._getSheetRefId(), _s3._getSheetRefId());
- assertEquals(3, s3.getSlideNumber());
+ assertEquals(3, s3.getSlideNumber());
- ss_read.close();
- }
+ ss_read.close();
+ }
}
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRecordSetup.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRecordSetup.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRecordSetup.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRecordSetup.java Sat May 22 21:37:08 2021
@@ -30,36 +30,36 @@ import org.junit.jupiter.api.Test;
* Note: most recent record stuff has its own test
*/
public final class TestRecordSetup {
- // SlideShow primed on the test data
- @SuppressWarnings("unused")
+ // SlideShow primed on the test data
+ @SuppressWarnings("unused")
private HSLFSlideShow ss;
- private HSLFSlideShowImpl hss;
+ private HSLFSlideShowImpl hss;
- @BeforeEach
- void init() throws Exception {
+ @BeforeEach
+ void init() throws Exception {
POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
- ss = new HSLFSlideShow(hss);
- }
+ hss = new HSLFSlideShowImpl(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+ ss = new HSLFSlideShow(hss);
+ }
- @Test
- void testHandleParentAwareRecords() {
- org.apache.poi.hslf.record.Record[] records = hss.getRecords();
- for ( org.apache.poi.hslf.record.Record record : records) {
- ensureParentAware(record,null);
- }
- }
- private void ensureParentAware( org.apache.poi.hslf.record.Record r,RecordContainer parent) {
- if(r instanceof ParentAwareRecord) {
- ParentAwareRecord pr = (ParentAwareRecord)r;
- assertEquals(parent, pr.getParentRecord());
- }
- if(r instanceof RecordContainer) {
- RecordContainer rc = (RecordContainer)r;
- org.apache.poi.hslf.record.Record[] children = rc.getChildRecords();
- for ( org.apache.poi.hslf.record.Record rec : children) {
- ensureParentAware(rec, rc);
- }
- }
- }
+ @Test
+ void testHandleParentAwareRecords() {
+ org.apache.poi.hslf.record.Record[] records = hss.getRecords();
+ for ( org.apache.poi.hslf.record.Record record : records) {
+ ensureParentAware(record,null);
+ }
+ }
+ private void ensureParentAware( org.apache.poi.hslf.record.Record r,RecordContainer parent) {
+ if(r instanceof ParentAwareRecord) {
+ ParentAwareRecord pr = (ParentAwareRecord)r;
+ assertEquals(parent, pr.getParentRecord());
+ }
+ if(r instanceof RecordContainer) {
+ RecordContainer rc = (RecordContainer)r;
+ org.apache.poi.hslf.record.Record[] children = rc.getChildRecords();
+ for ( org.apache.poi.hslf.record.Record rec : children) {
+ ensureParentAware(rec, rc);
+ }
+ }
+ }
}
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRichTextRun.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRichTextRun.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRichTextRun.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRichTextRun.java Sat May 22 21:37:08 2021
@@ -81,554 +81,554 @@ public final class TestRichTextRun {
ssChinese.close();
}
- /**
- * Test the stuff about getting/setting bold
- * on a non rich text run
- */
- @Test
- void testBoldNonRich() {
- HSLFSlide slideOne = ss.getSlides().get(0);
- List<List<HSLFTextParagraph>> textParass = slideOne.getTextParagraphs();
- List<HSLFTextParagraph> textParas = textParass.get(0);
- HSLFTextRun rtr = textParas.get(0).getTextRuns().get(0);
-
- assertNotNull(rtr.getCharacterStyle());
- assertNotNull(textParas.get(0).getParagraphStyle());
- assertFalse(rtr.isBold());
-
- // Now set it to not bold
- rtr.setBold(false);
- // in Pre 3.12: setting bold=false doesn't change the internal state
- // now: also allow explicitly disable styles and there aren't any non rich text runs anymore
- assertNotNull(rtr.getCharacterStyle());
- assertNotNull(textParas.get(0).getParagraphStyle());
-
- assertFalse(rtr.isBold());
-
- // And now make it bold
- rtr.setBold(true);
- assertNotNull(rtr.getCharacterStyle());
+ /**
+ * Test the stuff about getting/setting bold
+ * on a non rich text run
+ */
+ @Test
+ void testBoldNonRich() {
+ HSLFSlide slideOne = ss.getSlides().get(0);
+ List<List<HSLFTextParagraph>> textParass = slideOne.getTextParagraphs();
+ List<HSLFTextParagraph> textParas = textParass.get(0);
+ HSLFTextRun rtr = textParas.get(0).getTextRuns().get(0);
+
+ assertNotNull(rtr.getCharacterStyle());
+ assertNotNull(textParas.get(0).getParagraphStyle());
+ assertFalse(rtr.isBold());
+
+ // Now set it to not bold
+ rtr.setBold(false);
+ // in Pre 3.12: setting bold=false doesn't change the internal state
+ // now: also allow explicitly disable styles and there aren't any non rich text runs anymore
+ assertNotNull(rtr.getCharacterStyle());
+ assertNotNull(textParas.get(0).getParagraphStyle());
+
+ assertFalse(rtr.isBold());
+
+ // And now make it bold
+ rtr.setBold(true);
+ assertNotNull(rtr.getCharacterStyle());
assertNotNull(textParas.get(0).getParagraphStyle());
- assertTrue(rtr.isBold());
- }
+ assertTrue(rtr.isBold());
+ }
+
+ /**
+ * Test the stuff about getting/setting bold
+ * on a rich text run
+ */
+ @Test
+ void testBoldRich() {
+ HSLFSlide slideOneR = ssRichA.getSlides().get(0);
+ List<List<HSLFTextParagraph>> textParass = slideOneR.getTextParagraphs();
+ List<HSLFTextParagraph> textParas = textParass.get(1);
+ assertEquals(3, textParas.size());
+
+ assertTrue(textParas.get(0).getTextRuns().get(0).isBold());
+ assertFalse(textParas.get(1).getTextRuns().get(0).isBold());
+ assertFalse(textParas.get(2).getTextRuns().get(0).isBold());
+
+ textParas.get(0).getTextRuns().get(0).setBold(true);
+ textParas.get(1).getTextRuns().get(0).setBold(true);
+
+ assertTrue(textParas.get(0).getTextRuns().get(0).isBold());
+ assertTrue(textParas.get(1).getTextRuns().get(0).isBold());
+
+ textParas.get(0).getTextRuns().get(0).setBold(false);
+ textParas.get(1).getTextRuns().get(0).setBold(false);
+
+ assertFalse(textParas.get(0).getTextRuns().get(0).isBold());
+ assertFalse(textParas.get(1).getTextRuns().get(0).isBold());
+ }
- /**
- * Test the stuff about getting/setting bold
- * on a rich text run
- */
- @Test
- void testBoldRich() {
- HSLFSlide slideOneR = ssRichA.getSlides().get(0);
- List<List<HSLFTextParagraph>> textParass = slideOneR.getTextParagraphs();
- List<HSLFTextParagraph> textParas = textParass.get(1);
- assertEquals(3, textParas.size());
-
- assertTrue(textParas.get(0).getTextRuns().get(0).isBold());
- assertFalse(textParas.get(1).getTextRuns().get(0).isBold());
- assertFalse(textParas.get(2).getTextRuns().get(0).isBold());
-
- textParas.get(0).getTextRuns().get(0).setBold(true);
- textParas.get(1).getTextRuns().get(0).setBold(true);
-
- assertTrue(textParas.get(0).getTextRuns().get(0).isBold());
- assertTrue(textParas.get(1).getTextRuns().get(0).isBold());
-
- textParas.get(0).getTextRuns().get(0).setBold(false);
- textParas.get(1).getTextRuns().get(0).setBold(false);
-
- assertFalse(textParas.get(0).getTextRuns().get(0).isBold());
- assertFalse(textParas.get(1).getTextRuns().get(0).isBold());
- }
-
- /**
- * Tests getting and setting the font size on rich and non
- * rich text runs
- */
- @Test
- void testFontSize() {
-
- HSLFSlide slideOne = ss.getSlides().get(0);
- List<List<HSLFTextParagraph>> textParass = slideOne.getTextParagraphs();
- HSLFTextRun rtr = textParass.get(0).get(0).getTextRuns().get(0);
-
- HSLFSlide slideOneR = ssRichB.getSlides().get(0);
- List<List<HSLFTextParagraph>> textParassR = slideOneR.getTextParagraphs();
- HSLFTextRun rtrRa = textParassR.get(0).get(0).getTextRuns().get(0);
- HSLFTextRun rtrRb = textParassR.get(1).get(0).getTextRuns().get(0);
- HSLFTextRun rtrRc = textParassR.get(1).get(3).getTextRuns().get(0);
-
- String defaultFont = "Arial";
-
- // Start off with rich one
- // First run has defaults
- assertNotNull(rtrRa.getFontSize());
- assertEquals(44, rtrRa.getFontSize(), 0);
- assertEquals(defaultFont, rtrRa.getFontFamily());
-
- // Second is size 20, default font
- assertNotNull(rtrRb.getFontSize());
- assertEquals(20, rtrRb.getFontSize(), 0);
- assertEquals(defaultFont, rtrRb.getFontFamily());
- // Third is size 24, alt font
- assertNotNull(rtrRc.getFontSize());
- assertEquals(24, rtrRc.getFontSize(), 0);
- assertEquals("Times New Roman", rtrRc.getFontFamily());
-
- // Change 2nd to different size and font
- assertEquals(2, ssRichB.getFontCollection().getChildRecords().length); // Default + TNR
- rtrRb.setFontSize(18d);
- rtrRb.setFontFamily("Courier");
- assertEquals(3, ssRichB.getFontCollection().getChildRecords().length); // Default + TNR + Courier
- assertEquals(18, rtrRb.getFontSize(), 0);
- assertEquals("Courier", rtrRb.getFontFamily());
-
-
- // Now do non rich one
- assertNotNull(rtr.getFontSize());
- assertEquals(44, rtr.getFontSize(), 0);
- assertEquals(defaultFont, rtr.getFontFamily());
- assertEquals(1, ss.getFontCollection().getChildRecords().length); // Default
- assertNotNull(rtr.getCharacterStyle());
- assertNotNull(rtr.getTextParagraph().getParagraphStyle());
-
- // Change Font size
- rtr.setFontSize(99d);
- assertEquals(99, rtr.getFontSize(), 0);
- assertEquals(defaultFont, rtr.getFontFamily());
- assertNotNull(rtr.getCharacterStyle());
- assertNotNull(rtr.getTextParagraph().getParagraphStyle());
- assertEquals(1, ss.getFontCollection().getChildRecords().length); // Default
-
- // Change Font size and name
- rtr.setFontSize(25d);
- rtr.setFontFamily("Times New Roman");
- assertEquals(25, rtr.getFontSize(), 0);
- assertEquals("Times New Roman", rtr.getFontFamily());
- assertNotNull(rtr.getCharacterStyle());
- assertNotNull(rtr.getTextParagraph().getParagraphStyle());
- assertEquals(2, ss.getFontCollection().getChildRecords().length);
- }
-
- @Test
- void testChangeWriteRead() throws IOException {
- for(HSLFSlideShow h : new HSLFSlideShow[] { ss, ssRichA, ssRichB }) {
- // Change
- HSLFSlide slideOne = h.getSlides().get(0);
- List<List<HSLFTextParagraph>> textParass = slideOne.getTextParagraphs();
- HSLFTextRun rtr = textParass.get(0).get(0).getTextRuns().get(0);
-
- rtr.setBold(true);
- rtr.setFontSize(18d);
- rtr.setFontFamily("Courier");
+ /**
+ * Tests getting and setting the font size on rich and non
+ * rich text runs
+ */
+ @Test
+ void testFontSize() {
+
+ HSLFSlide slideOne = ss.getSlides().get(0);
+ List<List<HSLFTextParagraph>> textParass = slideOne.getTextParagraphs();
+ HSLFTextRun rtr = textParass.get(0).get(0).getTextRuns().get(0);
+
+ HSLFSlide slideOneR = ssRichB.getSlides().get(0);
+ List<List<HSLFTextParagraph>> textParassR = slideOneR.getTextParagraphs();
+ HSLFTextRun rtrRa = textParassR.get(0).get(0).getTextRuns().get(0);
+ HSLFTextRun rtrRb = textParassR.get(1).get(0).getTextRuns().get(0);
+ HSLFTextRun rtrRc = textParassR.get(1).get(3).getTextRuns().get(0);
+
+ String defaultFont = "Arial";
+
+ // Start off with rich one
+ // First run has defaults
+ assertNotNull(rtrRa.getFontSize());
+ assertEquals(44, rtrRa.getFontSize(), 0);
+ assertEquals(defaultFont, rtrRa.getFontFamily());
+
+ // Second is size 20, default font
+ assertNotNull(rtrRb.getFontSize());
+ assertEquals(20, rtrRb.getFontSize(), 0);
+ assertEquals(defaultFont, rtrRb.getFontFamily());
+ // Third is size 24, alt font
+ assertNotNull(rtrRc.getFontSize());
+ assertEquals(24, rtrRc.getFontSize(), 0);
+ assertEquals("Times New Roman", rtrRc.getFontFamily());
+
+ // Change 2nd to different size and font
+ assertEquals(2, ssRichB.getFontCollection().getChildRecords().length); // Default + TNR
+ rtrRb.setFontSize(18d);
+ rtrRb.setFontFamily("Courier");
+ assertEquals(3, ssRichB.getFontCollection().getChildRecords().length); // Default + TNR + Courier
+ assertEquals(18, rtrRb.getFontSize(), 0);
+ assertEquals("Courier", rtrRb.getFontFamily());
+
+
+ // Now do non rich one
+ assertNotNull(rtr.getFontSize());
+ assertEquals(44, rtr.getFontSize(), 0);
+ assertEquals(defaultFont, rtr.getFontFamily());
+ assertEquals(1, ss.getFontCollection().getChildRecords().length); // Default
+ assertNotNull(rtr.getCharacterStyle());
+ assertNotNull(rtr.getTextParagraph().getParagraphStyle());
+
+ // Change Font size
+ rtr.setFontSize(99d);
+ assertEquals(99, rtr.getFontSize(), 0);
+ assertEquals(defaultFont, rtr.getFontFamily());
+ assertNotNull(rtr.getCharacterStyle());
+ assertNotNull(rtr.getTextParagraph().getParagraphStyle());
+ assertEquals(1, ss.getFontCollection().getChildRecords().length); // Default
+
+ // Change Font size and name
+ rtr.setFontSize(25d);
+ rtr.setFontFamily("Times New Roman");
+ assertEquals(25, rtr.getFontSize(), 0);
+ assertEquals("Times New Roman", rtr.getFontFamily());
+ assertNotNull(rtr.getCharacterStyle());
+ assertNotNull(rtr.getTextParagraph().getParagraphStyle());
+ assertEquals(2, ss.getFontCollection().getChildRecords().length);
+ }
+
+ @Test
+ void testChangeWriteRead() throws IOException {
+ for(HSLFSlideShow h : new HSLFSlideShow[] { ss, ssRichA, ssRichB }) {
+ // Change
+ HSLFSlide slideOne = h.getSlides().get(0);
+ List<List<HSLFTextParagraph>> textParass = slideOne.getTextParagraphs();
+ HSLFTextRun rtr = textParass.get(0).get(0).getTextRuns().get(0);
+
+ rtr.setBold(true);
+ rtr.setFontSize(18d);
+ rtr.setFontFamily("Courier");
HSLFTextParagraph.storeText(textParass.get(0));
- // Check it took those
- assertTrue(rtr.isBold());
- assertNotNull(rtr.getFontSize());
- assertEquals(18., rtr.getFontSize(), 0);
- assertEquals("Courier", rtr.getFontFamily());
-
- // Write out and back in
- try (HSLFSlideShow readS = HSLFTestDataSamples.writeOutAndReadBack(h)) {
-
- // Tweak existing one again, to ensure really worked
- rtr.setBold(false);
- rtr.setFontSize(17d);
- rtr.setFontFamily("CourierZZ");
-
- // Check it took those changes
- assertFalse(rtr.isBold());
- assertEquals(17., rtr.getFontSize(), 0);
- assertEquals("CourierZZ", rtr.getFontFamily());
-
-
- // Now, look at the one we changed, wrote out, and read back in
- // Ensure it does contain our original modifications
- HSLFSlide slideOneRR = readS.getSlides().get(0);
- List<List<HSLFTextParagraph>> textParassRR = slideOneRR.getTextParagraphs();
- HSLFTextRun rtrRRa = textParassRR.get(0).get(0).getTextRuns().get(0);
-
- assertTrue(rtrRRa.isBold());
- assertNotNull(rtrRRa.getFontSize());
- assertEquals(18., rtrRRa.getFontSize(), 0);
- assertEquals("Courier", rtrRRa.getFontFamily());
- }
- }
- }
-
- /**
- * Test that we can do the right things when the paragraph styles
- * run out before the character styles do
- */
- @Test
- void testParagraphStylesShorterTheCharStyles() {
- // Check we have the right number of sheets
- List<HSLFSlide> slides = ssRichC.getSlides();
- assertEquals(14, slides.size());
-
- // Check the number of text runs on interesting sheets
- HSLFSlide slideThreeC = ssRichC.getSlides().get(2);
- HSLFSlide slideSevenC = ssRichC.getSlides().get(6);
- assertEquals(4, slideThreeC.getTextParagraphs().size());
- assertEquals(5, slideSevenC.getTextParagraphs().size());
-
- // On slide three, we should have:
- // TR:
- // You are an important supplier of various items that I need
- // .
- // TR:
- // Source: Internal focus groups
- // TR:
- // Illustrative Example
- // .
+ // Check it took those
+ assertTrue(rtr.isBold());
+ assertNotNull(rtr.getFontSize());
+ assertEquals(18., rtr.getFontSize(), 0);
+ assertEquals("Courier", rtr.getFontFamily());
+
+ // Write out and back in
+ try (HSLFSlideShow readS = HSLFTestDataSamples.writeOutAndReadBack(h)) {
+
+ // Tweak existing one again, to ensure really worked
+ rtr.setBold(false);
+ rtr.setFontSize(17d);
+ rtr.setFontFamily("CourierZZ");
+
+ // Check it took those changes
+ assertFalse(rtr.isBold());
+ assertEquals(17., rtr.getFontSize(), 0);
+ assertEquals("CourierZZ", rtr.getFontFamily());
+
+
+ // Now, look at the one we changed, wrote out, and read back in
+ // Ensure it does contain our original modifications
+ HSLFSlide slideOneRR = readS.getSlides().get(0);
+ List<List<HSLFTextParagraph>> textParassRR = slideOneRR.getTextParagraphs();
+ HSLFTextRun rtrRRa = textParassRR.get(0).get(0).getTextRuns().get(0);
+
+ assertTrue(rtrRRa.isBold());
+ assertNotNull(rtrRRa.getFontSize());
+ assertEquals(18., rtrRRa.getFontSize(), 0);
+ assertEquals("Courier", rtrRRa.getFontFamily());
+ }
+ }
+ }
+
+ /**
+ * Test that we can do the right things when the paragraph styles
+ * run out before the character styles do
+ */
+ @Test
+ void testParagraphStylesShorterTheCharStyles() {
+ // Check we have the right number of sheets
+ List<HSLFSlide> slides = ssRichC.getSlides();
+ assertEquals(14, slides.size());
+
+ // Check the number of text runs on interesting sheets
+ HSLFSlide slideThreeC = ssRichC.getSlides().get(2);
+ HSLFSlide slideSevenC = ssRichC.getSlides().get(6);
+ assertEquals(4, slideThreeC.getTextParagraphs().size());
+ assertEquals(5, slideSevenC.getTextParagraphs().size());
+
+ // On slide three, we should have:
+ // TR:
+ // You are an important supplier of various items that I need
+ // .
+ // TR:
+ // Source: Internal focus groups
+ // TR:
+ // Illustrative Example
+ // .
List<List<HSLFTextParagraph>> s3tr = slideThreeC.getTextParagraphs();
- List<HSLFTextRun> s3rtr0 = s3tr.get(0).get(0).getTextRuns();
- List<HSLFTextRun> s3rtr1 = s3tr.get(2).get(0).getTextRuns();
- List<HSLFTextRun> s3rtr2 = s3tr.get(3).get(0).getTextRuns();
-
- assertEquals(2, s3rtr0.size());
- assertEquals(1, s3rtr1.size());
- assertEquals(2, s3rtr2.size());
-
- assertEquals("You are an important supplier of various items that I need", s3rtr0.get(0).getRawText());
- assertEquals("", s3rtr0.get(1).getRawText());
- assertEquals("Source: Internal focus groups", s3rtr1.get(0).getRawText());
- assertEquals("Illustrative Example", s3rtr2.get(0).getRawText());
- assertEquals("", s3rtr2.get(1).getRawText());
-
- // On slide seven, we have:
- // TR:
- // (text)
- // TR:
- // <ps>(text a)</ps><ps>(text a)(text b)</ps>
- // TR:
- // (text)
- List<List<HSLFTextParagraph>> s7tr = slideSevenC.getTextParagraphs();
- List<HSLFTextParagraph> s7rtr0 = s7tr.get(0);
- List<HSLFTextParagraph> s7rtr1 = s7tr.get(1);
- List<HSLFTextParagraph> s7rtr2 = s7tr.get(2);
-
- assertEquals(1, s7rtr0.size());
- assertEquals(8, s7rtr1.size());
- assertEquals(1, s7rtr2.size());
- }
-
- /**
- * Test that we can do the right things when the paragraph styles
- * run out before the character styles do, when we tweak something
- * and write back out.
- */
+ List<HSLFTextRun> s3rtr0 = s3tr.get(0).get(0).getTextRuns();
+ List<HSLFTextRun> s3rtr1 = s3tr.get(2).get(0).getTextRuns();
+ List<HSLFTextRun> s3rtr2 = s3tr.get(3).get(0).getTextRuns();
+
+ assertEquals(2, s3rtr0.size());
+ assertEquals(1, s3rtr1.size());
+ assertEquals(2, s3rtr2.size());
+
+ assertEquals("You are an important supplier of various items that I need", s3rtr0.get(0).getRawText());
+ assertEquals("", s3rtr0.get(1).getRawText());
+ assertEquals("Source: Internal focus groups", s3rtr1.get(0).getRawText());
+ assertEquals("Illustrative Example", s3rtr2.get(0).getRawText());
+ assertEquals("", s3rtr2.get(1).getRawText());
+
+ // On slide seven, we have:
+ // TR:
+ // (text)
+ // TR:
+ // <ps>(text a)</ps><ps>(text a)(text b)</ps>
+ // TR:
+ // (text)
+ List<List<HSLFTextParagraph>> s7tr = slideSevenC.getTextParagraphs();
+ List<HSLFTextParagraph> s7rtr0 = s7tr.get(0);
+ List<HSLFTextParagraph> s7rtr1 = s7tr.get(1);
+ List<HSLFTextParagraph> s7rtr2 = s7tr.get(2);
+
+ assertEquals(1, s7rtr0.size());
+ assertEquals(8, s7rtr1.size());
+ assertEquals(1, s7rtr2.size());
+ }
+
+ /**
+ * Test that we can do the right things when the paragraph styles
+ * run out before the character styles do, when we tweak something
+ * and write back out.
+ */
@Test
- @SuppressWarnings("unused")
+ @SuppressWarnings("unused")
void testParagraphStylesShorterTheCharStylesWrite() throws IOException {
- assertMatchesSLTWC(ssRichC);
- assertMatchesFileC(ssRichC);
+ assertMatchesSLTWC(ssRichC);
+ assertMatchesFileC(ssRichC);
+
+ HSLFSlide slideSevenC = ssRichC.getSlides().get(6);
+ List<List<HSLFTextParagraph>> s7tr = slideSevenC.getTextParagraphs();
+ List<HSLFTextRun> s7rtr0 = s7tr.get(0).get(0).getTextRuns();
+ List<HSLFTextRun> s7rtr1 = s7tr.get(1).get(0).getTextRuns();
+ List<HSLFTextRun> s7rtr2 = s7tr.get(2).get(0).getTextRuns();
+
+ String oldText;
+
+ // Reset the text on the last run
+ // Need to ensure it's a run that really has styles!
+ oldText = s7rtr2.get(0).getRawText();
+ s7rtr2.get(0).setText( oldText );
+ HSLFTextParagraph.storeText(s7tr.get(2));
+ assertEquals(oldText, s7rtr2.get(0).getRawText());
+ assertEquals(oldText, HSLFTextParagraph.getRawText(s7tr.get(2)));
+ assertEquals(oldText.length() + 1, s7rtr2.get(0).getCharacterStyle().getCharactersCovered());
+ assertEquals(oldText.length() + 1, s7rtr2.get(0).getTextParagraph().getParagraphStyle().getCharactersCovered());
+ assertMatchesSLTWC(ssRichC);
+ assertMatchesFileC(ssRichC);
+
+ // Reset the text on a shared paragraph
+ oldText = s7rtr1.get(0).getRawText();
+ s7rtr1.get(0).setText( oldText );
+ HSLFTextParagraph.storeText(s7tr.get(1));
+ assertEquals(oldText, s7rtr1.get(0).getRawText());
+ assertEquals(oldText.length(), s7rtr1.get(0).getCharacterStyle().getCharactersCovered());
+ assertMatchesSLTWC(ssRichC);
+ assertMatchesFileC(ssRichC);
- HSLFSlide slideSevenC = ssRichC.getSlides().get(6);
- List<List<HSLFTextParagraph>> s7tr = slideSevenC.getTextParagraphs();
- List<HSLFTextRun> s7rtr0 = s7tr.get(0).get(0).getTextRuns();
- List<HSLFTextRun> s7rtr1 = s7tr.get(1).get(0).getTextRuns();
- List<HSLFTextRun> s7rtr2 = s7tr.get(2).get(0).getTextRuns();
-
- String oldText;
-
- // Reset the text on the last run
- // Need to ensure it's a run that really has styles!
- oldText = s7rtr2.get(0).getRawText();
- s7rtr2.get(0).setText( oldText );
- HSLFTextParagraph.storeText(s7tr.get(2));
- assertEquals(oldText, s7rtr2.get(0).getRawText());
- assertEquals(oldText, HSLFTextParagraph.getRawText(s7tr.get(2)));
- assertEquals(oldText.length() + 1, s7rtr2.get(0).getCharacterStyle().getCharactersCovered());
- assertEquals(oldText.length() + 1, s7rtr2.get(0).getTextParagraph().getParagraphStyle().getCharactersCovered());
- assertMatchesSLTWC(ssRichC);
- assertMatchesFileC(ssRichC);
-
- // Reset the text on a shared paragraph
- oldText = s7rtr1.get(0).getRawText();
- s7rtr1.get(0).setText( oldText );
+ // Reset the text on a shared paragraph+character
+ s7rtr1.get(0).setText( s7rtr1.get(0).getRawText() );
HSLFTextParagraph.storeText(s7tr.get(1));
- assertEquals(oldText, s7rtr1.get(0).getRawText());
- assertEquals(oldText.length(), s7rtr1.get(0).getCharacterStyle().getCharactersCovered());
- assertMatchesSLTWC(ssRichC);
- assertMatchesFileC(ssRichC);
-
- // Reset the text on a shared paragraph+character
- s7rtr1.get(0).setText( s7rtr1.get(0).getRawText() );
- HSLFTextParagraph.storeText(s7tr.get(1));
- assertMatchesSLTWC(ssRichC);
- assertMatchesFileC(ssRichC);
- }
-
- /**
- * Opens a new copy of SlideShow C, writes the active
- * SlideListWithText out, and compares it to the write
- * out of the supplied SlideShow. Also compares the
- * contents.
- */
- private void assertMatchesSLTWC(HSLFSlideShow s) throws IOException {
- // Grab a new copy of slideshow C
- try (HSLFSlideShow refC = HSLFTestDataSamples.getSlideShow(filenameC)) {
-
- // Write out the 2nd SLWT in the active document
- SlideListWithText refSLWT = refC.getDocumentRecord().getSlideListWithTexts()[1];
- byte[] raw_slwt = writeRecord(refSLWT);
-
- // Write out the same for the supplied slideshow
- SlideListWithText s_SLWT = s.getDocumentRecord().getSlideListWithTexts()[1];
- byte[] s_slwt = writeRecord(s_SLWT);
-
- // Check the records are the same
- assertEquals(refSLWT.getChildRecords().length, s_SLWT.getChildRecords().length);
- for (int i = 0; i < refSLWT.getChildRecords().length; i++) {
- Record ref_r = refSLWT.getChildRecords()[i];
- Record s_r = s_SLWT.getChildRecords()[i];
-
- byte[] r_rb = writeRecord(ref_r);
- byte[] s_rb = writeRecord(s_r);
- assertArrayEquals(r_rb, s_rb);
- }
-
- // Check the bytes are the same
- assertArrayEquals(raw_slwt, s_slwt);
- }
- }
-
- /**
- * Checks that the supplied slideshow still matches the bytes
- * of slideshow c
- */
- private static void assertMatchesFileC(HSLFSlideShow s) throws IOException {
- // Grab the bytes of the file
- byte[] raw_file;
- try (POIFSFileSystem fs = new POIFSFileSystem(HSLFTestDataSamples.openSampleFileStream(filenameC));
- InputStream is = fs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT)) {
- raw_file = IOUtils.toByteArray(is);
- }
+ assertMatchesSLTWC(ssRichC);
+ assertMatchesFileC(ssRichC);
+ }
+
+ /**
+ * Opens a new copy of SlideShow C, writes the active
+ * SlideListWithText out, and compares it to the write
+ * out of the supplied SlideShow. Also compares the
+ * contents.
+ */
+ private void assertMatchesSLTWC(HSLFSlideShow s) throws IOException {
+ // Grab a new copy of slideshow C
+ try (HSLFSlideShow refC = HSLFTestDataSamples.getSlideShow(filenameC)) {
+
+ // Write out the 2nd SLWT in the active document
+ SlideListWithText refSLWT = refC.getDocumentRecord().getSlideListWithTexts()[1];
+ byte[] raw_slwt = writeRecord(refSLWT);
+
+ // Write out the same for the supplied slideshow
+ SlideListWithText s_SLWT = s.getDocumentRecord().getSlideListWithTexts()[1];
+ byte[] s_slwt = writeRecord(s_SLWT);
+
+ // Check the records are the same
+ assertEquals(refSLWT.getChildRecords().length, s_SLWT.getChildRecords().length);
+ for (int i = 0; i < refSLWT.getChildRecords().length; i++) {
+ Record ref_r = refSLWT.getChildRecords()[i];
+ Record s_r = s_SLWT.getChildRecords()[i];
+
+ byte[] r_rb = writeRecord(ref_r);
+ byte[] s_rb = writeRecord(s_r);
+ assertArrayEquals(r_rb, s_rb);
+ }
+
+ // Check the bytes are the same
+ assertArrayEquals(raw_slwt, s_slwt);
+ }
+ }
- // Now write out the slideshow
- byte[] raw_ss;
+ /**
+ * Checks that the supplied slideshow still matches the bytes
+ * of slideshow c
+ */
+ private static void assertMatchesFileC(HSLFSlideShow s) throws IOException {
+ // Grab the bytes of the file
+ byte[] raw_file;
+ try (POIFSFileSystem fs = new POIFSFileSystem(HSLFTestDataSamples.openSampleFileStream(filenameC));
+ InputStream is = fs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT)) {
+ raw_file = IOUtils.toByteArray(is);
+ }
+
+ // Now write out the slideshow
+ byte[] raw_ss;
+ UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
+ s.write(baos);
+ try (POIFSFileSystem fs = new POIFSFileSystem(baos.toInputStream());
+ InputStream is = fs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT)) {
+ raw_ss = IOUtils.toByteArray(is);
+ }
+
+ // different paragraph mask, because of sanitizing
+ raw_ss[169030] = 0x0a;
+
+ // Ensure they're the same
+ assertArrayEquals(raw_file, raw_ss);
+ }
+
+ private byte[] writeRecord( org.apache.poi.hslf.record.Record r) throws IOException {
UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
- s.write(baos);
- try (POIFSFileSystem fs = new POIFSFileSystem(baos.toInputStream());
- InputStream is = fs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT)) {
- raw_ss = IOUtils.toByteArray(is);
- }
-
- // different paragraph mask, because of sanitizing
- raw_ss[169030] = 0x0a;
-
- // Ensure they're the same
- assertArrayEquals(raw_file, raw_ss);
- }
-
- private byte[] writeRecord( org.apache.poi.hslf.record.Record r) throws IOException {
- UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
- r.writeOut(baos);
- return baos.toByteArray();
- }
-
- @Test
- void testIndentationLevel() throws Exception {
- try (HSLFSlideShow ppt = HSLFTestDataSamples.getSlideShow("ParagraphStylesShorterThanCharStyles.ppt")) {
- for (HSLFSlide sl : ppt.getSlides()) {
- for (List<HSLFTextParagraph> txt : sl.getTextParagraphs()) {
- for (HSLFTextParagraph p : txt) {
- int indent = p.getIndentLevel();
- assertTrue(indent >= 0 && indent <= 4);
- }
-
- }
- }
- }
- }
-
- @Test
- void testReadParagraphStyles() throws Exception {
- try (HSLFSlideShow ppt = HSLFTestDataSamples.getSlideShow("bullets.ppt")) {
- HSLFTextParagraph rt;
- List<List<HSLFTextParagraph>> txt;
- List<HSLFSlide> slide = ppt.getSlides();
- assertEquals(2, slide.size());
-
- txt = slide.get(0).getTextParagraphs();
- assertEquals(2, txt.size());
-
- assertEquals("Title text", HSLFTextParagraph.getRawText(txt.get(0)));
- assertEquals(1, txt.get(0).size());
- rt = txt.get(0).get(0);
- assertFalse(rt.isBullet());
-
- String expected =
- "This is a text placeholder that \r" +
- "follows the design pattern\r" +
- "Defined in the slide master\r" +
- "and has bullets by default";
- assertEquals(expected, HSLFTextParagraph.getRawText(txt.get(1)));
- assertEquals(4, txt.get(1).size());
- rt = txt.get(1).get(0);
- assertNotNull(rt.getBulletChar());
- assertEquals('\u2022', (char) rt.getBulletChar());
- assertTrue(rt.isBullet());
-
-
- txt = slide.get(1).getTextParagraphs();
- assertEquals(2, txt.size());
-
- expected =
- "I\u2019m a text box\r" +
- "With bullets\r" +
- "That follow the design pattern\r" +
- "From the slide master";
- assertEquals(expected, HSLFTextParagraph.getRawText(txt.get(0)));
- assertEquals(4, txt.get(0).size());
- rt = txt.get(0).get(0);
- assertTrue(rt.isBullet());
- assertNotNull(rt.getBulletChar());
- assertEquals('\u2022', (char) rt.getBulletChar());
-
- expected =
- "I\u2019m a text box with user-defined\r" +
- "bullet character";
- assertEquals(expected, HSLFTextParagraph.getRawText(txt.get(1)));
- assertEquals(2, txt.get(1).size());
- rt = txt.get(1).get(0);
- assertTrue(rt.isBullet());
- assertNotNull(rt.getBulletChar());
- assertEquals('\u263A', (char) rt.getBulletChar());
- }
- }
-
- @Test
- void testSetParagraphStyles() throws IOException {
- try (HSLFSlideShow ppt1 = new HSLFSlideShow()) {
-
- HSLFSlide slide = ppt1.createSlide();
-
- HSLFTextBox shape = new HSLFTextBox();
- shape.setText(
- "Hello, World!\r" +
- "This should be\r" +
- "Multiline text");
- HSLFTextParagraph rt = shape.getTextParagraphs().get(0);
- HSLFTextRun tr = rt.getTextRuns().get(0);
- tr.setFontSize(42d);
- rt.setBullet(true);
- rt.setLeftMargin(50d);
- rt.setIndent(0d);
- rt.setBulletChar('\u263A');
- slide.addShape(shape);
-
- assertNotNull(tr.getFontSize());
- assertEquals(42.0, tr.getFontSize(), 0);
- assertTrue(rt.isBullet());
- assertNotNull(rt.getLeftMargin());
- assertEquals(50.0, rt.getLeftMargin(), 0);
- assertNotNull(rt.getIndent());
- assertEquals(0, rt.getIndent(), 0);
- assertNotNull(rt.getBulletChar());
- assertEquals('\u263A', (char) rt.getBulletChar());
-
- shape.setAnchor(new java.awt.Rectangle(50, 50, 500, 300));
- slide.addShape(shape);
-
- //serialize and read again
- try (HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1)) {
- slide = ppt2.getSlides().get(0);
- shape = (HSLFTextBox) slide.getShapes().get(0);
- rt = shape.getTextParagraphs().get(0);
- tr = rt.getTextRuns().get(0);
- assertNotNull(tr.getFontSize());
- assertEquals(42.0, tr.getFontSize(), 0);
- assertTrue(rt.isBullet());
- assertNotNull(rt.getLeftMargin());
- assertEquals(50.0, rt.getLeftMargin(), 0);
- assertNotNull(rt.getIndent());
- assertEquals(0, rt.getIndent(), 0);
- assertNotNull(rt.getBulletChar());
- assertEquals('\u263A', (char) rt.getBulletChar());
- }
- }
- }
-
- @Test
- void testAddText() throws Exception {
- try (HSLFSlideShow ppt1 = HSLFTestDataSamples.getSlideShow("bullets.ppt")) {
-
- HSLFTextParagraph rt;
- HSLFTextRun tr;
- List<List<HSLFTextParagraph>> txt;
- List<HSLFSlide> slides = ppt1.getSlides();
-
- assertEquals(2, slides.size());
- txt = slides.get(0).getTextParagraphs();
- assertEquals(2, txt.size());
-
- assertEquals("Title text", HSLFTextParagraph.getRawText(txt.get(0)));
- assertEquals(1, txt.get(0).size());
- rt = txt.get(0).get(0);
- assertFalse(rt.isBullet());
-
- // Add some new text
- HSLFTextParagraph.appendText(txt.get(0), "Foo! I'm new!", true);
- assertEquals(2, txt.get(0).size());
-
- rt = txt.get(0).get(0);
- tr = rt.getTextRuns().get(0);
- assertFalse(tr.isBold());
- assertEquals("Title text\r", tr.getRawText());
- rt = txt.get(0).get(1);
- tr = rt.getTextRuns().get(0);
- assertFalse(tr.isBold());
- assertEquals("Foo! I'm new!", tr.getRawText());
- tr.setBold(true);
- HSLFTextParagraph.storeText(txt.get(0));
-
- // And some more, attributes will be copied from previous run
- HSLFTextParagraph.appendText(txt.get(0), "Me too!", true);
- HSLFTextParagraph.storeText(txt.get(0));
- assertEquals(3, txt.get(0).size());
- rt = txt.get(0).get(0);
- tr = rt.getTextRuns().get(0);
- assertFalse(tr.isBold());
- assertEquals("Title text\r", tr.getRawText());
- rt = txt.get(0).get(1);
- tr = rt.getTextRuns().get(0);
- assertTrue(tr.isBold());
- assertEquals("Foo! I'm new!\r", tr.getRawText());
- rt = txt.get(0).get(2);
- tr = rt.getTextRuns().get(0);
- assertTrue(tr.isBold());
- assertEquals("Me too!", tr.getRawText());
-
- // Save and re-open
- try (HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1)) {
- slides = ppt2.getSlides();
-
- assertEquals(2, slides.size());
-
- txt = slides.get(0).getTextParagraphs();
- assertEquals(2, txt.size());
- assertEquals(3, txt.get(0).size());
- rt = txt.get(0).get(0);
- tr = rt.getTextRuns().get(0);
- assertFalse(tr.isBold());
- assertEquals("Title text\r", tr.getRawText());
- rt = txt.get(0).get(1);
- tr = rt.getTextRuns().get(0);
- assertTrue(tr.isBold());
- assertEquals("Foo! I'm new!\r", tr.getRawText());
- rt = txt.get(0).get(2);
- tr = rt.getTextRuns().get(0);
- assertTrue(tr.isBold());
- assertEquals("Me too!", tr.getRawText());
- }
- }
- }
+ r.writeOut(baos);
+ return baos.toByteArray();
+ }
+
+ @Test
+ void testIndentationLevel() throws Exception {
+ try (HSLFSlideShow ppt = HSLFTestDataSamples.getSlideShow("ParagraphStylesShorterThanCharStyles.ppt")) {
+ for (HSLFSlide sl : ppt.getSlides()) {
+ for (List<HSLFTextParagraph> txt : sl.getTextParagraphs()) {
+ for (HSLFTextParagraph p : txt) {
+ int indent = p.getIndentLevel();
+ assertTrue(indent >= 0 && indent <= 4);
+ }
+
+ }
+ }
+ }
+ }
@Test
- void testChineseParagraphs() {
+ void testReadParagraphStyles() throws Exception {
+ try (HSLFSlideShow ppt = HSLFTestDataSamples.getSlideShow("bullets.ppt")) {
+ HSLFTextParagraph rt;
+ List<List<HSLFTextParagraph>> txt;
+ List<HSLFSlide> slide = ppt.getSlides();
+ assertEquals(2, slide.size());
+
+ txt = slide.get(0).getTextParagraphs();
+ assertEquals(2, txt.size());
+
+ assertEquals("Title text", HSLFTextParagraph.getRawText(txt.get(0)));
+ assertEquals(1, txt.get(0).size());
+ rt = txt.get(0).get(0);
+ assertFalse(rt.isBullet());
+
+ String expected =
+ "This is a text placeholder that \r" +
+ "follows the design pattern\r" +
+ "Defined in the slide master\r" +
+ "and has bullets by default";
+ assertEquals(expected, HSLFTextParagraph.getRawText(txt.get(1)));
+ assertEquals(4, txt.get(1).size());
+ rt = txt.get(1).get(0);
+ assertNotNull(rt.getBulletChar());
+ assertEquals('\u2022', (char) rt.getBulletChar());
+ assertTrue(rt.isBullet());
+
+
+ txt = slide.get(1).getTextParagraphs();
+ assertEquals(2, txt.size());
+
+ expected =
+ "I\u2019m a text box\r" +
+ "With bullets\r" +
+ "That follow the design pattern\r" +
+ "From the slide master";
+ assertEquals(expected, HSLFTextParagraph.getRawText(txt.get(0)));
+ assertEquals(4, txt.get(0).size());
+ rt = txt.get(0).get(0);
+ assertTrue(rt.isBullet());
+ assertNotNull(rt.getBulletChar());
+ assertEquals('\u2022', (char) rt.getBulletChar());
+
+ expected =
+ "I\u2019m a text box with user-defined\r" +
+ "bullet character";
+ assertEquals(expected, HSLFTextParagraph.getRawText(txt.get(1)));
+ assertEquals(2, txt.get(1).size());
+ rt = txt.get(1).get(0);
+ assertTrue(rt.isBullet());
+ assertNotNull(rt.getBulletChar());
+ assertEquals('\u263A', (char) rt.getBulletChar());
+ }
+ }
+
+ @Test
+ void testSetParagraphStyles() throws IOException {
+ try (HSLFSlideShow ppt1 = new HSLFSlideShow()) {
+
+ HSLFSlide slide = ppt1.createSlide();
+
+ HSLFTextBox shape = new HSLFTextBox();
+ shape.setText(
+ "Hello, World!\r" +
+ "This should be\r" +
+ "Multiline text");
+ HSLFTextParagraph rt = shape.getTextParagraphs().get(0);
+ HSLFTextRun tr = rt.getTextRuns().get(0);
+ tr.setFontSize(42d);
+ rt.setBullet(true);
+ rt.setLeftMargin(50d);
+ rt.setIndent(0d);
+ rt.setBulletChar('\u263A');
+ slide.addShape(shape);
+
+ assertNotNull(tr.getFontSize());
+ assertEquals(42.0, tr.getFontSize(), 0);
+ assertTrue(rt.isBullet());
+ assertNotNull(rt.getLeftMargin());
+ assertEquals(50.0, rt.getLeftMargin(), 0);
+ assertNotNull(rt.getIndent());
+ assertEquals(0, rt.getIndent(), 0);
+ assertNotNull(rt.getBulletChar());
+ assertEquals('\u263A', (char) rt.getBulletChar());
+
+ shape.setAnchor(new java.awt.Rectangle(50, 50, 500, 300));
+ slide.addShape(shape);
+
+ //serialize and read again
+ try (HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1)) {
+ slide = ppt2.getSlides().get(0);
+ shape = (HSLFTextBox) slide.getShapes().get(0);
+ rt = shape.getTextParagraphs().get(0);
+ tr = rt.getTextRuns().get(0);
+ assertNotNull(tr.getFontSize());
+ assertEquals(42.0, tr.getFontSize(), 0);
+ assertTrue(rt.isBullet());
+ assertNotNull(rt.getLeftMargin());
+ assertEquals(50.0, rt.getLeftMargin(), 0);
+ assertNotNull(rt.getIndent());
+ assertEquals(0, rt.getIndent(), 0);
+ assertNotNull(rt.getBulletChar());
+ assertEquals('\u263A', (char) rt.getBulletChar());
+ }
+ }
+ }
+
+ @Test
+ void testAddText() throws Exception {
+ try (HSLFSlideShow ppt1 = HSLFTestDataSamples.getSlideShow("bullets.ppt")) {
+
+ HSLFTextParagraph rt;
+ HSLFTextRun tr;
+ List<List<HSLFTextParagraph>> txt;
+ List<HSLFSlide> slides = ppt1.getSlides();
+
+ assertEquals(2, slides.size());
+ txt = slides.get(0).getTextParagraphs();
+ assertEquals(2, txt.size());
+
+ assertEquals("Title text", HSLFTextParagraph.getRawText(txt.get(0)));
+ assertEquals(1, txt.get(0).size());
+ rt = txt.get(0).get(0);
+ assertFalse(rt.isBullet());
+
+ // Add some new text
+ HSLFTextParagraph.appendText(txt.get(0), "Foo! I'm new!", true);
+ assertEquals(2, txt.get(0).size());
+
+ rt = txt.get(0).get(0);
+ tr = rt.getTextRuns().get(0);
+ assertFalse(tr.isBold());
+ assertEquals("Title text\r", tr.getRawText());
+ rt = txt.get(0).get(1);
+ tr = rt.getTextRuns().get(0);
+ assertFalse(tr.isBold());
+ assertEquals("Foo! I'm new!", tr.getRawText());
+ tr.setBold(true);
+ HSLFTextParagraph.storeText(txt.get(0));
+
+ // And some more, attributes will be copied from previous run
+ HSLFTextParagraph.appendText(txt.get(0), "Me too!", true);
+ HSLFTextParagraph.storeText(txt.get(0));
+ assertEquals(3, txt.get(0).size());
+ rt = txt.get(0).get(0);
+ tr = rt.getTextRuns().get(0);
+ assertFalse(tr.isBold());
+ assertEquals("Title text\r", tr.getRawText());
+ rt = txt.get(0).get(1);
+ tr = rt.getTextRuns().get(0);
+ assertTrue(tr.isBold());
+ assertEquals("Foo! I'm new!\r", tr.getRawText());
+ rt = txt.get(0).get(2);
+ tr = rt.getTextRuns().get(0);
+ assertTrue(tr.isBold());
+ assertEquals("Me too!", tr.getRawText());
+
+ // Save and re-open
+ try (HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1)) {
+ slides = ppt2.getSlides();
+
+ assertEquals(2, slides.size());
+
+ txt = slides.get(0).getTextParagraphs();
+ assertEquals(2, txt.size());
+ assertEquals(3, txt.get(0).size());
+ rt = txt.get(0).get(0);
+ tr = rt.getTextRuns().get(0);
+ assertFalse(tr.isBold());
+ assertEquals("Title text\r", tr.getRawText());
+ rt = txt.get(0).get(1);
+ tr = rt.getTextRuns().get(0);
+ assertTrue(tr.isBold());
+ assertEquals("Foo! I'm new!\r", tr.getRawText());
+ rt = txt.get(0).get(2);
+ tr = rt.getTextRuns().get(0);
+ assertTrue(tr.isBold());
+ assertEquals("Me too!", tr.getRawText());
+ }
+ }
+ }
+
+ @Test
+ void testChineseParagraphs() {
List<HSLFTextRun> rts;
HSLFTextRun rt;
List<List<HSLFTextParagraph>> txt;
@@ -659,5 +659,5 @@ public final class TestRichTextRun {
// Font is Calibri
assertEquals("Calibri", rt.getFontFamily());
- }
+ }
}
Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestSheetText.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestSheetText.java?rev=1890122&r1=1890121&r2=1890122&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestSheetText.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestSheetText.java Sat May 22 21:37:08 2021
@@ -31,66 +31,66 @@ import org.junit.jupiter.api.Test;
* Tests that SlideShow returns Sheets which have the right text in them
*/
public final class TestSheetText {
- // SlideShow primed on the test data
- private HSLFSlideShow ss;
+ // SlideShow primed on the test data
+ private HSLFSlideShow ss;
- @BeforeEach
- void init() throws IOException {
- ss = HSLFTestDataSamples.getSlideShow("basic_test_ppt_file.ppt");
- }
-
- @AfterEach
- void tearDown() throws IOException {
- ss.close();
- }
-
- @Test
- void testSheetOne() {
- HSLFSheet slideOne = ss.getSlides().get(0);
-
- String[] expectText = new String[] {"This is a test title","This is a test subtitle\rThis is on page 1"};
- assertEquals(expectText.length, slideOne.getTextParagraphs().size());
- int i = 0;
- for(List<HSLFTextParagraph> textParas : slideOne.getTextParagraphs()) {
- assertEquals(expectText[i++], HSLFTextParagraph.getRawText(textParas));
- }
- }
-
- void testSheetTwo() {
- HSLFSheet slideTwo = ss.getSlides().get(1);
- String[] expectText = new String[] {"This is the title on page 2","This is page two\rIt has several blocks of text\rNone of them have formatting"};
- assertEquals(expectText.length, slideTwo.getTextParagraphs().size());
+ @BeforeEach
+ void init() throws IOException {
+ ss = HSLFTestDataSamples.getSlideShow("basic_test_ppt_file.ppt");
+ }
+
+ @AfterEach
+ void tearDown() throws IOException {
+ ss.close();
+ }
+
+ @Test
+ void testSheetOne() {
+ HSLFSheet slideOne = ss.getSlides().get(0);
+
+ String[] expectText = new String[] {"This is a test title","This is a test subtitle\rThis is on page 1"};
+ assertEquals(expectText.length, slideOne.getTextParagraphs().size());
+ int i = 0;
+ for(List<HSLFTextParagraph> textParas : slideOne.getTextParagraphs()) {
+ assertEquals(expectText[i++], HSLFTextParagraph.getRawText(textParas));
+ }
+ }
+
+ void testSheetTwo() {
+ HSLFSheet slideTwo = ss.getSlides().get(1);
+ String[] expectText = new String[] {"This is the title on page 2","This is page two\rIt has several blocks of text\rNone of them have formatting"};
+ assertEquals(expectText.length, slideTwo.getTextParagraphs().size());
int i = 0;
for(List<HSLFTextParagraph> textParas : slideTwo.getTextParagraphs()) {
assertEquals(expectText[i++], HSLFTextParagraph.getRawText(textParas));
}
- }
+ }
- /**
- * Check we can still get the text from a file where the
- * TextProps don't have enough data.
- * (Make sure we don't screw up / throw an exception etc)
- */
- void testWithShortTextPropData() throws IOException {
- HSLFSlideShow sss = HSLFTestDataSamples.getSlideShow("iisd_report.ppt");
-
- // Should come out with 10 slides, no notes
- assertEquals(10, sss.getSlides().size());
- assertEquals(0, sss.getNotes().size());
-
- // Check text on first slide
- HSLFSlide s = sss.getSlides().get(0);
- String exp =
- "Realizing the Development Dividend:\n" +
- "Community Capacity Building and CDM.\n" +
- "Can they co-exist?\n\n" +
- "Gay Harley\n" +
- "Clean Development Alliance\n" +
- "COP 11 \u2013 MOP 1\n" + // special long hyphen
- "December 5, 2005\n";
-
- assertEquals(1, s.getTextParagraphs().size());
- assertEquals(exp, HSLFTextParagraph.getRawText(s.getTextParagraphs().get(0)));
- sss.close();
- }
+ /**
+ * Check we can still get the text from a file where the
+ * TextProps don't have enough data.
+ * (Make sure we don't screw up / throw an exception etc)
+ */
+ void testWithShortTextPropData() throws IOException {
+ HSLFSlideShow sss = HSLFTestDataSamples.getSlideShow("iisd_report.ppt");
+
+ // Should come out with 10 slides, no notes
+ assertEquals(10, sss.getSlides().size());
+ assertEquals(0, sss.getNotes().size());
+
+ // Check text on first slide
+ HSLFSlide s = sss.getSlides().get(0);
+ String exp =
+ "Realizing the Development Dividend:\n" +
+ "Community Capacity Building and CDM.\n" +
+ "Can they co-exist?\n\n" +
+ "Gay Harley\n" +
+ "Clean Development Alliance\n" +
+ "COP 11 \u2013 MOP 1\n" + // special long hyphen
+ "December 5, 2005\n";
+
+ assertEquals(1, s.getTextParagraphs().size());
+ assertEquals(exp, HSLFTextParagraph.getRawText(s.getTextParagraphs().get(0)));
+ sss.close();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org