You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/12/22 21:44:48 UTC
svn commit: r1871911 [15/15] - in /poi/trunk/src:
integrationtest/org/apache/poi/
integrationtest/org/apache/poi/hssf/usermodel/ java/org/apache/poi/common/
java/org/apache/poi/ddf/
java/org/apache/poi/hssf/eventusermodel/dummyrecord/ java/org/apache/p...
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java?rev=1871911&r1=1871910&r2=1871911&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSSTRecordSizeCalculator.java Sun Dec 22 21:44:45 2019
@@ -18,23 +18,34 @@
package org.apache.poi.hssf.record;
import junit.framework.TestCase;
-
import org.apache.poi.hssf.record.common.UnicodeString;
import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
import org.apache.poi.util.IntMapper;
+import org.apache.poi.util.LittleEndianConsts;
/**
* Tests that records size calculates correctly.
- *
+ *
* @author Glen Stampoultzis (glens at apache.org)
*/
public final class TestSSTRecordSizeCalculator extends TestCase {
private static final String SMALL_STRING = "Small string";
private static final int COMPRESSED_PLAIN_STRING_OVERHEAD = 3;
private static final int OPTION_FIELD_SIZE = 1;
-
+
private final IntMapper<UnicodeString> strings = new IntMapper<>();
+
+ /** standard record overhead: two shorts (record id plus data space size)*/
+ private static final int STD_RECORD_OVERHEAD = 2 * LittleEndianConsts.SHORT_SIZE;
+
+ /** SST overhead: the standard record overhead, plus the number of strings and the number of unique strings -- two ints */
+ private static final int SST_RECORD_OVERHEAD = STD_RECORD_OVERHEAD + 2 * LittleEndianConsts.INT_SIZE;
+
+ /** how much data can we stuff into an SST record? That would be _max minus the standard SST record overhead */
+ private static final int MAX_DATA_SPACE = RecordInputStream.MAX_RECORD_DATA_SIZE - 8;
+
+
private void confirmSize(int expectedSize) {
ContinuableRecordOutput cro = ContinuableRecordOutput.createForCountingOnly();
SSTSerializer ss = new SSTSerializer(strings, 0, 0);
@@ -44,64 +55,64 @@ public final class TestSSTRecordSizeCalc
public void testBasic() {
strings.add(makeUnicodeString(SMALL_STRING));
- confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+ confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ SMALL_STRING.length());
}
public void testBigStringAcrossUnicode() {
- int bigString = SSTRecord.MAX_DATA_SPACE + 100;
+ int bigString = MAX_DATA_SPACE + 100;
strings.add(makeUnicodeString(bigString));
- confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+ confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
- + SSTRecord.MAX_DATA_SPACE
- + SSTRecord.STD_RECORD_OVERHEAD
+ + MAX_DATA_SPACE
+ + STD_RECORD_OVERHEAD
+ OPTION_FIELD_SIZE
+ 100);
}
public void testPerfectFit() {
- int perfectFit = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD;
+ int perfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD;
strings.add(makeUnicodeString(perfectFit));
- confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+ confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ perfectFit);
}
public void testJustOversized() {
- int tooBig = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD + 1;
+ int tooBig = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD + 1;
strings.add(makeUnicodeString(tooBig));
- confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+ confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ tooBig - 1
// continue record
- + SSTRecord.STD_RECORD_OVERHEAD
+ + STD_RECORD_OVERHEAD
+ OPTION_FIELD_SIZE + 1);
}
public void testSecondStringStartsOnNewContinuation() {
- int perfectFit = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD;
+ int perfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD;
strings.add(makeUnicodeString(perfectFit));
strings.add(makeUnicodeString(SMALL_STRING));
- confirmSize(SSTRecord.SST_RECORD_OVERHEAD
- + SSTRecord.MAX_DATA_SPACE
+ confirmSize(SST_RECORD_OVERHEAD
+ + MAX_DATA_SPACE
// second string
- + SSTRecord.STD_RECORD_OVERHEAD
+ + STD_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ SMALL_STRING.length());
}
public void testHeaderCrossesNormalContinuePoint() {
- int almostPerfectFit = SSTRecord.MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD - 2;
+ int almostPerfectFit = MAX_DATA_SPACE - COMPRESSED_PLAIN_STRING_OVERHEAD - 2;
strings.add(makeUnicodeString(almostPerfectFit));
String oneCharString = new String(new char[1]);
strings.add(makeUnicodeString(oneCharString));
- confirmSize(SSTRecord.SST_RECORD_OVERHEAD
+ confirmSize(SST_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ almostPerfectFit
// second string
- + SSTRecord.STD_RECORD_OVERHEAD
+ + STD_RECORD_OVERHEAD
+ COMPRESSED_PLAIN_STRING_OVERHEAD
+ oneCharString.length());
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java?rev=1871911&r1=1871910&r2=1871911&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/TestTextObjectRecord.java Sun Dec 22 21:44:45 2019
@@ -139,7 +139,7 @@ public final class TestTextObjectRecord
obj.setStr( str );
- TextObjectRecord cloned = (TextObjectRecord)obj.clone();
+ TextObjectRecord cloned = obj.copy();
assertEquals(obj.getRecordSize(), cloned.getRecordSize());
assertEquals(obj.getHorizontalTextAlignment(), cloned.getHorizontalTextAlignment());
assertEquals(obj.getStr().getString(), cloned.getStr().getString());
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/common/TestUnicodeString.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/common/TestUnicodeString.java?rev=1871911&r1=1871910&r2=1871911&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/common/TestUnicodeString.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/common/TestUnicodeString.java Sun Dec 22 21:44:45 2019
@@ -26,8 +26,6 @@ import java.io.IOException;
import org.apache.poi.hssf.record.ContinueRecord;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.SSTRecord;
-import org.apache.poi.hssf.record.common.UnicodeString.ExtRst;
-import org.apache.poi.hssf.record.common.UnicodeString.FormatRun;
import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
import org.apache.poi.hssf.usermodel.HSSFOptimiser;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -93,9 +91,9 @@ public final class TestUnicodeString {
//Test a compressed small string that has rich text formatting
s.setString("Test");
s.setOptionFlags((byte)0x8);
- UnicodeString.FormatRun r = new UnicodeString.FormatRun((short)0,(short)1);
+ FormatRun r = new FormatRun((short)0,(short)1);
s.addFormatRun(r);
- UnicodeString.FormatRun r2 = new UnicodeString.FormatRun((short)2,(short)2);
+ FormatRun r2 = new FormatRun((short)2,(short)2);
s.addFormatRun(r2);
confirmSize(17, s);
@@ -108,7 +106,7 @@ public final class TestUnicodeString {
s.setString("Test");
s.setOptionFlags((byte)0xC);
confirmSize(17, s);
-
+
// Extended phonetics data
// Minimum size is 14
// Also adds 4 bytes to hold the length
@@ -121,7 +119,7 @@ public final class TestUnicodeString {
s.setString(STR_16_BIT);
s.setOptionFlags((byte)0xD);
confirmSize(39, s);
-
+
s.setExtendedRst(null);
confirmSize(21, s);
}
@@ -144,8 +142,8 @@ public final class TestUnicodeString {
public void perfectRichStringSize() {
//Test a rich text string
UnicodeString s = makeUnicodeString(MAX_DATA_SIZE-2-1-8-2);
- s.addFormatRun(new UnicodeString.FormatRun((short)1,(short)0));
- s.addFormatRun(new UnicodeString.FormatRun((short)2,(short)1));
+ s.addFormatRun(new FormatRun((short)1,(short)0));
+ s.addFormatRun(new FormatRun((short)2,(short)1));
s.setOptionFlags((byte)0x8);
confirmSize(MAX_DATA_SIZE, s);
@@ -153,8 +151,8 @@ public final class TestUnicodeString {
//Note that we can only ever get to a maximum size of 8227 since an uncompressed
//string is writing double bytes.
s = makeUnicodeString((MAX_DATA_SIZE-2-1-8-2)/2, true);
- s.addFormatRun(new UnicodeString.FormatRun((short)1,(short)0));
- s.addFormatRun(new UnicodeString.FormatRun((short)2,(short)1));
+ s.addFormatRun(new FormatRun((short)1,(short)0));
+ s.addFormatRun(new FormatRun((short)2,(short)1));
s.setOptionFlags((byte)0x9);
confirmSize(MAX_DATA_SIZE-1, s);
}
@@ -180,25 +178,25 @@ public final class TestUnicodeString {
UnicodeString s = makeUnicodeString(strSize);
confirmSize(MAX_DATA_SIZE*2, s);
}
-
+
@Test
public void formatRun() {
FormatRun fr = new FormatRun((short)4, (short)0x15c);
assertEquals(4, fr.getCharacterPos());
assertEquals(0x15c, fr.getFontIndex());
-
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
LittleEndianOutputStream out = new LittleEndianOutputStream(baos);
-
+
fr.serialize(out);
-
+
byte[] b = baos.toByteArray();
assertEquals(4, b.length);
assertEquals(4, b[0]);
assertEquals(0, b[1]);
assertEquals(0x5c, b[2]);
assertEquals(0x01, b[3]);
-
+
LittleEndianInputStream inp = new LittleEndianInputStream(
new ByteArrayInputStream(b)
);
@@ -206,34 +204,34 @@ public final class TestUnicodeString {
assertEquals(4, fr.getCharacterPos());
assertEquals(0x15c, fr.getFontIndex());
}
-
+
@Test
public void extRstFromEmpty() {
ExtRst ext = new ExtRst();
-
+
assertEquals(0, ext.getNumberOfRuns());
assertEquals(0, ext.getFormattingFontIndex());
assertEquals(0, ext.getFormattingOptions());
assertEquals("", ext.getPhoneticText());
assertEquals(0, ext.getPhRuns().length);
assertEquals(10, ext.getDataSize()); // Excludes 4 byte header
-
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
LittleEndianOutputStream out = new LittleEndianOutputStream(baos);
ContinuableRecordOutput cout = new ContinuableRecordOutput(out, 0xffff);
-
+
ext.serialize(cout);
cout.writeContinue();
-
+
byte[] b = baos.toByteArray();
assertEquals(20, b.length);
-
+
// First 4 bytes from the outputstream
assertEquals(-1, b[0]);
assertEquals(-1, b[1]);
assertEquals(14, b[2]);
assertEquals(0, b[3]);
-
+
// Reserved
assertEquals(1, b[4]);
assertEquals(0, b[5]);
@@ -253,12 +251,12 @@ public final class TestUnicodeString {
assertEquals(0, b[15]);
assertEquals(0, b[16]);
assertEquals(0, b[17]);
-
+
// Last 2 bytes from the outputstream
assertEquals(ContinueRecord.sid, b[18]);
assertEquals(0, b[19]);
-
-
+
+
// Load in again and re-test
byte[] data = new byte[14];
System.arraycopy(b, 4, data, 0, data.length);
@@ -266,14 +264,14 @@ public final class TestUnicodeString {
new ByteArrayInputStream(data)
);
ext = new ExtRst(inp, data.length);
-
+
assertEquals(0, ext.getNumberOfRuns());
assertEquals(0, ext.getFormattingFontIndex());
assertEquals(0, ext.getFormattingOptions());
assertEquals("", ext.getPhoneticText());
assertEquals(0, ext.getPhRuns().length);
}
-
+
@Test
public void extRstFromData() {
byte[] data = new byte[] {
@@ -284,39 +282,39 @@ public final class TestUnicodeString {
0, 0 // Cruft at the end, as found from real files
};
assertEquals(16, data.length);
-
+
LittleEndianInputStream inp = new LittleEndianInputStream(
new ByteArrayInputStream(data)
);
ExtRst ext = new ExtRst(inp, data.length);
assertEquals(0x0c, ext.getDataSize()); // Excludes 4 byte header
-
+
assertEquals(0, ext.getNumberOfRuns());
assertEquals(0x37, ext.getFormattingOptions());
assertEquals(0, ext.getFormattingFontIndex());
assertEquals("", ext.getPhoneticText());
assertEquals(0, ext.getPhRuns().length);
}
-
+
@Test
public void corruptExtRstDetection() {
byte[] data = new byte[] {
- 0x79, 0x79, 0x11, 0x11,
- 0x22, 0x22, 0x33, 0x33,
+ 0x79, 0x79, 0x11, 0x11,
+ 0x22, 0x22, 0x33, 0x33,
};
assertEquals(8, data.length);
-
+
LittleEndianInputStream inp = new LittleEndianInputStream(
new ByteArrayInputStream(data)
);
ExtRst ext = new ExtRst(inp, data.length);
-
+
// Will be empty
assertEquals(ext, new ExtRst());
// If written, will be the usual size
assertEquals(10, ext.getDataSize()); // Excludes 4 byte header
-
+
// Is empty
assertEquals(0, ext.getNumberOfRuns());
assertEquals(0, ext.getFormattingOptions());
@@ -342,12 +340,12 @@ public final class TestUnicodeString {
bos.writeShort(1);
bos.writeShort(3);
bos.writeShort(42);
-
+
LittleEndianInput in = new LittleEndianByteArrayInputStream(buf, 0, bos.getWriteIndex());
- UnicodeString.ExtRst extRst1 = new UnicodeString.ExtRst(in, bos.getWriteIndex());
+ ExtRst extRst1 = new ExtRst(in, bos.getWriteIndex());
in = new LittleEndianByteArrayInputStream(buf, 0, bos.getWriteIndex());
- UnicodeString.ExtRst extRst2 = new UnicodeString.ExtRst(in, bos.getWriteIndex());
-
+ ExtRst extRst2 = new ExtRst(in, bos.getWriteIndex());
+
assertEquals(extRst1, extRst2);
assertEquals(extRst1.hashCode(), extRst2.hashCode());
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=1871911&r1=1871910&r2=1871911&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java Sun Dec 22 21:44:45 2019
@@ -77,7 +77,7 @@ import org.junit.Test;
*/
public final class TestHSSFWorkbook extends BaseTestWorkbook {
private static final HSSFITestDataProvider _testDataProvider = HSSFITestDataProvider.instance;
-
+
public TestHSSFWorkbook() {
super(_testDataProvider);
}
@@ -215,10 +215,10 @@ public final class TestHSSFWorkbook exte
confirmActiveSelected(sheet2, true);
confirmActiveSelected(sheet3, false);
confirmActiveSelected(sheet4, false);
-
+
wb.close();
}
-
+
private static List<Integer> arrayToList(int[] array) {
List<Integer> list = new ArrayList<>(array.length);
for ( Integer element : array ) {
@@ -226,7 +226,7 @@ public final class TestHSSFWorkbook exte
}
return list;
}
-
+
private static void assertCollectionsEquals(Collection<Integer> expected, Collection<Integer> actual) {
assertEquals("size", expected.size(), actual.size());
for (int e : expected) {
@@ -247,7 +247,7 @@ public final class TestHSSFWorkbook exte
HSSFSheet sheet4 = wb.createSheet("Sheet4");
HSSFSheet sheet5 = wb.createSheet("Sheet5");
-
+
List<Integer> selected = arrayToList(new int[] { 0, 2, 3 });
wb.setSelectedTabs(selected);
@@ -292,7 +292,7 @@ public final class TestHSSFWorkbook exte
throw new RuntimeException(e);
}
}*/
-
+
wb.close();
}
@@ -358,7 +358,7 @@ public final class TestHSSFWorkbook exte
// The last remaining sheet should always be active+selected
wb.removeSheetAt(1);
confirmActiveSelected(sheet0, true, true);
-
+
wb.close();
}
@@ -394,7 +394,7 @@ public final class TestHSSFWorkbook exte
// Expected badly behaved sheet record to cause exception
assertTrue(e.getMessage().startsWith("Actual serialized sheet size"));
}
-
+
wb.close();
}
@@ -482,7 +482,7 @@ public final class TestHSSFWorkbook exte
assertEquals("OnSheet3", n.getNameName());
assertEquals("Sheet3", n.getSheetName());
assertEquals("Sheet3!$A$1:$A$2", n.getRefersToFormula());
-
+
b.close();
}
@@ -505,6 +505,10 @@ public final class TestHSSFWorkbook exte
public int getRecordSize() {
return 8;
}
+ @Override
+ public BadlyBehavedRecord copy() {
+ return null;
+ }
}
/**
@@ -571,12 +575,12 @@ public final class TestHSSFWorkbook exte
ClassID clsid2 = fs2.getRoot().getStorageClsid();
assertEquals(clsid1, clsid2);
-
+
fs2.close();
wb.close();
fs1.close();
}
-
+
/**
* If we try to open an old (pre-97) workbook, we get a helpful
* Exception give to explain what we've done wrong
@@ -591,7 +595,7 @@ public final class TestHSSFWorkbook exte
assertContains(e.getMessage(), "BIFF4");
}
excel4.close();
-
+
InputStream excel5 = POIDataSamples.getSpreadSheetInstance().openResourceAsStream("testEXCEL_5.xls");
try {
new HSSFWorkbook(excel5).close();
@@ -600,7 +604,7 @@ public final class TestHSSFWorkbook exte
assertContains(e.getMessage(), "BIFF5");
}
excel5.close();
-
+
InputStream excel95 = POIDataSamples.getSpreadSheetInstance().openResourceAsStream("testEXCEL_95.xls");
try {
new HSSFWorkbook(excel95).close();
@@ -722,7 +726,7 @@ public final class TestHSSFWorkbook exte
"You can define up to 4000 styles in a .xls workbook", e.getMessage());
}
assertEquals(MAX_STYLES, wb.getNumCellStyles());
-
+
wb.close();
}
@@ -809,7 +813,7 @@ public final class TestHSSFWorkbook exte
EscherBSERecord bse = iwb.getBSERecord(pictureIndex);
assertEquals(3, bse.getRef());
}
-
+
wb.close();
}
@@ -829,7 +833,7 @@ public final class TestHSSFWorkbook exte
@Test
public void selectedSheetShort() throws IOException {
HSSFWorkbook wb=new HSSFWorkbook();
-
+
HSSFSheet sheet1 = wb.createSheet("Sheet1");
HSSFSheet sheet2 = wb.createSheet("Sheet2");
HSSFSheet sheet3 = wb.createSheet("Sheet3");
@@ -895,7 +899,7 @@ public final class TestHSSFWorkbook exte
} catch (IllegalArgumentException e) {
assertTrue(e.getMessage(), e.getMessage().contains("outside the allowable range"));
}
-
+
wb.close();
}
@@ -905,7 +909,7 @@ public final class TestHSSFWorkbook exte
wb.insertChartRecord();
//wb.dumpDrawingGroupRecords(true);
//wb.dumpDrawingGroupRecords(false);
-
+
wb.close();
}
@@ -917,7 +921,7 @@ public final class TestHSSFWorkbook exte
wb.writeProtectWorkbook("mypassword", "myuser");
assertTrue(wb.isWriteProtected());
-
+
// OutputStream os = new FileOutputStream("/tmp/protected.xls");
// try {
// wb.write(os);
@@ -1008,7 +1012,7 @@ public final class TestHSSFWorkbook exte
read.close();
wb.close();
}
-
+
@Test
public void bug54500() throws Exception {
String nameName = "AName";
@@ -1016,7 +1020,7 @@ public final class TestHSSFWorkbook exte
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("54500.xls");
assertSheetOrder(wb, "Sheet1", "Sheet2", "Sheet3");
-
+
wb.createSheet(sheetName);
assertSheetOrder(wb, "Sheet1", "Sheet2", "Sheet3", "ASheet");
@@ -1030,7 +1034,7 @@ public final class TestHSSFWorkbook exte
final HSSFName name = wb.getName(nameName);
assertNotNull(name);
assertEquals("ASheet!A1", name.getRefersToFormula());
-
+
ByteArrayOutputStream stream = new ByteArrayOutputStream();
wb.write(stream);
@@ -1068,7 +1072,7 @@ public final class TestHSSFWorkbook exte
public void test49423() throws Exception
{
HSSFWorkbook workbook = HSSFTestDataSamples.openSampleWorkbook("49423.xls");
-
+
boolean found = false;
int numSheets = workbook.getNumberOfSheets();
for (int i = 0; i < numSheets; i++) {
@@ -1076,7 +1080,7 @@ public final class TestHSSFWorkbook exte
List<HSSFShape> shapes = sheet.getDrawingPatriarch().getChildren();
for(HSSFShape shape : shapes){
HSSFAnchor anchor = shape.getAnchor();
-
+
if(anchor instanceof HSSFClientAnchor){
// absolute coordinates
HSSFClientAnchor clientAnchor = (HSSFClientAnchor)anchor;
@@ -1084,7 +1088,7 @@ public final class TestHSSFWorkbook exte
//System.out.println(clientAnchor.getRow1() + "," + clientAnchor.getRow2());
found = true;
} else if (anchor instanceof HSSFChildAnchor){
- // shape is grouped and the anchor is expressed in the coordinate system of the group
+ // shape is grouped and the anchor is expressed in the coordinate system of the group
HSSFChildAnchor childAnchor = (HSSFChildAnchor)anchor;
assertNotNull(childAnchor);
//System.out.println(childAnchor.getDy1() + "," + childAnchor.getDy2());
@@ -1092,7 +1096,7 @@ public final class TestHSSFWorkbook exte
}
}
}
-
+
assertTrue("Should find some images via Client or Child anchors, but did not find any at all", found);
workbook.close();
}
@@ -1108,10 +1112,10 @@ public final class TestHSSFWorkbook exte
final Sheet sheet = workbook.createSheet("foo");
final Row row = sheet.createRow(1);
row.createCell(1).setCellValue("bar");
-
+
writeAndCloseWorkbook(workbook, file);
}
-
+
// edit the workbook
{
try (POIFSFileSystem fs = new POIFSFileSystem(file, false)) {
@@ -1143,17 +1147,17 @@ public final class TestHSSFWorkbook exte
fileOut.close();
}
-
+
@Test
public void closeDoesNotModifyWorkbook() throws IOException {
final String filename = "SampleSS.xls";
final File file = POIDataSamples.getSpreadSheetInstance().getFile(filename);
Workbook wb;
-
+
// File via POIFileStream (java.nio)
wb = new HSSFWorkbook(new POIFSFileSystem(file));
assertCloseDoesNotModifyFile(filename, wb);
-
+
// InputStream
wb = new HSSFWorkbook(new FileInputStream(file));
assertCloseDoesNotModifyFile(filename, wb);
@@ -1171,11 +1175,11 @@ public final class TestHSSFWorkbook exte
throw new Exception("Moving a sheet to the end should not throw an exception, but threw ", e);
}
}
-
+
@Test
public void invalidInPlaceWrite() throws Exception {
HSSFWorkbook wb;
-
+
// Can't work for new files
wb = new HSSFWorkbook();
try {
@@ -1185,7 +1189,7 @@ public final class TestHSSFWorkbook exte
// expected here
}
wb.close();
-
+
// Can't work for InputStream opened files
wb = new HSSFWorkbook(
POIDataSamples.getSpreadSheetInstance().openResourceAsStream("SampleSS.xls"));
@@ -1196,7 +1200,7 @@ public final class TestHSSFWorkbook exte
// expected here
}
wb.close();
-
+
// Can't work for Read-Only files
POIFSFileSystem fs = new POIFSFileSystem(
POIDataSamples.getSpreadSheetInstance().getFile("SampleSS.xls"), true);
@@ -1209,7 +1213,7 @@ public final class TestHSSFWorkbook exte
}
wb.close();
}
-
+
@Test
public void inPlaceWrite() throws Exception {
// Setup as a copy of a known-good file
@@ -1218,27 +1222,27 @@ public final class TestHSSFWorkbook exte
FileOutputStream outputStream = new FileOutputStream(file)) {
IOUtils.copy(inputStream, outputStream);
}
-
+
// Open from the temp file in read-write mode
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(file, false));
assertEquals(3, wb.getNumberOfSheets());
-
+
// Change
wb.removeSheetAt(2);
wb.removeSheetAt(1);
wb.getSheetAt(0).getRow(0).getCell(0).setCellValue("Changed!");
-
+
// Save in-place, close, re-open and check
wb.write();
wb.close();
-
+
wb = new HSSFWorkbook(new POIFSFileSystem(file));
assertEquals(1, wb.getNumberOfSheets());
assertEquals("Changed!", wb.getSheetAt(0).getRow(0).getCell(0).toString());
wb.close();
}
-
+
@Test
public void testWriteToNewFile() throws Exception {
// Open from a Stream
@@ -1249,13 +1253,13 @@ public final class TestHSSFWorkbook exte
final File file = TempFile.createTempFile("TestHSSFWorkbook", ".xls");
wb.write(file);
wb.close();
-
+
// Read and check
wb = new HSSFWorkbook(new POIFSFileSystem(file));
assertEquals(3, wb.getNumberOfSheets());
wb.close();
}
-
+
@Ignore
@Test
@Override
Modified: poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestAbstractFunctionPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestAbstractFunctionPtg.java?rev=1871911&r1=1871910&r2=1871911&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestAbstractFunctionPtg.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/formula/ptg/TestAbstractFunctionPtg.java Sun Dec 22 21:44:45 2019
@@ -41,7 +41,7 @@ public class TestAbstractFunctionPtg {
public void testInvalidRuntimeClass() {
new FunctionPtg(1, 300, null, 255);
}
-
+
private static class FunctionPtg extends AbstractFunctionPtg {
protected FunctionPtg(int functionIndex, int pReturnClass,
@@ -54,7 +54,13 @@ public class TestAbstractFunctionPtg {
}
public void write(LittleEndianOutput out) {
-
+
+ }
+
+ @Override
+ public FunctionPtg copy() {
+ // immutable
+ return this;
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org