You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2016/05/09 03:27:32 UTC

svn commit: r1742865 - in /poi/trunk/src/testcases/org/apache/poi/hssf/usermodel: AllUserModelTests.java TestComment.java TestHSSFComment.java

Author: onealj
Date: Mon May  9 03:27:32 2016
New Revision: 1742865

URL: http://svn.apache.org/viewvc?rev=1742865&view=rev
Log:
merge TestComment into TestHSSFComment

Removed:
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestComment.java
Modified:
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java?rev=1742865&r1=1742864&r2=1742865&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/AllUserModelTests.java Mon May  9 03:27:32 2016
@@ -38,7 +38,7 @@ import org.junit.runners.Suite;
     TestFormulas.class,
     TestHSSFCell.class,
     TestHSSFClientAnchor.class,
-    TestHSSFComment.class,
+    //TestHSSFComment.class, //converted to junit4
     TestHSSFConditionalFormatting.class,
     TestHSSFDataFormat.class,
     TestHSSFDataFormatter.class,

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java?rev=1742865&r1=1742864&r2=1742865&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java Mon May  9 03:27:32 2016
@@ -16,11 +16,23 @@
 ==================================================================== */
 package org.apache.poi.hssf.usermodel;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
+import java.io.IOException;
+
+import org.apache.poi.ddf.EscherSpRecord;
 import org.apache.poi.hssf.HSSFITestDataProvider;
 import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.model.CommentShape;
+import org.apache.poi.hssf.model.HSSFTestModelHelper;
+import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
+import org.apache.poi.hssf.record.EscherAggregate;
+import org.apache.poi.hssf.record.NoteRecord;
+import org.apache.poi.hssf.record.ObjRecord;
+import org.apache.poi.hssf.record.TextObjectRecord;
 import org.apache.poi.ss.usermodel.BaseTestCellComment;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.ClientAnchor;
@@ -187,5 +199,279 @@ public final class TestHSSFComment exten
         cell.setCellComment(comment);
         
         return comment;
-    }    
+    }
+    
+    @Test
+    public void resultEqualsToAbstractShape() throws IOException {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+
+        HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor());
+        HSSFRow row = sh.createRow(0);
+        HSSFCell cell = row.createCell(0);
+        cell.setCellComment(comment);
+
+        CommentShape commentShape = HSSFTestModelHelper.createCommentShape(1025, comment);
+
+        assertEquals(comment.getEscherContainer().getChildRecords().size(), 5);
+        assertEquals(commentShape.getSpContainer().getChildRecords().size(), 5);
+
+        //sp record
+        byte[] expected = commentShape.getSpContainer().getChild(0).serialize();
+        byte[] actual = comment.getEscherContainer().getChild(0).serialize();
+
+        assertEquals(expected.length, actual.length);
+        assertArrayEquals(expected, actual);
+
+        expected = commentShape.getSpContainer().getChild(2).serialize();
+        actual = comment.getEscherContainer().getChild(2).serialize();
+
+        assertEquals(expected.length, actual.length);
+        assertArrayEquals(expected, actual);
+
+        expected = commentShape.getSpContainer().getChild(3).serialize();
+        actual = comment.getEscherContainer().getChild(3).serialize();
+
+        assertEquals(expected.length, actual.length);
+        assertArrayEquals(expected, actual);
+
+        expected = commentShape.getSpContainer().getChild(4).serialize();
+        actual = comment.getEscherContainer().getChild(4).serialize();
+
+        assertEquals(expected.length, actual.length);
+        assertArrayEquals(expected, actual);
+
+        ObjRecord obj = comment.getObjRecord();
+        ObjRecord objShape = commentShape.getObjRecord();
+
+        expected = obj.serialize();
+        actual = objShape.serialize();
+
+        assertEquals(expected.length, actual.length);
+        //assertArrayEquals(expected, actual);
+
+        TextObjectRecord tor = comment.getTextObjectRecord();
+        TextObjectRecord torShape = commentShape.getTextObjectRecord();
+
+        expected = tor.serialize();
+        actual = torShape.serialize();
+
+        assertEquals(expected.length, actual.length);
+        assertArrayEquals(expected, actual);
+
+        NoteRecord note = comment.getNoteRecord();
+        NoteRecord noteShape = commentShape.getNoteRecord();
+
+        expected = note.serialize();
+        actual = noteShape.serialize();
+
+        assertEquals(expected.length, actual.length);
+        assertArrayEquals(expected, actual);
+
+        wb.close();
+    }
+
+    @Test
+    public void addToExistingFile() throws IOException {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+        int idx = wb.addPicture(new byte[]{1,2,3}, HSSFWorkbook.PICTURE_TYPE_PNG);
+
+        HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor());
+        comment.setColumn(5);
+        comment.setString(new HSSFRichTextString("comment1"));
+        comment = patriarch.createCellComment(new HSSFClientAnchor(0,0,100,100,(short)0,0,(short)10,10));
+        comment.setRow(5);
+        comment.setString(new HSSFRichTextString("comment2"));
+        comment.setBackgroundImage(idx);
+        assertEquals(comment.getBackgroundImageId(), idx);
+
+        assertEquals(patriarch.getChildren().size(), 2);
+
+        HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb);
+        sh = wbBack.getSheetAt(0);
+        patriarch = sh.getDrawingPatriarch();
+
+        comment = (HSSFComment) patriarch.getChildren().get(1);
+        assertEquals(comment.getBackgroundImageId(), idx);
+        comment.resetBackgroundImage();
+        assertEquals(comment.getBackgroundImageId(), 0);
+
+        assertEquals(patriarch.getChildren().size(), 2);
+        comment = patriarch.createCellComment(new HSSFClientAnchor());
+        comment.setString(new HSSFRichTextString("comment3"));
+
+        assertEquals(patriarch.getChildren().size(), 3);
+        HSSFWorkbook wbBack2 = HSSFTestDataSamples.writeOutAndReadBack(wbBack);
+        sh = wbBack2.getSheetAt(0);
+        patriarch = sh.getDrawingPatriarch();
+        comment = (HSSFComment) patriarch.getChildren().get(1);
+        assertEquals(comment.getBackgroundImageId(), 0);
+        assertEquals(patriarch.getChildren().size(), 3);
+        assertEquals(((HSSFComment) patriarch.getChildren().get(0)).getString().getString(), "comment1");
+        assertEquals(((HSSFComment) patriarch.getChildren().get(1)).getString().getString(), "comment2");
+        assertEquals(((HSSFComment) patriarch.getChildren().get(2)).getString().getString(), "comment3");
+        
+        wb.close();
+        wbBack.close();
+        wbBack2.close();
+    }
+
+    @Test
+    public void setGetProperties() throws IOException {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+
+        HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor());
+        comment.setString(new HSSFRichTextString("comment1"));
+        assertEquals(comment.getString().getString(), "comment1");
+
+        comment.setAuthor("poi");
+        assertEquals(comment.getAuthor(), "poi");
+
+        comment.setColumn(3);
+        assertEquals(comment.getColumn(), 3);
+
+        comment.setRow(4);
+        assertEquals(comment.getRow(), 4);
+
+        comment.setVisible(false);
+        assertEquals(comment.isVisible(), false);
+
+        HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb);
+        sh = wbBack.getSheetAt(0);
+        patriarch = sh.getDrawingPatriarch();
+
+        comment = (HSSFComment) patriarch.getChildren().get(0);
+
+        assertEquals(comment.getString().getString(), "comment1");
+        assertEquals("poi", comment.getAuthor());
+        assertEquals(comment.getColumn(), 3);
+        assertEquals(comment.getRow(), 4);
+        assertEquals(comment.isVisible(), false);
+
+        comment.setString(new HSSFRichTextString("comment12"));
+        comment.setAuthor("poi2");
+        comment.setColumn(32);
+        comment.setRow(42);
+        comment.setVisible(true);
+
+        HSSFWorkbook wbBack2 = HSSFTestDataSamples.writeOutAndReadBack(wbBack);
+        sh = wbBack2.getSheetAt(0);
+        patriarch = sh.getDrawingPatriarch();
+        comment = (HSSFComment) patriarch.getChildren().get(0);
+
+        assertEquals(comment.getString().getString(), "comment12");
+        assertEquals("poi2", comment.getAuthor());
+        assertEquals(comment.getColumn(), 32);
+        assertEquals(comment.getRow(), 42);
+        assertEquals(comment.isVisible(), true);
+        
+        wb.close();
+        wbBack.close();
+        wbBack2.close();
+    }
+
+    @Test
+    public void existingFileWithComment(){
+        HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls");
+        HSSFSheet sheet = wb.getSheet("comments");
+        HSSFPatriarch drawing = sheet.getDrawingPatriarch();
+        assertEquals(1, drawing.getChildren().size());
+        HSSFComment comment = (HSSFComment) drawing.getChildren().get(0);
+        assertEquals(comment.getAuthor(), "evgeniy");
+        assertEquals(comment.getString().getString(), "evgeniy:\npoi test");
+        assertEquals(comment.getColumn(), 1);
+        assertEquals(comment.getRow(), 2);
+    }
+
+    @Test
+    public void findComments() throws IOException{
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+
+        HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor());
+        HSSFRow row = sh.createRow(5);
+        HSSFCell cell = row.createCell(4);
+        cell.setCellComment(comment);
+
+        HSSFTestModelHelper.createCommentShape(0, comment);
+
+        assertNotNull(sh.findCellComment(5, 4));
+        assertNull(sh.findCellComment(5, 5));
+
+        HSSFWorkbook wbBack = HSSFTestDataSamples.writeOutAndReadBack(wb);
+        sh = wbBack.getSheetAt(0);
+
+        assertNotNull(sh.findCellComment(5, 4));
+        assertNull(sh.findCellComment(5, 5));
+        
+        wb.close();
+        wbBack.close();
+    }
+
+    @Test
+    public void initState() throws IOException{
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+
+        EscherAggregate agg = HSSFTestHelper.getEscherAggregate(patriarch);
+        assertEquals(agg.getTailRecords().size(), 0);
+
+        HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor());
+        assertEquals(agg.getTailRecords().size(), 1);
+
+        HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor());
+        assertNotNull(shape);
+
+        assertEquals(comment.getOptRecord().getEscherProperties().size(), 10);
+        
+        wb.close();
+    }
+
+    @Test
+    public void shapeId() throws IOException{
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+
+        HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor());
+
+        comment.setShapeId(2024);
+
+        assertEquals(comment.getShapeId(), 2024);
+
+        CommonObjectDataSubRecord cod = (CommonObjectDataSubRecord) comment.getObjRecord().getSubRecords().get(0);
+        assertEquals(2024, cod.getObjectId());
+        EscherSpRecord spRecord = (EscherSpRecord) comment.getEscherContainer().getChild(0);
+        assertEquals(2024, spRecord.getShapeId(), 2024);
+        assertEquals(2024, comment.getShapeId(), 2024);
+        assertEquals(2024, comment.getNoteRecord().getShapeId());
+        
+        wb.close();
+    }
+    
+    @Test
+    public void attemptToSave2CommentsWithSameCoordinates(){
+        Object err = null;
+        
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFPatriarch patriarch = sh.createDrawingPatriarch();
+        patriarch.createCellComment(new HSSFClientAnchor());
+        patriarch.createCellComment(new HSSFClientAnchor());
+        
+        try{
+            HSSFTestDataSamples.writeOutAndReadBack(wb);
+        } catch (IllegalStateException e){
+            err = 1;
+            assertEquals(e.getMessage(), "found multiple cell comments for cell $A$1");
+        }
+        assertNotNull(err);
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org