137 lines
5.3 KiB
Java
137 lines
5.3 KiB
Java
/*
|
|
* ====================================================================
|
|
* 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.*;
|
|
|
|
import org.junit.Ignore;
|
|
import org.junit.Test;
|
|
|
|
import org.apache.poi.xwpf.XWPFTestDataSamples;
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell.XWPFVertAlign;
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
|
|
|
|
import java.util.List;
|
|
|
|
public class TestXWPFTableCell {
|
|
|
|
@Test
|
|
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);
|
|
XWPFVertAlign al = cell.getVerticalAlignment();
|
|
assertEquals(XWPFVertAlign.BOTH, al);
|
|
}
|
|
|
|
@Test
|
|
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");
|
|
String clr = cell.getColor();
|
|
assertEquals("F0000F", clr);
|
|
}
|
|
|
|
/**
|
|
* ensure that CTHMerge and CTTcBorders go in poi-ooxml.jar
|
|
*/
|
|
@SuppressWarnings("unused")
|
|
@Test
|
|
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);
|
|
|
|
CTTc ctTc = cell.getCTTc();
|
|
CTTcPr tcPr = ctTc.addNewTcPr();
|
|
CTHMerge hMerge = tcPr.addNewHMerge();
|
|
hMerge.setVal(STMerge.RESTART);
|
|
|
|
CTTcBorders tblBorders = tcPr.addNewTcBorders();
|
|
CTVMerge vMerge = tcPr.addNewVMerge();
|
|
}
|
|
|
|
@Test
|
|
public void testCellVerticalAlign() throws Exception{
|
|
XWPFDocument docx = XWPFTestDataSamples.openSampleDocument("59030.docx");
|
|
List<XWPFTable> tables = docx.getTables();
|
|
assertEquals(1, tables.size());
|
|
|
|
XWPFTable table = tables.get(0);
|
|
|
|
List<XWPFTableRow> tableRows = table.getRows();
|
|
assertEquals(2, tableRows.size());
|
|
|
|
assertNull(tableRows.get(0).getCell(0).getVerticalAlignment());
|
|
assertEquals(XWPFVertAlign.BOTTOM, tableRows.get(0).getCell(1).getVerticalAlignment());
|
|
assertEquals(XWPFVertAlign.CENTER, tableRows.get(1).getCell(0).getVerticalAlignment());
|
|
assertNull(tableRows.get(1).getCell(1).getVerticalAlignment()); // should return null since alignment isn't set
|
|
}
|
|
|
|
// This is not a very useful test as written. It is not worth the execution time for a unit test
|
|
@Ignore
|
|
@Test
|
|
public void testCellVerticalAlignShouldNotThrowNPE() throws Exception {
|
|
XWPFDocument docx = XWPFTestDataSamples.openSampleDocument("TestTableCellAlign.docx");
|
|
List<XWPFTable> tables = docx.getTables();
|
|
for (XWPFTable table : tables) {
|
|
List<XWPFTableRow> tableRows = table.getRows();
|
|
for (XWPFTableRow tableRow : tableRows) {
|
|
List<XWPFTableCell> tableCells = tableRow.getTableCells();
|
|
for (XWPFTableCell tableCell : tableCells) {
|
|
// getVerticalAlignment should return either an XWPFVertAlign enum or null if not set
|
|
tableCell.getVerticalAlignment();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|