123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- package org.apache.poi.hssf.usermodel;
-
- import junit.framework.TestCase;
- import org.apache.poi.hssf.HSSFTestDataSamples;
- import org.apache.poi.hssf.model.HSSFTestModelHelper;
- import org.apache.poi.hssf.model.TextboxShape;
- import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
- import org.apache.poi.hssf.record.ObjRecord;
- import org.apache.poi.hssf.record.TextObjectRecord;
-
- import java.util.Arrays;
-
- /**
- * @author Evgeniy Berlog
- * @date 25.06.12
- */
- public class TestText extends TestCase {
-
- public void testResultEqualsToAbstractShape() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sh = wb.createSheet();
- HSSFPatriarch patriarch = sh.createDrawingPatriarch();
- HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor());
- TextboxShape textboxShape = HSSFTestModelHelper.createTextboxShape(0, textbox);
-
- assertEquals(textbox.getEscherContainer().getChildRecords().size(), 5);
- assertEquals(textboxShape.getSpContainer().getChildRecords().size(), 5);
-
- //sp record
- byte[] expected = textboxShape.getSpContainer().getChild(0).serialize();
- byte[] actual = textbox.getEscherContainer().getChild(0).serialize();
-
- assertEquals(expected.length, actual.length);
- assertTrue(Arrays.equals(expected, actual));
-
- expected = textboxShape.getSpContainer().getChild(2).serialize();
- actual = textbox.getEscherContainer().getChild(2).serialize();
-
- assertEquals(expected.length, actual.length);
- assertTrue(Arrays.equals(expected, actual));
-
- expected = textboxShape.getSpContainer().getChild(3).serialize();
- actual = textbox.getEscherContainer().getChild(3).serialize();
-
- assertEquals(expected.length, actual.length);
- assertTrue(Arrays.equals(expected, actual));
-
- expected = textboxShape.getSpContainer().getChild(4).serialize();
- actual = textbox.getEscherContainer().getChild(4).serialize();
-
- assertEquals(expected.length, actual.length);
- assertTrue(Arrays.equals(expected, actual));
-
- ObjRecord obj = textbox.getObjRecord();
- ((CommonObjectDataSubRecord) obj.getSubRecords().get(0)).setObjectId(-1024);
- ObjRecord objShape = textboxShape.getObjRecord();
-
- expected = obj.serialize();
- actual = objShape.serialize();
-
- assertEquals(expected.length, actual.length);
- assertTrue(Arrays.equals(expected, actual));
-
- TextObjectRecord tor = textbox.getTextObjectRecord();
- TextObjectRecord torShape = textboxShape.getTextObjectRecord();
-
- expected = tor.serialize();
- actual = torShape.serialize();
-
- assertEquals(expected.length, actual.length);
- assertTrue(Arrays.equals(expected, actual));
- }
-
- public void testAddTextToExistingFile() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sh = wb.createSheet();
- HSSFPatriarch patriarch = sh.createDrawingPatriarch();
- HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor());
- textbox.setString(new HSSFRichTextString("just for test"));
- HSSFTextbox textbox2 = patriarch.createTextbox(new HSSFClientAnchor());
- textbox2.setString(new HSSFRichTextString("just for test2"));
-
- assertEquals(patriarch.getChildren().size(), 2);
-
- wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
- sh = wb.getSheetAt(0);
- patriarch = sh.getDrawingPatriarch();
-
- assertEquals(patriarch.getChildren().size(), 2);
- HSSFTextbox text3 = patriarch.createTextbox(new HSSFClientAnchor());
- text3.setString(new HSSFRichTextString("text3"));
- assertEquals(patriarch.getChildren().size(), 3);
-
- wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
- sh = wb.getSheetAt(0);
- patriarch = sh.getDrawingPatriarch();
-
- assertEquals(patriarch.getChildren().size(), 3);
- assertEquals(((HSSFTextbox) patriarch.getChildren().get(0)).getString().getString(), "just for test");
- assertEquals(((HSSFTextbox) patriarch.getChildren().get(1)).getString().getString(), "just for test2");
- assertEquals(((HSSFTextbox) patriarch.getChildren().get(2)).getString().getString(), "text3");
- }
-
- public void testSetGetProperties() {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sh = wb.createSheet();
- HSSFPatriarch patriarch = sh.createDrawingPatriarch();
- HSSFTextbox textbox = patriarch.createTextbox(new HSSFClientAnchor());
- textbox.setString(new HSSFRichTextString("test"));
- assertEquals(textbox.getString().getString(), "test");
-
- textbox.setHorizontalAlignment((short) 5);
- assertEquals(textbox.getHorizontalAlignment(), 5);
-
- textbox.setVerticalAlignment((short) 6);
- assertEquals(textbox.getVerticalAlignment(), (short) 6);
-
- textbox.setMarginBottom(7);
- assertEquals(textbox.getMarginBottom(), 7);
-
- textbox.setMarginLeft(8);
- assertEquals(textbox.getMarginLeft(), 8);
-
- textbox.setMarginRight(9);
- assertEquals(textbox.getMarginRight(), 9);
-
- textbox.setMarginTop(10);
- assertEquals(textbox.getMarginTop(), 10);
-
- wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
- sh = wb.getSheetAt(0);
- patriarch = sh.getDrawingPatriarch();
- textbox = (HSSFTextbox) patriarch.getChildren().get(0);
- assertEquals(textbox.getString().getString(), "test");
- assertEquals(textbox.getHorizontalAlignment(), 5);
- assertEquals(textbox.getVerticalAlignment(), (short) 6);
- assertEquals(textbox.getMarginBottom(), 7);
- assertEquals(textbox.getMarginLeft(), 8);
- assertEquals(textbox.getMarginRight(), 9);
- assertEquals(textbox.getMarginTop(), 10);
-
- textbox.setString(new HSSFRichTextString("test1"));
- textbox.setHorizontalAlignment(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED);
- textbox.setVerticalAlignment(HSSFTextbox.VERTICAL_ALIGNMENT_TOP);
- textbox.setMarginBottom(71);
- textbox.setMarginLeft(81);
- textbox.setMarginRight(91);
- textbox.setMarginTop(101);
-
- assertEquals(textbox.getString().getString(), "test1");
- assertEquals(textbox.getHorizontalAlignment(), HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED);
- assertEquals(textbox.getVerticalAlignment(), HSSFTextbox.VERTICAL_ALIGNMENT_TOP);
- assertEquals(textbox.getMarginBottom(), 71);
- assertEquals(textbox.getMarginLeft(), 81);
- assertEquals(textbox.getMarginRight(), 91);
- assertEquals(textbox.getMarginTop(), 101);
-
- wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
- sh = wb.getSheetAt(0);
- patriarch = sh.getDrawingPatriarch();
- textbox = (HSSFTextbox) patriarch.getChildren().get(0);
-
- assertEquals(textbox.getString().getString(), "test1");
- assertEquals(textbox.getHorizontalAlignment(), HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED);
- assertEquals(textbox.getVerticalAlignment(), HSSFTextbox.VERTICAL_ALIGNMENT_TOP);
- assertEquals(textbox.getMarginBottom(), 71);
- assertEquals(textbox.getMarginLeft(), 81);
- assertEquals(textbox.getMarginRight(), 91);
- assertEquals(textbox.getMarginTop(), 101);
- }
-
- public void testExistingFileWithText(){
- HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls");
- HSSFSheet sheet = wb.getSheet("text");
- HSSFPatriarch drawing = sheet.getDrawingPatriarch();
- assertEquals(1, drawing.getChildren().size());
- HSSFTextbox textbox = (HSSFTextbox) drawing.getChildren().get(0);
- assertEquals(textbox.getHorizontalAlignment(), HSSFTextbox.HORIZONTAL_ALIGNMENT_LEFT);
- assertEquals(textbox.getVerticalAlignment(), HSSFTextbox.VERTICAL_ALIGNMENT_TOP);
- assertEquals(textbox.getMarginTop(), 0);
- assertEquals(textbox.getMarginBottom(), 3600000);
- assertEquals(textbox.getMarginLeft(), 3600000);
- assertEquals(textbox.getMarginRight(), 0);
- assertEquals(textbox.getString().getString(), "teeeeesssstttt");
- }
- }
|