-/* ====================================================================\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
-==================================================================== */\r
-package org.apache.poi.xwpf.usermodel;\r
-\r
-import static org.junit.Assert.assertFalse;\r
-import static org.junit.Assert.assertTrue;\r
-\r
-import java.io.ByteArrayInputStream;\r
-import java.io.ByteArrayOutputStream;\r
-\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.junit.Test;\r
-\r
-public class TestChangeTracking {\r
-\r
- @Test\r
- public void detection() throws Exception {\r
-\r
- XWPFDocument documentWithoutChangeTracking = XWPFTestDataSamples.openSampleDocument("bug56075-changeTracking_off.docx");\r
- assertFalse(documentWithoutChangeTracking.isTrackRevisions());\r
-\r
- XWPFDocument documentWithChangeTracking = XWPFTestDataSamples.openSampleDocument("bug56075-changeTracking_on.docx");\r
- assertTrue(documentWithChangeTracking.isTrackRevisions());\r
-\r
- }\r
-\r
- @Test\r
- public void activateChangeTracking() throws Exception {\r
- XWPFDocument document = XWPFTestDataSamples.openSampleDocument("bug56075-changeTracking_off.docx");\r
- assertFalse(document.isTrackRevisions());\r
-\r
- document.setTrackRevisions(true);\r
-\r
- assertTrue(document.isTrackRevisions());\r
- }\r
-\r
- @Test\r
- public void integration() throws Exception {\r
- XWPFDocument doc = new XWPFDocument();\r
-\r
- XWPFParagraph p1 = doc.createParagraph();\r
-\r
- XWPFRun r1 = p1.createRun();\r
- r1.setText("Lorem ipsum dolor sit amet.");\r
- doc.setTrackRevisions(true);\r
-\r
- ByteArrayOutputStream out = new ByteArrayOutputStream();\r
- doc.write(out);\r
-\r
- ByteArrayInputStream inputStream = new ByteArrayInputStream(out.toByteArray());\r
- XWPFDocument document = new XWPFDocument(inputStream);\r
- inputStream.close();\r
-\r
- assertTrue(document.isTrackRevisions());\r
- }\r
-\r
-}\r
+/* ====================================================================
+ 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.poi.xwpf.usermodel;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.junit.Test;
+
+public class TestChangeTracking {
+ @Test
+ public void detection() throws Exception {
+ XWPFDocument documentWithoutChangeTracking = XWPFTestDataSamples.openSampleDocument("bug56075-changeTracking_off.docx");
+ assertFalse(documentWithoutChangeTracking.isTrackRevisions());
+
+ XWPFDocument documentWithChangeTracking = XWPFTestDataSamples.openSampleDocument("bug56075-changeTracking_on.docx");
+ assertTrue(documentWithChangeTracking.isTrackRevisions());
+ }
+
+ @Test
+ public void activateChangeTracking() throws Exception {
+ XWPFDocument document = XWPFTestDataSamples.openSampleDocument("bug56075-changeTracking_off.docx");
+ assertFalse(document.isTrackRevisions());
+
+ document.setTrackRevisions(true);
+
+ assertTrue(document.isTrackRevisions());
+ }
+
+ @Test
+ @SuppressWarnings("resource")
+ public void integration() throws Exception {
+ XWPFDocument doc = new XWPFDocument();
+
+ XWPFParagraph p1 = doc.createParagraph();
+
+ XWPFRun r1 = p1.createRun();
+ r1.setText("Lorem ipsum dolor sit amet.");
+ doc.setTrackRevisions(true);
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ doc.write(out);
+
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(out.toByteArray());
+ XWPFDocument document = new XWPFDocument(inputStream);
+ inputStream.close();
+
+ assertTrue(document.isTrackRevisions());
+ }
+}
-/* ====================================================================\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
-==================================================================== */\r
-package org.apache.poi.xwpf.usermodel;\r
-\r
-import static org.junit.Assert.assertEquals;\r
-import static org.junit.Assert.assertNotNull;\r
-\r
-import java.io.IOException;\r
-\r
-import org.apache.poi.openxml4j.exceptions.OpenXML4JException;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.apache.poi.xwpf.usermodel.XWPFRun.FontCharRange;\r
-import org.junit.Test;\r
-\r
-public class TestXWPFBugs {\r
- @Test\r
- public void bug55802() throws Exception {\r
- String blabla =\r
- "Bir, iki, \u00fc\u00e7, d\u00f6rt, be\u015f,\n" +\r
- "\nalt\u0131, yedi, sekiz, dokuz, on.\n" +\r
- "\nK\u0131rm\u0131z\u0131 don,\n" +\r
- "\ngel bizim bah\u00e7eye kon,\n" +\r
- "\nsar\u0131 limon";\r
- XWPFDocument doc = new XWPFDocument();\r
- XWPFRun run = doc.createParagraph().createRun();\r
-\r
- for (String str : blabla.split("\n")) {\r
- run.setText(str);\r
- run.addBreak();\r
- }\r
-\r
- run.setFontFamily("Times New Roman");\r
- run.setFontSize(20);\r
- assertEquals(run.getFontFamily(), "Times New Roman");\r
- assertEquals(run.getFontFamily(FontCharRange.cs), "Times New Roman");\r
- assertEquals(run.getFontFamily(FontCharRange.eastAsia), "Times New Roman");\r
- assertEquals(run.getFontFamily(FontCharRange.hAnsi), "Times New Roman");\r
- run.setFontFamily("Arial", FontCharRange.hAnsi);\r
- assertEquals(run.getFontFamily(FontCharRange.hAnsi), "Arial");\r
- }\r
-\r
-\r
- @Test\r
- public void bug57312_NullPointException() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("57312.docx");\r
- assertNotNull(doc);\r
-\r
- for (IBodyElement bodyElement : doc.getBodyElements()) {\r
- BodyElementType elementType = bodyElement.getElementType();\r
-\r
- if (elementType == BodyElementType.PARAGRAPH) {\r
- XWPFParagraph paragraph = (XWPFParagraph) bodyElement;\r
-\r
- for (IRunElement iRunElem : paragraph.getIRuns()) {\r
-\r
- if (iRunElem instanceof XWPFRun) {\r
- XWPFRun runElement = (XWPFRun) iRunElem;\r
-\r
- UnderlinePatterns underline = runElement.getUnderline();\r
- assertNotNull(underline);\r
-\r
- //System.out.println("Found: " + underline + ": " + runElement.getText(0));\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
-\r
- @Test\r
- public void test56392() throws IOException, OpenXML4JException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("56392.docx");\r
- assertNotNull(doc);\r
- }\r
-\r
- /**\r
- * Removing a run needs to remove it from both Runs and IRuns\r
- */\r
- @Test\r
- public void test57829() throws Exception {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");\r
- assertNotNull(doc);\r
- assertEquals(3, doc.getParagraphs().size());\r
-\r
- for (XWPFParagraph paragraph : doc.getParagraphs()) {\r
- paragraph.removeRun(0);\r
- assertNotNull(paragraph.getText());\r
- }\r
- }\r
-}\r
+/* ====================================================================
+ 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.poi.xwpf.usermodel;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+
+import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.usermodel.XWPFRun.FontCharRange;
+import org.junit.Test;
+
+public class TestXWPFBugs {
+ @Test
+ public void bug55802() throws Exception {
+ String blabla =
+ "Bir, iki, \u00fc\u00e7, d\u00f6rt, be\u015f,\n" +
+ "\nalt\u0131, yedi, sekiz, dokuz, on.\n" +
+ "\nK\u0131rm\u0131z\u0131 don,\n" +
+ "\ngel bizim bah\u00e7eye kon,\n" +
+ "\nsar\u0131 limon";
+ XWPFDocument doc = new XWPFDocument();
+ XWPFRun run = doc.createParagraph().createRun();
+
+ for (String str : blabla.split("\n")) {
+ run.setText(str);
+ run.addBreak();
+ }
+
+ run.setFontFamily("Times New Roman");
+ run.setFontSize(20);
+ assertEquals(run.getFontFamily(), "Times New Roman");
+ assertEquals(run.getFontFamily(FontCharRange.cs), "Times New Roman");
+ assertEquals(run.getFontFamily(FontCharRange.eastAsia), "Times New Roman");
+ assertEquals(run.getFontFamily(FontCharRange.hAnsi), "Times New Roman");
+ run.setFontFamily("Arial", FontCharRange.hAnsi);
+ assertEquals(run.getFontFamily(FontCharRange.hAnsi), "Arial");
+ }
+
+
+ @Test
+ public void bug57312_NullPointException() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("57312.docx");
+ assertNotNull(doc);
+
+ for (IBodyElement bodyElement : doc.getBodyElements()) {
+ BodyElementType elementType = bodyElement.getElementType();
+
+ if (elementType == BodyElementType.PARAGRAPH) {
+ XWPFParagraph paragraph = (XWPFParagraph) bodyElement;
+
+ for (IRunElement iRunElem : paragraph.getIRuns()) {
+
+ if (iRunElem instanceof XWPFRun) {
+ XWPFRun runElement = (XWPFRun) iRunElem;
+
+ UnderlinePatterns underline = runElement.getUnderline();
+ assertNotNull(underline);
+
+ //System.out.println("Found: " + underline + ": " + runElement.getText(0));
+ }
+ }
+ }
+ }
+ }
+
+
+ @Test
+ public void test56392() throws IOException, OpenXML4JException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("56392.docx");
+ assertNotNull(doc);
+ }
+
+ /**
+ * Removing a run needs to remove it from both Runs and IRuns
+ */
+ @Test
+ public void test57829() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");
+ assertNotNull(doc);
+ assertEquals(3, doc.getParagraphs().size());
+
+ for (XWPFParagraph paragraph : doc.getParagraphs()) {
+ paragraph.removeRun(0);
+ assertNotNull(paragraph.getText());
+ }
+ }
+}
import java.io.IOException;
import java.math.BigInteger;
-import java.util.List;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STFtnEdn;\r
-\r
-public class TestXWPFFootnotes extends TestCase {\r
-\r
- public void testAddFootnotesToDocument() throws IOException {\r
- XWPFDocument docOut = new XWPFDocument();\r
-\r
- BigInteger noteId = BigInteger.valueOf(1);\r
-\r
- XWPFFootnotes footnotes = docOut.createFootnotes();\r
- CTFtnEdn ctNote = CTFtnEdn.Factory.newInstance();\r
- ctNote.setId(noteId);\r
- ctNote.setType(STFtnEdn.NORMAL);\r
- footnotes.addFootnote(ctNote);\r
-\r
- XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);\r
-\r
- XWPFFootnote note = docIn.getFootnoteByID(noteId.intValue());\r
- assertEquals(note.getCTFtnEdn().getType(), STFtnEdn.NORMAL);\r
- }\r
-\r
- /**\r
- * Bug 55066 - avoid double loading the footnotes\r
- */\r
- public void testLoadFootnotesOnce() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54849.docx");\r
- List<XWPFFootnote> footnotes = doc.getFootnotes();\r
- int hits = 0;\r
- for (XWPFFootnote fn : footnotes) {\r
- for (IBodyElement e : fn.getBodyElements()) {\r
- if (e instanceof XWPFParagraph) {\r
- String txt = ((XWPFParagraph) e).getText();\r
- if (txt.indexOf("Footnote_sdt") > -1) {\r
- hits++;\r
- }\r
- }\r
- }\r
- }\r
- assertEquals("Load footnotes once", 1, hits);\r
- }\r
-}\r
-\r
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STFtnEdn;
+
+public class TestXWPFFootnotes extends TestCase {
+
+ public void testAddFootnotesToDocument() throws IOException {
+ XWPFDocument docOut = new XWPFDocument();
+
+ BigInteger noteId = BigInteger.valueOf(1);
+
+ XWPFFootnotes footnotes = docOut.createFootnotes();
+ CTFtnEdn ctNote = CTFtnEdn.Factory.newInstance();
+ ctNote.setId(noteId);
+ ctNote.setType(STFtnEdn.NORMAL);
+ footnotes.addFootnote(ctNote);
+
+ XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
+
+ XWPFFootnote note = docIn.getFootnoteByID(noteId.intValue());
+ assertEquals(note.getCTFtnEdn().getType(), STFtnEdn.NORMAL);
+ }
+
+ /**
+ * Bug 55066 - avoid double loading the footnotes
+ */
+ public void testLoadFootnotesOnce() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54849.docx");
+ List<XWPFFootnote> footnotes = doc.getFootnotes();
+ int hits = 0;
+ for (XWPFFootnote fn : footnotes) {
+ for (IBodyElement e : fn.getBodyElements()) {
+ if (e instanceof XWPFParagraph) {
+ String txt = ((XWPFParagraph) e).getText();
+ if (txt.indexOf("Footnote_sdt") > -1) {
+ hits++;
+ }
+ }
+ }
+ }
+ assertEquals("Load footnotes once", 1, hits);
+ }
+}
+
package org.apache.poi.xwpf.usermodel;
-import java.io.IOException;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;\r
+import java.io.IOException;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;
assertEquals("First paragraph for the footer", paras[0].getText());
assertEquals("Second paragraph for the footer", paras[1].getText());
}
-\r
- public void testSetWatermark() throws IOException {\r
- XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");\r
-\r
- // No header is set (yet)\r
- XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();\r
- assertNull(policy.getDefaultHeader());\r
+
+ public void testSetWatermark() throws IOException {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
+
+ // No header is set (yet)
+ XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
+ assertNull(policy.getDefaultHeader());
assertNull(policy.getFirstPageHeader());
assertNull(policy.getDefaultFooter());
policy.createWatermark("DRAFT");
- assertNotNull(policy.getDefaultHeader());\r
- assertNotNull(policy.getFirstPageHeader());\r
- assertNotNull(policy.getEvenPageHeader());\r
-\r
- // Re-open, and check\r
- XWPFDocument reopened = XWPFTestDataSamples.writeOutAndReadBack(sampleDoc);\r
- policy = reopened.getHeaderFooterPolicy();\r
+ assertNotNull(policy.getDefaultHeader());
+ assertNotNull(policy.getFirstPageHeader());
+ assertNotNull(policy.getEvenPageHeader());
+
+ // Re-open, and check
+ XWPFDocument reopened = XWPFTestDataSamples.writeOutAndReadBack(sampleDoc);
+ policy = reopened.getHeaderFooterPolicy();
assertNotNull(policy.getDefaultHeader());
assertNotNull(policy.getFirstPageHeader());
==================================================================== */
package org.apache.poi.xwpf.usermodel;
-import java.io.IOException;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.apache.xmlbeans.XmlException;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock;\r
-
-/**\r
- * @author Paolo Mottadelli\r
- */\r
-public final class TestXWPFHeadings extends TestCase {\r
- private static final String HEADING1 = "Heading1";\r
-\r
- public void testSetParagraphStyle() throws IOException, XmlException {\r
- //new clean instance of paragraph\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("heading123.docx");\r
- XWPFParagraph p = doc.createParagraph();\r
- XWPFRun run = p.createRun();\r
- run.setText("Heading 1");\r
-\r
- CTSdtBlock block = doc.getDocument().getBody().addNewSdt();\r
-\r
- assertNull(p.getStyle());\r
- p.setStyle(HEADING1);\r
- assertEquals(HEADING1, p.getCTP().getPPr().getPStyle().getVal());\r
-\r
- doc.createTOC();\r
- /*\r
- // TODO - finish this test\r
- if (false) {\r
- CTStyles styles = doc.getStyle();\r
- CTStyle style = styles.addNewStyle();\r
+import java.io.IOException;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.xmlbeans.XmlException;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock;
+
+/**
+ * @author Paolo Mottadelli
+ */
+public final class TestXWPFHeadings extends TestCase {
+ private static final String HEADING1 = "Heading1";
+
+ public void testSetParagraphStyle() throws IOException, XmlException {
+ //new clean instance of paragraph
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("heading123.docx");
+ XWPFParagraph p = doc.createParagraph();
+ XWPFRun run = p.createRun();
+ run.setText("Heading 1");
+
+ CTSdtBlock block = doc.getDocument().getBody().addNewSdt();
+
+ assertNull(p.getStyle());
+ p.setStyle(HEADING1);
+ assertEquals(HEADING1, p.getCTP().getPPr().getPStyle().getVal());
+
+ doc.createTOC();
+ /*
+ // TODO - finish this test
+ if (false) {
+ CTStyles styles = doc.getStyle();
+ CTStyle style = styles.addNewStyle();
style.setType(STStyleType.PARAGRAPH);
style.setStyleId("Heading1");
}
package org.apache.poi.xwpf.usermodel;
import java.io.IOException;
-import java.math.BigInteger;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNum;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNumLvl;\r
-\r
-public class TestXWPFNumbering extends TestCase {\r
-\r
- public void testCompareAbstractNum() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");\r
- XWPFNumbering numbering = doc.getNumbering();\r
- BigInteger numId = BigInteger.valueOf(1);\r
- assertTrue(numbering.numExist(numId));\r
- XWPFNum num = numbering.getNum(numId);\r
- BigInteger abstrNumId = num.getCTNum().getAbstractNumId().getVal();\r
- XWPFAbstractNum abstractNum = numbering.getAbstractNum(abstrNumId);\r
- BigInteger compareAbstractNum = numbering.getIdOfAbstractNum(abstractNum);\r
- assertEquals(abstrNumId, compareAbstractNum);\r
- }\r
-\r
- public void testAddNumberingToDoc() throws IOException {\r
- BigInteger abstractNumId = BigInteger.valueOf(1);\r
- BigInteger numId = BigInteger.valueOf(1);\r
-\r
- XWPFDocument docOut = new XWPFDocument();\r
- XWPFNumbering numbering = docOut.createNumbering();\r
- numId = numbering.addNum(abstractNumId);\r
-\r
- XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);\r
-\r
- numbering = docIn.getNumbering();\r
- assertTrue(numbering.numExist(numId));\r
- XWPFNum num = numbering.getNum(numId);\r
-\r
- BigInteger compareAbstractNum = num.getCTNum().getAbstractNumId().getVal();\r
- assertEquals(abstractNumId, compareAbstractNum);\r
- }\r
-\r
- public void testGetNumIlvl() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");\r
- BigInteger numIlvl = BigInteger.valueOf(0);\r
- assertEquals(numIlvl, doc.getParagraphs().get(0).getNumIlvl());\r
- numIlvl = BigInteger.valueOf(1);\r
- assertEquals(numIlvl, doc.getParagraphs().get(5).getNumIlvl());\r
- }\r
-\r
- public void testGetNumFmt() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");\r
- assertEquals("bullet", doc.getParagraphs().get(0).getNumFmt());\r
- assertEquals("bullet", doc.getParagraphs().get(1).getNumFmt());\r
- assertEquals("bullet", doc.getParagraphs().get(2).getNumFmt());\r
- assertEquals("bullet", doc.getParagraphs().get(3).getNumFmt());\r
- assertEquals("decimal", doc.getParagraphs().get(4).getNumFmt());\r
- assertEquals("lowerLetter", doc.getParagraphs().get(5).getNumFmt());\r
- assertEquals("lowerRoman", doc.getParagraphs().get(6).getNumFmt());\r
- }\r
-\r
- public void testLvlText() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");\r
-\r
- assertEquals("%1.%2.%3.", doc.getParagraphs().get(12).getNumLevelText());\r
-\r
- assertEquals("NEW-%1-FORMAT", doc.getParagraphs().get(14).getNumLevelText());\r
-\r
- XWPFParagraph p = doc.getParagraphs().get(18);\r
- assertEquals("%1.", p.getNumLevelText());\r
- //test that null doesn't throw NPE\r
- assertNull(p.getNumFmt());\r
- }\r
-\r
- public void testOverrideList() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("NumberingWOverrides.docx");\r
- XWPFParagraph p = doc.getParagraphs().get(4);\r
- XWPFNumbering numbering = doc.getNumbering();\r
- CTNum ctNum = numbering.getNum(p.getNumID()).getCTNum();\r
- assertEquals(9, ctNum.sizeOfLvlOverrideArray());\r
- CTNumLvl ctNumLvl = ctNum.getLvlOverrideArray(0);\r
- assertEquals("upperLetter", ctNumLvl.getLvl().getNumFmt().getVal().toString());\r
- }\r
-\r
-}\r
+import java.math.BigInteger;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNum;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNumLvl;
+
+public class TestXWPFNumbering extends TestCase {
+
+ public void testCompareAbstractNum() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");
+ XWPFNumbering numbering = doc.getNumbering();
+ BigInteger numId = BigInteger.valueOf(1);
+ assertTrue(numbering.numExist(numId));
+ XWPFNum num = numbering.getNum(numId);
+ BigInteger abstrNumId = num.getCTNum().getAbstractNumId().getVal();
+ XWPFAbstractNum abstractNum = numbering.getAbstractNum(abstrNumId);
+ BigInteger compareAbstractNum = numbering.getIdOfAbstractNum(abstractNum);
+ assertEquals(abstrNumId, compareAbstractNum);
+ }
+
+ public void testAddNumberingToDoc() throws IOException {
+ BigInteger abstractNumId = BigInteger.valueOf(1);
+ BigInteger numId = BigInteger.valueOf(1);
+
+ XWPFDocument docOut = new XWPFDocument();
+ XWPFNumbering numbering = docOut.createNumbering();
+ numId = numbering.addNum(abstractNumId);
+
+ XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
+
+ numbering = docIn.getNumbering();
+ assertTrue(numbering.numExist(numId));
+ XWPFNum num = numbering.getNum(numId);
+
+ BigInteger compareAbstractNum = num.getCTNum().getAbstractNumId().getVal();
+ assertEquals(abstractNumId, compareAbstractNum);
+ }
+
+ public void testGetNumIlvl() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");
+ BigInteger numIlvl = BigInteger.valueOf(0);
+ assertEquals(numIlvl, doc.getParagraphs().get(0).getNumIlvl());
+ numIlvl = BigInteger.valueOf(1);
+ assertEquals(numIlvl, doc.getParagraphs().get(5).getNumIlvl());
+ }
+
+ public void testGetNumFmt() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");
+ assertEquals("bullet", doc.getParagraphs().get(0).getNumFmt());
+ assertEquals("bullet", doc.getParagraphs().get(1).getNumFmt());
+ assertEquals("bullet", doc.getParagraphs().get(2).getNumFmt());
+ assertEquals("bullet", doc.getParagraphs().get(3).getNumFmt());
+ assertEquals("decimal", doc.getParagraphs().get(4).getNumFmt());
+ assertEquals("lowerLetter", doc.getParagraphs().get(5).getNumFmt());
+ assertEquals("lowerRoman", doc.getParagraphs().get(6).getNumFmt());
+ }
+
+ public void testLvlText() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Numbering.docx");
+
+ assertEquals("%1.%2.%3.", doc.getParagraphs().get(12).getNumLevelText());
+
+ assertEquals("NEW-%1-FORMAT", doc.getParagraphs().get(14).getNumLevelText());
+
+ XWPFParagraph p = doc.getParagraphs().get(18);
+ assertEquals("%1.", p.getNumLevelText());
+ //test that null doesn't throw NPE
+ assertNull(p.getNumFmt());
+ }
+
+ public void testOverrideList() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("NumberingWOverrides.docx");
+ XWPFParagraph p = doc.getParagraphs().get(4);
+ XWPFNumbering numbering = doc.getNumbering();
+ CTNum ctNum = numbering.getNum(p.getNumID()).getCTNum();
+ assertEquals(9, ctNum.sizeOfLvlOverrideArray());
+ CTNumLvl ctNumLvl = ctNum.getLvlOverrideArray(0);
+ assertEquals("upperLetter", ctNumLvl.getLvl().getNumFmt().getVal().toString());
+ }
+
+}
import static org.junit.Assert.assertArrayEquals;
import java.io.IOException;
-import java.util.List;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;\r
-import org.apache.poi.openxml4j.opc.PackageRelationship;\r
-import org.apache.poi.xssf.usermodel.XSSFRelation;\r
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.xssf.usermodel.XSSFRelation;
import org.apache.poi.xwpf.XWPFTestDataSamples;
-import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;\r
-\r
-public class TestXWPFPictureData extends TestCase {\r
-\r
- public void testRead() throws InvalidFormatException, IOException {\r
- XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("VariousPictures.docx");\r
- List<XWPFPictureData> pictures = sampleDoc.getAllPictures();\r
-\r
- assertEquals(5, pictures.size());\r
- String[] ext = {"wmf", "png", "emf", "emf", "jpeg"};\r
- for (int i = 0; i < pictures.size(); i++) {\r
- assertEquals(ext[i], pictures.get(i).suggestFileExtension());\r
- }\r
-\r
- int num = pictures.size();\r
-\r
- byte[] pictureData = XWPFTestDataSamples.getImage("nature1.jpg");\r
-\r
- String relationId = sampleDoc.addPictureData(pictureData, XWPFDocument.PICTURE_TYPE_JPEG);\r
- // picture list was updated\r
- assertEquals(num + 1, pictures.size());\r
- XWPFPictureData pict = (XWPFPictureData) sampleDoc.getRelationById(relationId);\r
- assertEquals("jpeg", pict.suggestFileExtension());\r
- assertArrayEquals(pictureData, pict.getData());\r
- }\r
-\r
- public void testPictureInHeader() throws IOException {\r
- XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");\r
- verifyOneHeaderPicture(sampleDoc);\r
-\r
- XWPFDocument readBack = XWPFTestDataSamples.writeOutAndReadBack(sampleDoc);\r
- verifyOneHeaderPicture(readBack);\r
- }\r
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
+
+public class TestXWPFPictureData extends TestCase {
+
+ public void testRead() throws InvalidFormatException, IOException {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("VariousPictures.docx");
+ List<XWPFPictureData> pictures = sampleDoc.getAllPictures();
+
+ assertEquals(5, pictures.size());
+ String[] ext = {"wmf", "png", "emf", "emf", "jpeg"};
+ for (int i = 0; i < pictures.size(); i++) {
+ assertEquals(ext[i], pictures.get(i).suggestFileExtension());
+ }
+
+ int num = pictures.size();
+
+ byte[] pictureData = XWPFTestDataSamples.getImage("nature1.jpg");
+
+ String relationId = sampleDoc.addPictureData(pictureData, XWPFDocument.PICTURE_TYPE_JPEG);
+ // picture list was updated
+ assertEquals(num + 1, pictures.size());
+ XWPFPictureData pict = (XWPFPictureData) sampleDoc.getRelationById(relationId);
+ assertEquals("jpeg", pict.suggestFileExtension());
+ assertArrayEquals(pictureData, pict.getData());
+ }
+
+ public void testPictureInHeader() throws IOException {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");
+ verifyOneHeaderPicture(sampleDoc);
+
+ XWPFDocument readBack = XWPFTestDataSamples.writeOutAndReadBack(sampleDoc);
+ verifyOneHeaderPicture(readBack);
+ }
private void verifyOneHeaderPicture(XWPFDocument sampleDoc) {
XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
- XWPFHeader header = policy.getDefaultHeader();\r
-\r
- List<XWPFPictureData> pictures = header.getAllPictures();\r
- assertEquals(1, pictures.size());\r
- }\r
-\r
- public void testNew() throws InvalidFormatException, IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("EmptyDocumentWithHeaderFooter.docx");\r
- byte[] jpegData = XWPFTestDataSamples.getImage("nature1.jpg");\r
- assertNotNull(jpegData);\r
+ XWPFHeader header = policy.getDefaultHeader();
+
+ List<XWPFPictureData> pictures = header.getAllPictures();
+ assertEquals(1, pictures.size());
+ }
+
+ public void testNew() throws InvalidFormatException, IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("EmptyDocumentWithHeaderFooter.docx");
+ byte[] jpegData = XWPFTestDataSamples.getImage("nature1.jpg");
+ assertNotNull(jpegData);
byte[] gifData = XWPFTestDataSamples.getImage("nature1.gif");
assertNotNull(gifData);
byte[] pngData = XWPFTestDataSamples.getImage("nature1.png");
- assertNotNull(pngData);\r
-\r
- List<XWPFPictureData> pictures = doc.getAllPictures();\r
- assertEquals(0, pictures.size());\r
-\r
- // Document shouldn't have any image relationships\r
- assertEquals(13, doc.getPackagePart().getRelationships().size());\r
- for (PackageRelationship rel : doc.getPackagePart().getRelationships()) {\r
- if (rel.getRelationshipType().equals(XSSFRelation.IMAGE_JPEG.getRelation())) {\r
- fail("Shouldn't have JPEG yet");\r
- }\r
- }\r
-\r
- // Add the image\r
- String relationId = doc.addPictureData(jpegData, XWPFDocument.PICTURE_TYPE_JPEG);\r
- assertEquals(1, pictures.size());\r
- XWPFPictureData jpgPicData = (XWPFPictureData) doc.getRelationById(relationId);\r
- assertEquals("jpeg", jpgPicData.suggestFileExtension());\r
- assertArrayEquals(jpegData, jpgPicData.getData());\r
-\r
- // Ensure it now has one\r
- assertEquals(14, doc.getPackagePart().getRelationships().size());\r
- PackageRelationship jpegRel = null;\r
- for (PackageRelationship rel : doc.getPackagePart().getRelationships()) {\r
- if (rel.getRelationshipType().equals(XWPFRelation.IMAGE_JPEG.getRelation())) {\r
- if (jpegRel != null)\r
- fail("Found 2 jpegs!");\r
- jpegRel = rel;\r
- }\r
- }\r
- assertNotNull("JPEG Relationship not found", jpegRel);\r
-\r
- // Check the details\r
- assertNotNull(jpegRel);\r
- assertEquals(XWPFRelation.IMAGE_JPEG.getRelation(), jpegRel.getRelationshipType());\r
- assertEquals("/word/document.xml", jpegRel.getSource().getPartName().toString());\r
- assertEquals("/word/media/image1.jpeg", jpegRel.getTargetURI().getPath());\r
-\r
- XWPFPictureData pictureDataByID = doc.getPictureDataByID(jpegRel.getId());\r
- assertArrayEquals(jpegData, pictureDataByID.getData());\r
-\r
- // Save an re-load, check it appears\r
- doc = XWPFTestDataSamples.writeOutAndReadBack(doc);\r
- assertEquals(1, doc.getAllPictures().size());\r
- assertEquals(1, doc.getAllPackagePictures().size());\r
-\r
- // verify the picture that we read back in\r
- pictureDataByID = doc.getPictureDataByID(jpegRel.getId());\r
- assertArrayEquals(jpegData, pictureDataByID.getData());\r
-\r
- }\r
-\r
- public void testBug51770() throws InvalidFormatException, IOException {\r
+ assertNotNull(pngData);
+
+ List<XWPFPictureData> pictures = doc.getAllPictures();
+ assertEquals(0, pictures.size());
+
+ // Document shouldn't have any image relationships
+ assertEquals(13, doc.getPackagePart().getRelationships().size());
+ for (PackageRelationship rel : doc.getPackagePart().getRelationships()) {
+ if (rel.getRelationshipType().equals(XSSFRelation.IMAGE_JPEG.getRelation())) {
+ fail("Shouldn't have JPEG yet");
+ }
+ }
+
+ // Add the image
+ String relationId = doc.addPictureData(jpegData, XWPFDocument.PICTURE_TYPE_JPEG);
+ assertEquals(1, pictures.size());
+ XWPFPictureData jpgPicData = (XWPFPictureData) doc.getRelationById(relationId);
+ assertEquals("jpeg", jpgPicData.suggestFileExtension());
+ assertArrayEquals(jpegData, jpgPicData.getData());
+
+ // Ensure it now has one
+ assertEquals(14, doc.getPackagePart().getRelationships().size());
+ PackageRelationship jpegRel = null;
+ for (PackageRelationship rel : doc.getPackagePart().getRelationships()) {
+ if (rel.getRelationshipType().equals(XWPFRelation.IMAGE_JPEG.getRelation())) {
+ if (jpegRel != null)
+ fail("Found 2 jpegs!");
+ jpegRel = rel;
+ }
+ }
+ assertNotNull("JPEG Relationship not found", jpegRel);
+
+ // Check the details
+ assertNotNull(jpegRel);
+ assertEquals(XWPFRelation.IMAGE_JPEG.getRelation(), jpegRel.getRelationshipType());
+ assertEquals("/word/document.xml", jpegRel.getSource().getPartName().toString());
+ assertEquals("/word/media/image1.jpeg", jpegRel.getTargetURI().getPath());
+
+ XWPFPictureData pictureDataByID = doc.getPictureDataByID(jpegRel.getId());
+ assertArrayEquals(jpegData, pictureDataByID.getData());
+
+ // Save an re-load, check it appears
+ doc = XWPFTestDataSamples.writeOutAndReadBack(doc);
+ assertEquals(1, doc.getAllPictures().size());
+ assertEquals(1, doc.getAllPackagePictures().size());
+
+ // verify the picture that we read back in
+ pictureDataByID = doc.getPictureDataByID(jpegRel.getId());
+ assertArrayEquals(jpegData, pictureDataByID.getData());
+
+ }
+
+ public void testBug51770() throws InvalidFormatException, IOException {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug51170.docx");
XWPFHeaderFooterPolicy policy = doc.getHeaderFooterPolicy();
XWPFHeader header = policy.getDefaultHeader();
for (XWPFParagraph paragraph : header.getParagraphs()) {
for (XWPFRun run : paragraph.getRuns()) {
for (XWPFPicture picture : run.getEmbeddedPictures()) {
- if (paragraph.getDocument() != null) {\r
- //System.out.println(picture.getCTPicture());\r
- XWPFPictureData data = picture.getPictureData();\r
- if (data != null) System.out.println(data.getFileName());\r
- }\r
- }\r
- }\r
+ if (paragraph.getDocument() != null) {
+ //System.out.println(picture.getCTPicture());
+ XWPFPictureData data = picture.getPictureData();
+ if (data != null) System.out.println(data.getFileName());
+ }
+ }
+ }
}
}
import java.io.IOException;
import java.math.BigInteger;
import java.util.Iterator;
-import java.util.List;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBr;\r
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBrClear;
p = doc.createParagraph();
this.ctRun = CTR.Factory.newInstance();
- }\r
-\r
- public void testSetGetText() {\r
- ctRun.addNewT().setStringValue("TEST STRING");\r
- ctRun.addNewT().setStringValue("TEST2 STRING");\r
- ctRun.addNewT().setStringValue("TEST3 STRING");\r
-\r
- assertEquals(3, ctRun.sizeOfTArray());\r
- XWPFRun run = new XWPFRun(ctRun, p);\r
-\r
- assertEquals("TEST2 STRING", run.getText(1));\r
-\r
- run.setText("NEW STRING", 0);\r
- assertEquals("NEW STRING", run.getText(0));\r
-\r
- //run.setText("xxx",14);\r
- //fail("Position wrong");\r
- }\r
-\r
- public void testSetGetBold() {\r
- CTRPr rpr = ctRun.addNewRPr();\r
- rpr.addNewB().setVal(STOnOff.TRUE);\r
+ }
+
+ public void testSetGetText() {
+ ctRun.addNewT().setStringValue("TEST STRING");
+ ctRun.addNewT().setStringValue("TEST2 STRING");
+ ctRun.addNewT().setStringValue("TEST3 STRING");
+
+ assertEquals(3, ctRun.sizeOfTArray());
+ XWPFRun run = new XWPFRun(ctRun, p);
+
+ assertEquals("TEST2 STRING", run.getText(1));
+
+ run.setText("NEW STRING", 0);
+ assertEquals("NEW STRING", run.getText(0));
+
+ //run.setText("xxx",14);
+ //fail("Position wrong");
+ }
+
+ public void testSetGetBold() {
+ CTRPr rpr = ctRun.addNewRPr();
+ rpr.addNewB().setVal(STOnOff.TRUE);
XWPFRun run = new XWPFRun(ctRun, p);
assertEquals(true, run.isBold());
run.setText("T1");
run.addCarriageReturn();
run.addCarriageReturn();
- run.setText("T2");\r
- run.addCarriageReturn();\r
- assertEquals(3, run.getCTR().sizeOfCrArray());\r
-\r
- assertEquals("T1\n\nT2\n", run.toString());\r
- }\r
-\r
- public void testAddTabsAndLineBreaks() {\r
- ctRun.addNewT().setStringValue("TEST STRING");\r
- ctRun.addNewCr();\r
+ run.setText("T2");
+ run.addCarriageReturn();
+ assertEquals(3, run.getCTR().sizeOfCrArray());
+
+ assertEquals("T1\n\nT2\n", run.toString());
+ }
+
+ public void testAddTabsAndLineBreaks() {
+ ctRun.addNewT().setStringValue("TEST STRING");
+ ctRun.addNewCr();
ctRun.addNewT().setStringValue("TEST2 STRING");
ctRun.addNewTab();
ctRun.addNewT().setStringValue("TEST3 STRING");
run.addCarriageReturn();
run.setText("T2");
run.addTab();
- run.setText("T3");\r
- assertEquals(1, run.getCTR().sizeOfCrArray());\r
- assertEquals(1, run.getCTR().sizeOfTabArray());\r
-\r
- assertEquals("T1\nT2\tT3", run.toString());\r
- }\r
-\r
+ run.setText("T3");
+ assertEquals(1, run.getCTR().sizeOfCrArray());
+ assertEquals(1, run.getCTR().sizeOfTabArray());
+
+ assertEquals("T1\nT2\tT3", run.toString());
+ }
+
public void testAddPageBreak() {
- ctRun.addNewT().setStringValue("TEST STRING");\r
- ctRun.addNewBr();\r
- ctRun.addNewT().setStringValue("TEST2 STRING");\r
- CTBr breac = ctRun.addNewBr();\r
- breac.setClear(STBrClear.LEFT);\r
- ctRun.addNewT().setStringValue("TEST3 STRING");\r
- assertEquals(2, ctRun.sizeOfBrArray());\r
+ ctRun.addNewT().setStringValue("TEST STRING");
+ ctRun.addNewBr();
+ ctRun.addNewT().setStringValue("TEST2 STRING");
+ CTBr breac = ctRun.addNewBr();
+ breac.setClear(STBrClear.LEFT);
+ ctRun.addNewT().setStringValue("TEST3 STRING");
+ assertEquals(2, ctRun.sizeOfBrArray());
XWPFRun run = new XWPFRun(CTR.Factory.newInstance(), p);
run.setText("TEXT1");
run.addBreak(BreakType.TEXT_WRAPPING);
assertEquals(2, run.getCTR().sizeOfBrArray());
}
-\r
- /**\r
- * Test that on an existing document, we do the\r
- * right thing with it\r
- *\r
- * @throws IOException\r
- */\r
- public void testExisting() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");\r
- XWPFParagraph p;\r
- XWPFRun run;\r
-\r
-\r
- // First paragraph is simple\r
- p = doc.getParagraphArray(0);\r
- assertEquals("This is a test document.", p.getText());\r
- assertEquals(2, p.getRuns().size());\r
-\r
- run = p.getRuns().get(0);\r
- assertEquals("This is a test document", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
- run = p.getRuns().get(1);\r
- assertEquals(".", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
-\r
- // Next paragraph is all in one style, but a different one\r
- p = doc.getParagraphArray(1);\r
- assertEquals("This bit is in bold and italic", p.getText());\r
- assertEquals(1, p.getRuns().size());\r
-\r
- run = p.getRuns().get(0);\r
- assertEquals("This bit is in bold and italic", run.toString());\r
- assertEquals(true, run.isBold());\r
- assertEquals(true, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(true, run.getCTR().getRPr().isSetB());\r
- assertEquals(false, run.getCTR().getRPr().getB().isSetVal());\r
-\r
-\r
- // Back to normal\r
- p = doc.getParagraphArray(2);\r
- assertEquals("Back to normal", p.getText());\r
- assertEquals(1, p.getRuns().size());\r
-\r
- run = p.getRuns().get(0);\r
- assertEquals("Back to normal", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
-\r
- // Different styles in one paragraph\r
- p = doc.getParagraphArray(3);\r
- assertEquals("This contains BOLD, ITALIC and BOTH, as well as RED and YELLOW text.", p.getText());\r
- assertEquals(11, p.getRuns().size());\r
-\r
- run = p.getRuns().get(0);\r
- assertEquals("This contains ", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
- run = p.getRuns().get(1);\r
- assertEquals("BOLD", run.toString());\r
- assertEquals(true, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
-\r
- run = p.getRuns().get(2);\r
- assertEquals(", ", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
- run = p.getRuns().get(3);\r
- assertEquals("ITALIC", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(true, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
-\r
- run = p.getRuns().get(4);\r
- assertEquals(" and ", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
- run = p.getRuns().get(5);\r
- assertEquals("BOTH", run.toString());\r
- assertEquals(true, run.isBold());\r
- assertEquals(true, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
-\r
- run = p.getRuns().get(6);\r
- assertEquals(", as well as ", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
- run = p.getRuns().get(7);\r
- assertEquals("RED", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
-\r
- run = p.getRuns().get(8);\r
- assertEquals(" and ", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
-\r
- run = p.getRuns().get(9);\r
- assertEquals("YELLOW", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
-\r
- run = p.getRuns().get(10);\r
- assertEquals(" text.", run.toString());\r
- assertEquals(false, run.isBold());\r
- assertEquals(false, run.isItalic());\r
- assertEquals(false, run.isStrike());\r
- assertEquals(null, run.getCTR().getRPr());\r
- }\r
-\r
- public void testPictureInHeader() throws IOException {\r
+
+ /**
+ * Test that on an existing document, we do the
+ * right thing with it
+ *
+ * @throws IOException
+ */
+ public void testExisting() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
+ XWPFParagraph p;
+ XWPFRun run;
+
+
+ // First paragraph is simple
+ p = doc.getParagraphArray(0);
+ assertEquals("This is a test document.", p.getText());
+ assertEquals(2, p.getRuns().size());
+
+ run = p.getRuns().get(0);
+ assertEquals("This is a test document", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+ run = p.getRuns().get(1);
+ assertEquals(".", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+
+ // Next paragraph is all in one style, but a different one
+ p = doc.getParagraphArray(1);
+ assertEquals("This bit is in bold and italic", p.getText());
+ assertEquals(1, p.getRuns().size());
+
+ run = p.getRuns().get(0);
+ assertEquals("This bit is in bold and italic", run.toString());
+ assertEquals(true, run.isBold());
+ assertEquals(true, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(true, run.getCTR().getRPr().isSetB());
+ assertEquals(false, run.getCTR().getRPr().getB().isSetVal());
+
+
+ // Back to normal
+ p = doc.getParagraphArray(2);
+ assertEquals("Back to normal", p.getText());
+ assertEquals(1, p.getRuns().size());
+
+ run = p.getRuns().get(0);
+ assertEquals("Back to normal", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+
+ // Different styles in one paragraph
+ p = doc.getParagraphArray(3);
+ assertEquals("This contains BOLD, ITALIC and BOTH, as well as RED and YELLOW text.", p.getText());
+ assertEquals(11, p.getRuns().size());
+
+ run = p.getRuns().get(0);
+ assertEquals("This contains ", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+ run = p.getRuns().get(1);
+ assertEquals("BOLD", run.toString());
+ assertEquals(true, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+
+ run = p.getRuns().get(2);
+ assertEquals(", ", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+ run = p.getRuns().get(3);
+ assertEquals("ITALIC", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(true, run.isItalic());
+ assertEquals(false, run.isStrike());
+
+ run = p.getRuns().get(4);
+ assertEquals(" and ", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+ run = p.getRuns().get(5);
+ assertEquals("BOTH", run.toString());
+ assertEquals(true, run.isBold());
+ assertEquals(true, run.isItalic());
+ assertEquals(false, run.isStrike());
+
+ run = p.getRuns().get(6);
+ assertEquals(", as well as ", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+ run = p.getRuns().get(7);
+ assertEquals("RED", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+
+ run = p.getRuns().get(8);
+ assertEquals(" and ", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+
+ run = p.getRuns().get(9);
+ assertEquals("YELLOW", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+
+ run = p.getRuns().get(10);
+ assertEquals(" text.", run.toString());
+ assertEquals(false, run.isBold());
+ assertEquals(false, run.isItalic());
+ assertEquals(false, run.isStrike());
+ assertEquals(null, run.getCTR().getRPr());
+ }
+
+ public void testPictureInHeader() throws IOException {
XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");
XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
for (XWPFPicture pic : pictures) {
assertNotNull(pic.getPictureData());
- assertEquals("DOZOR", pic.getDescription());\r
- }\r
-\r
- count += pictures.size();\r
- }\r
- }\r
-\r
- assertEquals(1, count);\r
- }\r
-\r
- public void testAddPicture() throws Exception {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");\r
- XWPFParagraph p = doc.getParagraphArray(2);\r
- XWPFRun r = p.getRuns().get(0);\r
-\r
- assertEquals(0, doc.getAllPictures().size());\r
- assertEquals(0, r.getEmbeddedPictures().size());\r
-\r
- r.addPicture(new ByteArrayInputStream(new byte[0]), Document.PICTURE_TYPE_JPEG, "test.jpg", 21, 32);\r
-\r
- assertEquals(1, doc.getAllPictures().size());\r
- assertEquals(1, r.getEmbeddedPictures().size());\r
- }\r
-\r
- /**\r
- * Bugzilla #52288 - setting the font family on the\r
- * run mustn't NPE\r
- */\r
- public void testSetFontFamily_52288() throws Exception {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("52288.docx");\r
- final Iterator<XWPFParagraph> paragraphs = doc.getParagraphsIterator();\r
- while (paragraphs.hasNext()) {\r
- final XWPFParagraph paragraph = paragraphs.next();\r
- for (final XWPFRun run : paragraph.getRuns()) {\r
- if (run != null) {\r
- final String text = run.getText(0);\r
- if (text != null) {\r
- run.setFontFamily("Times New Roman");\r
- }\r
- }\r
- }\r
- }\r
- }\r
-}\r
+ assertEquals("DOZOR", pic.getDescription());
+ }
+
+ count += pictures.size();
+ }
+ }
+
+ assertEquals(1, count);
+ }
+
+ public void testAddPicture() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
+ XWPFParagraph p = doc.getParagraphArray(2);
+ XWPFRun r = p.getRuns().get(0);
+
+ assertEquals(0, doc.getAllPictures().size());
+ assertEquals(0, r.getEmbeddedPictures().size());
+
+ r.addPicture(new ByteArrayInputStream(new byte[0]), Document.PICTURE_TYPE_JPEG, "test.jpg", 21, 32);
+
+ assertEquals(1, doc.getAllPictures().size());
+ assertEquals(1, r.getEmbeddedPictures().size());
+ }
+
+ /**
+ * Bugzilla #52288 - setting the font family on the
+ * run mustn't NPE
+ */
+ public void testSetFontFamily_52288() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("52288.docx");
+ final Iterator<XWPFParagraph> paragraphs = doc.getParagraphsIterator();
+ while (paragraphs.hasNext()) {
+ final XWPFParagraph paragraph = paragraphs.next();
+ for (final XWPFRun run : paragraph.getRuns()) {
+ if (run != null) {
+ final String text = run.getText(0);
+ if (text != null) {
+ run.setFontFamily("Times New Roman");
+ }
+ }
+ }
+ }
+ }
+}
limitations under the License.
==================================================================== */
-package org.apache.poi.xwpf.usermodel;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-\r
-public final class TestXWPFSDT extends TestCase {\r
-\r
- /**\r
- * Test simple tag and title extraction from SDT\r
- *\r
- * @throws Exception\r
- */\r
- public void testTagTitle() throws Exception {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54849.docx");\r
- String tag = null;\r
- String title = null;\r
- List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);\r
- for (AbstractXWPFSDT sdt : sdts) {\r
- if (sdt.getContent().toString().equals("Rich_text")) {\r
- tag = "MyTag";\r
- title = "MyTitle";\r
- break;\r
- }\r
-\r
- }\r
- assertEquals("controls size", 13, sdts.size());\r
-\r
+package org.apache.poi.xwpf.usermodel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+
+public final class TestXWPFSDT extends TestCase {
+
+ /**
+ * Test simple tag and title extraction from SDT
+ *
+ * @throws Exception
+ */
+ public void testTagTitle() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54849.docx");
+ String tag = null;
+ String title = null;
+ List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);
+ for (AbstractXWPFSDT sdt : sdts) {
+ if (sdt.getContent().toString().equals("Rich_text")) {
+ tag = "MyTag";
+ title = "MyTitle";
+ break;
+ }
+
+ }
+ assertEquals("controls size", 13, sdts.size());
+
assertEquals("tag", "MyTag", tag);
assertEquals("title", "MyTitle", title);
- }\r
-\r
-\r
- public void testGetSDTs() throws Exception {\r
- String[] contents = new String[]{\r
- "header_rich_text",\r
- "Rich_text",\r
+ }
+
+
+ public void testGetSDTs() throws Exception {
+ String[] contents = new String[]{
+ "header_rich_text",
+ "Rich_text",
"Rich_text_pre_table\nRich_text_cell1\t\t\t\n\t\t\t\n\t\t\t\n\nRich_text_post_table",
"Plain_text_no_newlines",
"Plain_text_with_newlines1\nplain_text_with_newlines2",
};
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54849.docx");
List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);
-\r
- assertEquals("number of sdts", contents.length, sdts.size());\r
-\r
- for (int i = 0; i < contents.length; i++) {\r
- AbstractXWPFSDT sdt = sdts.get(i);\r
- assertEquals(i + ": " + contents[i], contents[i], sdt.getContent().toString());\r
- }\r
- }\r
-\r
- /**\r
- * POI-54771 and TIKA-1317\r
- */\r
+
+ assertEquals("number of sdts", contents.length, sdts.size());
+
+ for (int i = 0; i < contents.length; i++) {
+ AbstractXWPFSDT sdt = sdts.get(i);
+ assertEquals(i + ": " + contents[i], contents[i], sdt.getContent().toString());
+ }
+ }
+
+ /**
+ * POI-54771 and TIKA-1317
+ */
public void testSDTAsCell() throws Exception {
//Bug54771a.docx and Bug54771b.docx test slightly
//different recursion patterns. Keep both!
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54771a.docx");\r
- List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);\r
- String text = sdts.get(0).getContent().getText();\r
- assertEquals(2, sdts.size());\r
- assertTrue(text.indexOf("Test") > -1);\r
-\r
- text = sdts.get(1).getContent().getText();\r
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug54771a.docx");
+ List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);
+ String text = sdts.get(0).getContent().getText();
+ assertEquals(2, sdts.size());
+ assertTrue(text.indexOf("Test") > -1);
+
+ text = sdts.get(1).getContent().getText();
assertTrue(text.indexOf("Test Subtitle") > -1);
assertTrue(text.indexOf("Test User") > -1);
assertTrue(text.indexOf("Test") < text.indexOf("Test Subtitle"));
-\r
- doc = XWPFTestDataSamples.openSampleDocument("Bug54771b.docx");\r
- sdts = extractAllSDTs(doc);\r
- assertEquals(3, sdts.size());\r
- assertTrue(sdts.get(0).getContent().getText().indexOf("Test") > -1);\r
-\r
- assertTrue(sdts.get(1).getContent().getText().indexOf("Test Subtitle") > -1);\r
- assertTrue(sdts.get(2).getContent().getText().indexOf("Test User") > -1);\r
-\r
- }\r
-\r
- /**\r
- * POI-55142 and Tika 1130\r
- */\r
- public void testNewLinesBetweenRuns() throws Exception {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug55142.docx");\r
- List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);\r
- List<String> targs = new ArrayList<String>();\r
- //these test newlines and tabs in paragraphs/body elements\r
- targs.add("Rich-text1 abcdefghi");\r
- targs.add("Rich-text2 abcd\t\tefgh");\r
- targs.add("Rich-text3 abcd\nefg");\r
- targs.add("Rich-text4 abcdefg");\r
- targs.add("Rich-text5 abcdefg\nhijk");\r
- targs.add("Plain-text1 abcdefg");\r
- targs.add("Plain-text2 abcdefg\nhijk\nlmnop");\r
- //this tests consecutive runs within a cell (not a paragraph)\r
- //this test case was triggered by Tika-1130\r
- targs.add("sdt_incell2 abcdefg");\r
-\r
- for (int i = 0; i < sdts.size(); i++) {\r
- AbstractXWPFSDT sdt = sdts.get(i);\r
- assertEquals(targs.get(i), targs.get(i), sdt.getContent().getText());\r
- }\r
- }\r
-\r
- private List<AbstractXWPFSDT> extractAllSDTs(XWPFDocument doc) {\r
-\r
- List<AbstractXWPFSDT> sdts = new ArrayList<AbstractXWPFSDT>();\r
-\r
- List<XWPFHeader> headers = doc.getHeaderList();\r
- for (XWPFHeader header : headers) {\r
- sdts.addAll(extractSDTsFromBodyElements(header.getBodyElements()));\r
- }\r
- sdts.addAll(extractSDTsFromBodyElements(doc.getBodyElements()));\r
-\r
- List<XWPFFooter> footers = doc.getFooterList();\r
- for (XWPFFooter footer : footers) {\r
- sdts.addAll(extractSDTsFromBodyElements(footer.getBodyElements()));\r
- }\r
-\r
- for (XWPFFootnote footnote : doc.getFootnotes()) {\r
- sdts.addAll(extractSDTsFromBodyElements(footnote.getBodyElements()));\r
- }\r
- for (Map.Entry<Integer, XWPFFootnote> e : doc.endnotes.entrySet()) {\r
- sdts.addAll(extractSDTsFromBodyElements(e.getValue().getBodyElements()));\r
- }\r
- return sdts;\r
- }\r
-\r
- private List<AbstractXWPFSDT> extractSDTsFromBodyElements(List<IBodyElement> elements) {\r
- List<AbstractXWPFSDT> sdts = new ArrayList<AbstractXWPFSDT>();\r
- for (IBodyElement e : elements) {\r
- if (e instanceof XWPFSDT) {\r
- XWPFSDT sdt = (XWPFSDT) e;\r
- sdts.add(sdt);\r
- } else if (e instanceof XWPFParagraph) {\r
-\r
- XWPFParagraph p = (XWPFParagraph) e;\r
- for (IRunElement e2 : p.getIRuns()) {\r
- if (e2 instanceof XWPFSDT) {\r
- XWPFSDT sdt = (XWPFSDT) e2;\r
- sdts.add(sdt);\r
- }\r
- }\r
- } else if (e instanceof XWPFTable) {\r
- XWPFTable table = (XWPFTable) e;\r
- sdts.addAll(extractSDTsFromTable(table));\r
- }\r
- }\r
+
+ doc = XWPFTestDataSamples.openSampleDocument("Bug54771b.docx");
+ sdts = extractAllSDTs(doc);
+ assertEquals(3, sdts.size());
+ assertTrue(sdts.get(0).getContent().getText().indexOf("Test") > -1);
+
+ assertTrue(sdts.get(1).getContent().getText().indexOf("Test Subtitle") > -1);
+ assertTrue(sdts.get(2).getContent().getText().indexOf("Test User") > -1);
+
+ }
+
+ /**
+ * POI-55142 and Tika 1130
+ */
+ public void testNewLinesBetweenRuns() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug55142.docx");
+ List<AbstractXWPFSDT> sdts = extractAllSDTs(doc);
+ List<String> targs = new ArrayList<String>();
+ //these test newlines and tabs in paragraphs/body elements
+ targs.add("Rich-text1 abcdefghi");
+ targs.add("Rich-text2 abcd\t\tefgh");
+ targs.add("Rich-text3 abcd\nefg");
+ targs.add("Rich-text4 abcdefg");
+ targs.add("Rich-text5 abcdefg\nhijk");
+ targs.add("Plain-text1 abcdefg");
+ targs.add("Plain-text2 abcdefg\nhijk\nlmnop");
+ //this tests consecutive runs within a cell (not a paragraph)
+ //this test case was triggered by Tika-1130
+ targs.add("sdt_incell2 abcdefg");
+
+ for (int i = 0; i < sdts.size(); i++) {
+ AbstractXWPFSDT sdt = sdts.get(i);
+ assertEquals(targs.get(i), targs.get(i), sdt.getContent().getText());
+ }
+ }
+
+ private List<AbstractXWPFSDT> extractAllSDTs(XWPFDocument doc) {
+
+ List<AbstractXWPFSDT> sdts = new ArrayList<AbstractXWPFSDT>();
+
+ List<XWPFHeader> headers = doc.getHeaderList();
+ for (XWPFHeader header : headers) {
+ sdts.addAll(extractSDTsFromBodyElements(header.getBodyElements()));
+ }
+ sdts.addAll(extractSDTsFromBodyElements(doc.getBodyElements()));
+
+ List<XWPFFooter> footers = doc.getFooterList();
+ for (XWPFFooter footer : footers) {
+ sdts.addAll(extractSDTsFromBodyElements(footer.getBodyElements()));
+ }
+
+ for (XWPFFootnote footnote : doc.getFootnotes()) {
+ sdts.addAll(extractSDTsFromBodyElements(footnote.getBodyElements()));
+ }
+ for (Map.Entry<Integer, XWPFFootnote> e : doc.endnotes.entrySet()) {
+ sdts.addAll(extractSDTsFromBodyElements(e.getValue().getBodyElements()));
+ }
+ return sdts;
+ }
+
+ private List<AbstractXWPFSDT> extractSDTsFromBodyElements(List<IBodyElement> elements) {
+ List<AbstractXWPFSDT> sdts = new ArrayList<AbstractXWPFSDT>();
+ for (IBodyElement e : elements) {
+ if (e instanceof XWPFSDT) {
+ XWPFSDT sdt = (XWPFSDT) e;
+ sdts.add(sdt);
+ } else if (e instanceof XWPFParagraph) {
+
+ XWPFParagraph p = (XWPFParagraph) e;
+ for (IRunElement e2 : p.getIRuns()) {
+ if (e2 instanceof XWPFSDT) {
+ XWPFSDT sdt = (XWPFSDT) e2;
+ sdts.add(sdt);
+ }
+ }
+ } else if (e instanceof XWPFTable) {
+ XWPFTable table = (XWPFTable) e;
+ sdts.addAll(extractSDTsFromTable(table));
+ }
+ }
return sdts;
}
private List<AbstractXWPFSDT> extractSDTsFromTable(XWPFTable table) {
List<AbstractXWPFSDT> sdts = new ArrayList<AbstractXWPFSDT>();
- for (XWPFTableRow r : table.getRows()) {\r
- for (ICell c : r.getTableICells()) {\r
- if (c instanceof XWPFSDTCell) {\r
- sdts.add((XWPFSDTCell) c);\r
- } else if (c instanceof XWPFTableCell) {\r
- sdts.addAll(extractSDTsFromBodyElements(((XWPFTableCell) c).getBodyElements()));\r
- }\r
- }\r
- }\r
+ for (XWPFTableRow r : table.getRows()) {
+ for (ICell c : r.getTableICells()) {
+ if (c instanceof XWPFSDTCell) {
+ sdts.add((XWPFSDTCell) c);
+ } else if (c instanceof XWPFTableCell) {
+ sdts.addAll(extractSDTsFromBodyElements(((XWPFTableCell) c).getBodyElements()));
+ }
+ }
+ }
return sdts;
}
}
-/* ====================================================================\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
-==================================================================== */\r
-package org.apache.poi.xwpf.usermodel;\r
-\r
-import java.io.IOException;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-\r
-/**\r
- * Tests for reading SmartTags from Word docx.\r
- *\r
- * @author Fabian Lange\r
- */\r
-public final class TestXWPFSmartTag extends TestCase {\r
-\r
- public void testSmartTags() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("smarttag-snippet.docx");\r
- XWPFParagraph p = doc.getParagraphArray(0);\r
- assertTrue(p.getText().contains("Carnegie Mellon University School of Computer Science"));\r
- p = doc.getParagraphArray(2);\r
- assertTrue(p.getText().contains("Alice's Adventures"));\r
- }\r
-}\r
+/* ====================================================================
+ 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.poi.xwpf.usermodel;
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+
+/**
+ * Tests for reading SmartTags from Word docx.
+ *
+ * @author Fabian Lange
+ */
+public final class TestXWPFSmartTag extends TestCase {
+
+ public void testSmartTags() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("smarttag-snippet.docx");
+ XWPFParagraph p = doc.getParagraphArray(0);
+ assertTrue(p.getText().contains("Carnegie Mellon University School of Computer Science"));
+ p = doc.getParagraphArray(2);
+ assertTrue(p.getText().contains("Alice's Adventures"));
+ }
+}
import java.io.IOException;
import java.util.ArrayList;
-import java.util.List;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLatentStyles;\r
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLatentStyles;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLsdException;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyle;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyles;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STStyleType;
public class TestXWPFStyles extends TestCase {
+ public void testGetUsedStyles() throws IOException {
+ XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("Styles.docx");
+ List<XWPFStyle> testUsedStyleList = new ArrayList<XWPFStyle>();
+ XWPFStyles styles = sampleDoc.getStyles();
+ XWPFStyle style = styles.getStyle("berschrift1");
+ testUsedStyleList.add(style);
+ testUsedStyleList.add(styles.getStyle("Standard"));
+ testUsedStyleList.add(styles.getStyle("berschrift1Zchn"));
+ testUsedStyleList.add(styles.getStyle("Absatz-Standardschriftart"));
+ style.hasSameName(style);
+
+ List<XWPFStyle> usedStyleList = styles.getUsedStyleList(style);
+ assertEquals(usedStyleList, testUsedStyleList);
+ }
+
+ public void testAddStylesToDocument() throws IOException {
+ XWPFDocument docOut = new XWPFDocument();
+ XWPFStyles styles = docOut.createStyles();
+
+ String strStyleId = "headline1";
+ CTStyle ctStyle = CTStyle.Factory.newInstance();
+
+ ctStyle.setStyleId(strStyleId);
+ XWPFStyle s = new XWPFStyle(ctStyle);
+ styles.addStyle(s);
-// protected void setUp() throws Exception {\r
-// super.setUp();\r
-// }\r
-\r
- public void testGetUsedStyles() throws IOException {\r
- XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("Styles.docx");\r
- List<XWPFStyle> testUsedStyleList = new ArrayList<XWPFStyle>();\r
- XWPFStyles styles = sampleDoc.getStyles();\r
- XWPFStyle style = styles.getStyle("berschrift1");\r
- testUsedStyleList.add(style);\r
- testUsedStyleList.add(styles.getStyle("Standard"));\r
- testUsedStyleList.add(styles.getStyle("berschrift1Zchn"));\r
- testUsedStyleList.add(styles.getStyle("Absatz-Standardschriftart"));\r
- style.hasSameName(style);\r
-\r
- List<XWPFStyle> usedStyleList = styles.getUsedStyleList(style);\r
- assertEquals(usedStyleList, testUsedStyleList);\r
-\r
-\r
- }\r
-\r
- public void testAddStylesToDocument() throws IOException {\r
- XWPFDocument docOut = new XWPFDocument();\r
- XWPFStyles styles = docOut.createStyles();\r
-\r
- String strStyleId = "headline1";\r
- CTStyle ctStyle = CTStyle.Factory.newInstance();\r
-\r
- ctStyle.setStyleId(strStyleId);\r
- XWPFStyle s = new XWPFStyle(ctStyle);\r
- styles.addStyle(s);\r
-\r
- assertTrue(styles.styleExist(strStyleId));\r
-\r
- XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);\r
-\r
- styles = docIn.getStyles();\r
- assertTrue(styles.styleExist(strStyleId));\r
- }\r
-\r
- /**\r
- * Bug #52449 - We should be able to write a file containing\r
- * both regular and glossary styles without error\r
- */\r
- public void test52449() throws Exception {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("52449.docx");\r
- XWPFStyles styles = doc.getStyles();\r
- assertNotNull(styles);\r
-\r
- XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(doc);\r
- styles = docIn.getStyles();\r
- assertNotNull(styles);\r
- }\r
-\r
-\r
- /**\r
- * YK: tests below don't make much sense,\r
- * they exist only to copy xml beans to pi-ooxml-schemas.jar\r
- */\r
- public void testLanguages() {\r
- XWPFDocument docOut = new XWPFDocument();\r
- XWPFStyles styles = docOut.createStyles();\r
- styles.setEastAsia("Chinese");\r
+ assertTrue(styles.styleExist(strStyleId));
+
+ XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
+
+ styles = docIn.getStyles();
+ assertTrue(styles.styleExist(strStyleId));
+ }
+
+ /**
+ * Bug #52449 - We should be able to write a file containing
+ * both regular and glossary styles without error
+ */
+ public void test52449() throws Exception {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("52449.docx");
+ XWPFStyles styles = doc.getStyles();
+ assertNotNull(styles);
+
+ XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(doc);
+ styles = docIn.getStyles();
+ assertNotNull(styles);
+ }
+
+
+ /**
+ * YK: tests below don't make much sense,
+ * they exist only to copy xml beans to pi-ooxml-schemas.jar
+ */
+ @SuppressWarnings("resource")
+ public void testLanguages() {
+ XWPFDocument docOut = new XWPFDocument();
+ XWPFStyles styles = docOut.createStyles();
+ styles.setEastAsia("Chinese");
styles.setSpellingLanguage("English");
CTLsdException ex = latentStyles.addNewLsdException();
ex.setName("ex1");
XWPFLatentStyles ls = new XWPFLatentStyles(latentStyles);
- assertEquals(true, ls.isLatentStyle("ex1"));\r
- assertEquals(false, ls.isLatentStyle("notex1"));\r
- }\r
-\r
- public void testSetStyles_Bug57254() throws IOException {\r
- XWPFDocument docOut = new XWPFDocument();\r
- XWPFStyles styles = docOut.createStyles();\r
+ assertEquals(true, ls.isLatentStyle("ex1"));
+ assertEquals(false, ls.isLatentStyle("notex1"));
+ }
+
+ public void testSetStyles_Bug57254() throws IOException {
+ XWPFDocument docOut = new XWPFDocument();
+ XWPFStyles styles = docOut.createStyles();
CTStyles ctStyles = CTStyles.Factory.newInstance();
String strStyleId = "headline1";
CTStyle ctStyle = ctStyles.addNewStyle();
-\r
- ctStyle.setStyleId(strStyleId);\r
- styles.setStyles(ctStyles);\r
-\r
- assertTrue(styles.styleExist(strStyleId));\r
-\r
- XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);\r
-
- styles = docIn.getStyles();\r
- assertTrue(styles.styleExist(strStyleId));\r
- }\r
-\r
- public void testEasyAccessToStyles() throws IOException {\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");\r
- XWPFStyles styles = doc.getStyles();\r
- assertNotNull(styles);\r
-\r
- // Has 3 paragraphs on page one, a break, and 3 on page 2\r
- assertEquals(7, doc.getParagraphs().size());\r
-\r
- // Check the first three have no run styles, just default paragraph style\r
- for (int i = 0; i < 3; i++) {\r
- XWPFParagraph p = doc.getParagraphs().get(i);\r
- assertEquals(null, p.getStyle());\r
- assertEquals(null, p.getStyleID());\r
- assertEquals(1, p.getRuns().size());\r
-\r
- XWPFRun r = p.getRuns().get(0);\r
- assertEquals(null, r.getColor());\r
- assertEquals(null, r.getFontFamily());\r
- assertEquals(null, r.getFontName());\r
- assertEquals(-1, r.getFontSize());\r
- }\r
-\r
- // On page two, has explicit styles, but on runs not on\r
- // the paragraph itself\r
- for (int i = 4; i < 7; i++) {\r
- XWPFParagraph p = doc.getParagraphs().get(i);\r
- assertEquals(null, p.getStyle());\r
- assertEquals(null, p.getStyleID());\r
- assertEquals(1, p.getRuns().size());\r
-\r
- XWPFRun r = p.getRuns().get(0);\r
- assertEquals("Arial Black", r.getFontFamily());\r
- assertEquals("Arial Black", r.getFontName());\r
- assertEquals(16, r.getFontSize());\r
- assertEquals("548DD4", r.getColor());\r
- }\r
-\r
- // Check the document styles\r
- // Should have a style defined for each type\r
- assertEquals(4, styles.getNumberOfStyles());\r
+
+ ctStyle.setStyleId(strStyleId);
+ styles.setStyles(ctStyles);
+
+ assertTrue(styles.styleExist(strStyleId));
+
+ XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
+
+ styles = docIn.getStyles();
+ assertTrue(styles.styleExist(strStyleId));
+ }
+
+ public void testEasyAccessToStyles() throws IOException {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
+ XWPFStyles styles = doc.getStyles();
+ assertNotNull(styles);
+
+ // Has 3 paragraphs on page one, a break, and 3 on page 2
+ assertEquals(7, doc.getParagraphs().size());
+
+ // Check the first three have no run styles, just default paragraph style
+ for (int i = 0; i < 3; i++) {
+ XWPFParagraph p = doc.getParagraphs().get(i);
+ assertEquals(null, p.getStyle());
+ assertEquals(null, p.getStyleID());
+ assertEquals(1, p.getRuns().size());
+
+ XWPFRun r = p.getRuns().get(0);
+ assertEquals(null, r.getColor());
+ assertEquals(null, r.getFontFamily());
+ assertEquals(null, r.getFontName());
+ assertEquals(-1, r.getFontSize());
+ }
+
+ // On page two, has explicit styles, but on runs not on
+ // the paragraph itself
+ for (int i = 4; i < 7; i++) {
+ XWPFParagraph p = doc.getParagraphs().get(i);
+ assertEquals(null, p.getStyle());
+ assertEquals(null, p.getStyleID());
+ assertEquals(1, p.getRuns().size());
+
+ XWPFRun r = p.getRuns().get(0);
+ assertEquals("Arial Black", r.getFontFamily());
+ assertEquals("Arial Black", r.getFontName());
+ assertEquals(16, r.getFontSize());
+ assertEquals("548DD4", r.getColor());
+ }
+
+ // Check the document styles
+ // Should have a style defined for each type
+ assertEquals(4, styles.getNumberOfStyles());
assertNotNull(styles.getStyle("Normal"));
- assertNotNull(styles.getStyle("DefaultParagraphFont"));\r
- assertNotNull(styles.getStyle("TableNormal"));\r
- assertNotNull(styles.getStyle("NoList"));\r
-\r
- // We can't do much yet with latent styles\r
- assertEquals(137, styles.getLatentStyles().getNumberOfStyles());\r
-\r
- // Check the default styles\r
- assertNotNull(styles.getDefaultRunStyle());\r
- assertNotNull(styles.getDefaultParagraphStyle());\r
-\r
- assertEquals(11, styles.getDefaultRunStyle().getFontSize());\r
- assertEquals(200, styles.getDefaultParagraphStyle().getSpacingAfter());\r
- }\r
+ assertNotNull(styles.getStyle("DefaultParagraphFont"));
+ assertNotNull(styles.getStyle("TableNormal"));
+ assertNotNull(styles.getStyle("NoList"));
+
+ // We can't do much yet with latent styles
+ assertEquals(137, styles.getLatentStyles().getNumberOfStyles());
+
+ // Check the default styles
+ assertNotNull(styles.getDefaultRunStyle());
+ assertNotNull(styles.getDefaultParagraphStyle());
+
+ assertEquals(11, styles.getDefaultRunStyle().getFontSize());
+ assertEquals(200, styles.getDefaultParagraphStyle().getSpacingAfter());
+ }
}
package org.apache.poi.xwpf.usermodel;
import java.math.BigInteger;
-import java.util.List;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.XWPFTestDataSamples;\r
-import org.apache.poi.xwpf.usermodel.XWPFTable.XWPFBorderType;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;\r
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
+import org.apache.poi.xwpf.usermodel.XWPFTable.XWPFBorderType;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;
/**
- * Tests for XWPF Run
+ * Tests for XWPF Tables
*/
public class TestXWPFTable extends TestCase {
-
protected void setUp() {
/*
XWPFDocument doc = new XWPFDocument();
assertEquals(1, xtab.getCTTbl().getTrArray(0).sizeOfTcArray());
}
-\r
- public void testSetGetWidth() {\r
- XWPFDocument doc = new XWPFDocument();\r
-\r
- CTTbl table = CTTbl.Factory.newInstance();\r
- table.addNewTblPr().addNewTblW().setW(new BigInteger("1000"));\r
-\r
+
+ public void testSetGetWidth() {
+ XWPFDocument doc = new XWPFDocument();
+
+ CTTbl table = CTTbl.Factory.newInstance();
+ table.addNewTblPr().addNewTblW().setW(new BigInteger("1000"));
+
XWPFTable xtab = new XWPFTable(table, doc);
assertEquals(1000, xtab.getWidth());
XWPFTableRow row = xtab.createRow();
row.setHeight(20);
assertEquals(20, row.getHeight());
- }\r
-\r
- public void testSetGetMargins() {\r
- // instantiate the following class so it'll get picked up by\r
- // the XmlBean process and added to the jar file. it's required\r
- // for the following XWPFTable methods.\r
- CTTblCellMar ctm = CTTblCellMar.Factory.newInstance();\r
- assertNotNull(ctm);\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
- // set margins\r
- table.setCellMargins(50, 50, 250, 450);\r
+ }
+
+ public void testSetGetMargins() {
+ // instantiate the following class so it'll get picked up by
+ // the XmlBean process and added to the jar file. it's required
+ // for the following XWPFTable methods.
+ CTTblCellMar ctm = CTTblCellMar.Factory.newInstance();
+ assertNotNull(ctm);
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
+ // set margins
+ table.setCellMargins(50, 50, 250, 450);
// get margin components
int t = table.getCellMarginTop();
assertEquals(50, t);
assertEquals(250, b);
int r = table.getCellMarginRight();
assertEquals(450, r);
- }\r
-\r
- public void testSetGetHBorders() {\r
- // instantiate the following classes so they'll get picked up by\r
- // the XmlBean process and added to the jar file. they are required\r
- // for the following XWPFTable methods.\r
- CTTblBorders cttb = CTTblBorders.Factory.newInstance();\r
- assertNotNull(cttb);\r
- STBorder stb = STBorder.Factory.newInstance();\r
- assertNotNull(stb);\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
- // set inside horizontal border\r
- table.setInsideHBorder(XWPFBorderType.SINGLE, 4, 0, "FF0000");\r
+ }
+
+ public void testSetGetHBorders() {
+ // instantiate the following classes so they'll get picked up by
+ // the XmlBean process and added to the jar file. they are required
+ // for the following XWPFTable methods.
+ CTTblBorders cttb = CTTblBorders.Factory.newInstance();
+ assertNotNull(cttb);
+ STBorder stb = STBorder.Factory.newInstance();
+ assertNotNull(stb);
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
+ // set inside horizontal border
+ table.setInsideHBorder(XWPFBorderType.SINGLE, 4, 0, "FF0000");
// get inside horizontal border components
int s = table.getInsideHBorderSize();
assertEquals(4, s);
assertEquals("FF0000", clr);
XWPFBorderType bt = table.getInsideHBorderType();
assertEquals(XWPFBorderType.SINGLE, bt);
- }\r
-\r
- public void testSetGetVBorders() {\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
+ }
+
+ public void testSetGetVBorders() {
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
// set inside vertical border
table.setInsideVBorder(XWPFBorderType.DOUBLE, 4, 0, "00FF00");
// get inside vertical border components
XWPFBorderType bt = table.getInsideVBorderType();
assertEquals(XWPFBorderType.DOUBLE, bt);
int sz = table.getInsideVBorderSize();
- assertEquals(4, sz);\r
- int sp = table.getInsideVBorderSpace();\r
- assertEquals(0, sp);\r
- String clr = table.getInsideVBorderColor();\r
- assertEquals("00FF00", clr);\r
- }\r
-\r
+ assertEquals(4, sz);
+ int sp = table.getInsideVBorderSpace();
+ assertEquals(0, sp);
+ String clr = table.getInsideVBorderColor();
+ assertEquals("00FF00", clr);
+ }
+
public void testSetGetRowBandSize() {
XWPFDocument doc = new XWPFDocument();
CTTbl ctTable = CTTbl.Factory.newInstance();
table.setColBandSize(16);
int sz = table.getColBandSize();
assertEquals(16, sz);
- }\r
-\r
- public void testCreateTable() throws Exception {\r
- // open an empty document\r
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");\r
-\r
- // create a table with 5 rows and 7 columns\r
- int noRows = 5;\r
- int noCols = 7;\r
- XWPFTable table = doc.createTable(noRows, noCols);\r
-\r
- // assert the table is empty\r
- List<XWPFTableRow> rows = table.getRows();\r
- assertEquals("Table has less rows than requested.", noRows, rows.size());\r
- for (XWPFTableRow xwpfRow : rows) {\r
- assertNotNull(xwpfRow);\r
- for (int i = 0; i < 7; i++) {\r
- XWPFTableCell xwpfCell = xwpfRow.getCell(i);\r
- assertNotNull(xwpfCell);\r
- assertEquals("Empty cells should not have one paragraph.", 1, xwpfCell.getParagraphs().size());\r
- xwpfCell = xwpfRow.getCell(i);\r
- assertEquals("Calling 'getCell' must not modify cells content.", 1, xwpfCell.getParagraphs().size());\r
- }\r
- }\r
- doc.getPackage().revert();\r
- }\r
+ }
+
+ public void testCreateTable() throws Exception {
+ // open an empty document
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");
+
+ // create a table with 5 rows and 7 columns
+ int noRows = 5;
+ int noCols = 7;
+ XWPFTable table = doc.createTable(noRows, noCols);
+
+ // assert the table is empty
+ List<XWPFTableRow> rows = table.getRows();
+ assertEquals("Table has less rows than requested.", noRows, rows.size());
+ for (XWPFTableRow xwpfRow : rows) {
+ assertNotNull(xwpfRow);
+ for (int i = 0; i < 7; i++) {
+ XWPFTableCell xwpfCell = xwpfRow.getCell(i);
+ assertNotNull(xwpfCell);
+ assertEquals("Empty cells should not have one paragraph.", 1, xwpfCell.getParagraphs().size());
+ xwpfCell = xwpfRow.getCell(i);
+ assertEquals("Calling 'getCell' must not modify cells content.", 1, xwpfCell.getParagraphs().size());
+ }
+ }
+ doc.getPackage().revert();
+ }
}
\ No newline at end of file
* ====================================================================
*/
-package org.apache.poi.xwpf.usermodel;\r
-\r
-import junit.framework.TestCase;\r
-import org.apache.poi.xwpf.usermodel.XWPFTableCell.XWPFVertAlign;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHMerge;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcBorders;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVMerge;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalJc;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;\r
-\r
-public class TestXWPFTableCell extends TestCase {\r
-\r
- @Override\r
- protected void setUp() throws Exception {\r
- super.setUp();\r
- }\r
-\r
- public void testSetGetVertAlignment() throws Exception {\r
- // instantiate the following classes so they'll get picked up by\r
- // the XmlBean process and added to the jar file. they are required\r
- // for the following XWPFTableCell methods.\r
- CTShd ctShd = CTShd.Factory.newInstance();\r
- assertNotNull(ctShd);\r
- CTVerticalJc ctVjc = CTVerticalJc.Factory.newInstance();\r
- assertNotNull(ctVjc);\r
- STShd stShd = STShd.Factory.newInstance();\r
- assertNotNull(stShd);\r
- STVerticalJc stVjc = STVerticalJc.Factory.newInstance();\r
- assertNotNull(stVjc);\r
-\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
- // table has a single row by default; grab it\r
- XWPFTableRow tr = table.getRow(0);\r
+package org.apache.poi.xwpf.usermodel;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.xwpf.usermodel.XWPFTableCell.XWPFVertAlign;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHMerge;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcBorders;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVMerge;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalJc;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;
+
+public class TestXWPFTableCell extends TestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void testSetGetVertAlignment() throws Exception {
+ // instantiate the following classes so they'll get picked up by
+ // the XmlBean process and added to the jar file. they are required
+ // for the following XWPFTableCell methods.
+ CTShd ctShd = CTShd.Factory.newInstance();
+ assertNotNull(ctShd);
+ CTVerticalJc ctVjc = CTVerticalJc.Factory.newInstance();
+ assertNotNull(ctVjc);
+ STShd stShd = STShd.Factory.newInstance();
+ assertNotNull(stShd);
+ STVerticalJc stVjc = STVerticalJc.Factory.newInstance();
+ assertNotNull(stVjc);
+
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
+ // table has a single row by default; grab it
+ XWPFTableRow tr = table.getRow(0);
assertNotNull(tr);
// row has a single cell by default; grab it
XWPFTableCell cell = tr.getCell(0);
- cell.setVerticalAlignment(XWPFVertAlign.BOTH);\r
- XWPFVertAlign al = cell.getVerticalAlignment();\r
- assertEquals(XWPFVertAlign.BOTH, al);\r
- }\r
-\r
- public void testSetGetColor() throws Exception {\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
- // table has a single row by default; grab it\r
- XWPFTableRow tr = table.getRow(0);\r
+ cell.setVerticalAlignment(XWPFVertAlign.BOTH);
+ XWPFVertAlign al = cell.getVerticalAlignment();
+ assertEquals(XWPFVertAlign.BOTH, al);
+ }
+
+ public void testSetGetColor() throws Exception {
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
+ // table has a single row by default; grab it
+ XWPFTableRow tr = table.getRow(0);
assertNotNull(tr);
// row has a single cell by default; grab it
XWPFTableCell cell = tr.getCell(0);
- cell.setColor("F0000F");\r
- String clr = cell.getColor();\r
- assertEquals("F0000F", clr);\r
- }\r
-\r
- /**\r
- * ensure that CTHMerge & CTTcBorders go in poi-ooxml.jar\r
- */\r
- public void test54099() {\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
+ cell.setColor("F0000F");
+ String clr = cell.getColor();
+ assertEquals("F0000F", clr);
+ }
+
+ /**
+ * ensure that CTHMerge & CTTcBorders go in poi-ooxml.jar
+ */
+ @SuppressWarnings("unused")
+ public void test54099() {
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
XWPFTableRow tr = table.getRow(0);
XWPFTableCell cell = tr.getCell(0);
limitations under the License.
==================================================================== */
-package org.apache.poi.xwpf.usermodel;\r
-\r
-import junit.framework.TestCase;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;\r
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;\r
-\r
-public class TestXWPFTableRow extends TestCase {\r
-\r
- @Override\r
- protected void setUp() throws Exception {\r
- super.setUp();\r
- }\r
-\r
- public void testCreateRow() throws Exception {\r
- CTRow ctRow = CTRow.Factory.newInstance();\r
- assertNotNull(ctRow);\r
- }\r
-\r
- @Override\r
- protected void tearDown() throws Exception {\r
- super.tearDown();\r
- }\r
-\r
- public void testSetGetCantSplitRow() {\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
- // table has a single row by default; grab it\r
- XWPFTableRow tr = table.getRow(0);\r
- assertNotNull(tr);\r
-\r
- tr.setCantSplitRow(true);\r
- boolean isCant = tr.isCantSplitRow();\r
- assert (isCant);\r
- }\r
-\r
- public void testSetGetRepeatHeader() {\r
- // create a table\r
- XWPFDocument doc = new XWPFDocument();\r
- CTTbl ctTable = CTTbl.Factory.newInstance();\r
- XWPFTable table = new XWPFTable(ctTable, doc);\r
- // table has a single row by default; grab it\r
- XWPFTableRow tr = table.getRow(0);\r
- assertNotNull(tr);\r
-\r
- tr.setRepeatHeader(true);\r
- boolean isRpt = tr.isRepeatHeader();\r
- assert (isRpt);\r
- }\r
-}\r
+package org.apache.poi.xwpf.usermodel;
+
+import junit.framework.TestCase;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
+
+public class TestXWPFTableRow extends TestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void testCreateRow() throws Exception {
+ CTRow ctRow = CTRow.Factory.newInstance();
+ assertNotNull(ctRow);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testSetGetCantSplitRow() {
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
+ // table has a single row by default; grab it
+ XWPFTableRow tr = table.getRow(0);
+ assertNotNull(tr);
+
+ tr.setCantSplitRow(true);
+ boolean isCant = tr.isCantSplitRow();
+ assert (isCant);
+ }
+
+ public void testSetGetRepeatHeader() {
+ // create a table
+ XWPFDocument doc = new XWPFDocument();
+ CTTbl ctTable = CTTbl.Factory.newInstance();
+ XWPFTable table = new XWPFTable(ctTable, doc);
+ // table has a single row by default; grab it
+ XWPFTableRow tr = table.getRow(0);
+ assertNotNull(tr);
+
+ tr.setRepeatHeader(true);
+ boolean isRpt = tr.isRepeatHeader();
+ assert (isRpt);
+ }
+}