extended forbidden-apis-check to ooxml-tests
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1712693 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ecab3629d8
commit
9b4919cd51
@ -1776,9 +1776,9 @@ under the License.
|
|||||||
<fileset dir="${scratchpad.output.dir}"/>
|
<fileset dir="${scratchpad.output.dir}"/>
|
||||||
<fileset dir="${ooxml.output.dir}"/>
|
<fileset dir="${ooxml.output.dir}"/>
|
||||||
<fileset dir="${main.output.test.dir}"/>
|
<fileset dir="${main.output.test.dir}"/>
|
||||||
|
<fileset dir="${ooxml.output.test.dir}"/>
|
||||||
<!--
|
<!--
|
||||||
<fileset dir="${scratchpad.output.test.dir}"/>
|
<fileset dir="${scratchpad.output.test.dir}"/>
|
||||||
<fileset dir="${ooxml.output.test.dir}"/>
|
|
||||||
-->
|
-->
|
||||||
</forbiddenapis>
|
</forbiddenapis>
|
||||||
</target>
|
</target>
|
||||||
|
@ -185,13 +185,13 @@ public final class TestPOIXMLProperties {
|
|||||||
|
|
||||||
Date dateCreated = LocaleUtil.getLocaleCalendar(2010, 6, 15, 10, 0, 0).getTime();
|
Date dateCreated = LocaleUtil.getLocaleCalendar(2010, 6, 15, 10, 0, 0).getTime();
|
||||||
cp.setCreated(new Nullable<Date>(dateCreated));
|
cp.setCreated(new Nullable<Date>(dateCreated));
|
||||||
assertEquals(dateCreated.toString(), cp.getCreated().toString());
|
assertEquals(dateCreated, cp.getCreated());
|
||||||
|
|
||||||
XWPFDocument doc2 = XWPFTestDataSamples.writeOutAndReadBack(doc);
|
XWPFDocument doc2 = XWPFTestDataSamples.writeOutAndReadBack(doc);
|
||||||
doc.close();
|
doc.close();
|
||||||
cp = doc.getProperties().getCoreProperties();
|
cp = doc.getProperties().getCoreProperties();
|
||||||
Date dt3 = cp.getCreated();
|
Date dt3 = cp.getCreated();
|
||||||
assertEquals(dateCreated.toString(), dt3.toString());
|
assertEquals(dateCreated, dt3);
|
||||||
doc2.close();
|
doc2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ import java.io.OutputStream;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -44,6 +45,7 @@ import java.util.zip.ZipEntry;
|
|||||||
import java.util.zip.ZipFile;
|
import java.util.zip.ZipFile;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
|
import org.apache.poi.EncryptedDocumentException;
|
||||||
import org.apache.poi.POIXMLException;
|
import org.apache.poi.POIXMLException;
|
||||||
import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
|
import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
|
||||||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||||
@ -65,6 +67,7 @@ import org.junit.Test;
|
|||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
public final class TestPackage {
|
public final class TestPackage {
|
||||||
private static final POILogger logger = POILogFactory.getLogger(TestPackage.class);
|
private static final POILogger logger = POILogFactory.getLogger(TestPackage.class);
|
||||||
@ -73,10 +76,11 @@ public final class TestPackage {
|
|||||||
* Test that just opening and closing the file doesn't alter the document.
|
* Test that just opening and closing the file doesn't alter the document.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void openSave() throws Exception {
|
public void openSave() throws IOException, InvalidFormatException {
|
||||||
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
||||||
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageOpenSaveTMP.docx");
|
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageOpenSaveTMP.docx");
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(originalFile, PackageAccess.READ_WRITE);
|
OPCPackage p = OPCPackage.open(originalFile, PackageAccess.READ_WRITE);
|
||||||
try {
|
try {
|
||||||
p.save(targetFile.getAbsoluteFile());
|
p.save(targetFile.getAbsoluteFile());
|
||||||
@ -94,14 +98,20 @@ public final class TestPackage {
|
|||||||
/**
|
/**
|
||||||
* Test that when we create a new Package, we give it
|
* Test that when we create a new Package, we give it
|
||||||
* the correct default content types
|
* the correct default content types
|
||||||
|
* @throws IllegalAccessException
|
||||||
|
* @throws NoSuchFieldException
|
||||||
|
* @throws IllegalArgumentException
|
||||||
|
* @throws SecurityException
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void createGetsContentTypes() throws Exception {
|
public void createGetsContentTypes()
|
||||||
|
throws IOException, InvalidFormatException, SecurityException, IllegalArgumentException, NoSuchFieldException, IllegalAccessException {
|
||||||
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestCreatePackageTMP.docx");
|
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestCreatePackageTMP.docx");
|
||||||
|
|
||||||
// Zap the target file, in case of an earlier run
|
// Zap the target file, in case of an earlier run
|
||||||
if(targetFile.exists()) targetFile.delete();
|
if(targetFile.exists()) targetFile.delete();
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage pkg = OPCPackage.create(targetFile);
|
OPCPackage pkg = OPCPackage.create(targetFile);
|
||||||
|
|
||||||
// Check it has content types for rels and xml
|
// Check it has content types for rels and xml
|
||||||
@ -123,13 +133,15 @@ public final class TestPackage {
|
|||||||
PackagingURIHelper.createPartName("/foo.txt")
|
PackagingURIHelper.createPartName("/foo.txt")
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
pkg.revert();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test package creation.
|
* Test package creation.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void createPackageAddPart() throws Exception {
|
public void createPackageAddPart() throws IOException, InvalidFormatException {
|
||||||
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestCreatePackageTMP.docx");
|
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestCreatePackageTMP.docx");
|
||||||
|
|
||||||
File expectedFile = OpenXML4JTestDataSamples.getSampleFile("TestCreatePackageOUTPUT.docx");
|
File expectedFile = OpenXML4JTestDataSamples.getSampleFile("TestCreatePackageOUTPUT.docx");
|
||||||
@ -174,9 +186,10 @@ public final class TestPackage {
|
|||||||
* Tests that we can create a new package, add a core
|
* Tests that we can create a new package, add a core
|
||||||
* document and another part, save and re-load and
|
* document and another part, save and re-load and
|
||||||
* have everything setup as expected
|
* have everything setup as expected
|
||||||
|
* @throws SAXException
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void createPackageWithCoreDocument() throws Exception {
|
public void createPackageWithCoreDocument() throws IOException, InvalidFormatException, URISyntaxException, SAXException {
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
OPCPackage pkg = OPCPackage.create(baos);
|
OPCPackage pkg = OPCPackage.create(baos);
|
||||||
|
|
||||||
@ -188,7 +201,7 @@ public final class TestPackage {
|
|||||||
PackagePart corePart = pkg.createPart(corePartName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml");
|
PackagePart corePart = pkg.createPart(corePartName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml");
|
||||||
// Put in some dummy content
|
// Put in some dummy content
|
||||||
OutputStream coreOut = corePart.getOutputStream();
|
OutputStream coreOut = corePart.getOutputStream();
|
||||||
coreOut.write("<dummy-xml />".getBytes());
|
coreOut.write("<dummy-xml />".getBytes("UTF-8"));
|
||||||
coreOut.close();
|
coreOut.close();
|
||||||
|
|
||||||
// And another bit
|
// And another bit
|
||||||
@ -200,7 +213,7 @@ public final class TestPackage {
|
|||||||
|
|
||||||
// Dummy content again
|
// Dummy content again
|
||||||
coreOut = corePart.getOutputStream();
|
coreOut = corePart.getOutputStream();
|
||||||
coreOut.write("<dummy-xml2 />".getBytes());
|
coreOut.write("<dummy-xml2 />".getBytes("UTF-8"));
|
||||||
coreOut.close();
|
coreOut.close();
|
||||||
|
|
||||||
//add a relationship with internal target: "#Sheet1!A1"
|
//add a relationship with internal target: "#Sheet1!A1"
|
||||||
@ -250,7 +263,7 @@ public final class TestPackage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertMSCompatibility(OPCPackage pkg) throws Exception {
|
private void assertMSCompatibility(OPCPackage pkg) throws IOException, InvalidFormatException, SAXException {
|
||||||
PackagePartName relName = PackagingURIHelper.createPartName(PackageRelationship.getContainerPartRelationship());
|
PackagePartName relName = PackagingURIHelper.createPartName(PackageRelationship.getContainerPartRelationship());
|
||||||
PackagePart relPart = pkg.getPart(relName);
|
PackagePart relPart = pkg.getPart(relName);
|
||||||
|
|
||||||
@ -271,7 +284,7 @@ public final class TestPackage {
|
|||||||
* Test package opening.
|
* Test package opening.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void openPackage() throws Exception {
|
public void openPackage() throws IOException, InvalidFormatException {
|
||||||
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestOpenPackageTMP.docx");
|
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestOpenPackageTMP.docx");
|
||||||
|
|
||||||
File inputFile = OpenXML4JTestDataSamples.getSampleFile("TestOpenPackageINPUT.docx");
|
File inputFile = OpenXML4JTestDataSamples.getSampleFile("TestOpenPackageINPUT.docx");
|
||||||
@ -331,10 +344,11 @@ public final class TestPackage {
|
|||||||
* to a file
|
* to a file
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void saveToOutputStream() throws Exception {
|
public void saveToOutputStream() throws IOException, InvalidFormatException {
|
||||||
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
||||||
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageOpenSaveTMP.docx");
|
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageOpenSaveTMP.docx");
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(originalFile, PackageAccess.READ_WRITE);
|
OPCPackage p = OPCPackage.open(originalFile, PackageAccess.READ_WRITE);
|
||||||
try {
|
try {
|
||||||
FileOutputStream fout = new FileOutputStream(targetFile);
|
FileOutputStream fout = new FileOutputStream(targetFile);
|
||||||
@ -360,11 +374,12 @@ public final class TestPackage {
|
|||||||
* reading from a file
|
* reading from a file
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void openFromInputStream() throws Exception {
|
public void openFromInputStream() throws IOException, InvalidFormatException {
|
||||||
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
||||||
|
|
||||||
FileInputStream finp = new FileInputStream(originalFile);
|
FileInputStream finp = new FileInputStream(originalFile);
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(finp);
|
OPCPackage p = OPCPackage.open(finp);
|
||||||
|
|
||||||
assertNotNull(p);
|
assertNotNull(p);
|
||||||
@ -374,18 +389,23 @@ public final class TestPackage {
|
|||||||
// Check it has the usual bits
|
// Check it has the usual bits
|
||||||
assertTrue(p.hasRelationships());
|
assertTrue(p.hasRelationships());
|
||||||
assertTrue(p.containPart(PackagingURIHelper.createPartName("/_rels/.rels")));
|
assertTrue(p.containPart(PackagingURIHelper.createPartName("/_rels/.rels")));
|
||||||
|
|
||||||
|
p.revert();
|
||||||
|
finp.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: fix and enable
|
* TODO: fix and enable
|
||||||
|
* @throws URISyntaxException
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
@Ignore
|
@Ignore
|
||||||
public void removePartRecursive() throws Exception {
|
public void removePartRecursive() throws IOException, InvalidFormatException, URISyntaxException {
|
||||||
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
String originalFile = OpenXML4JTestDataSamples.getSampleFileName("TestPackageCommon.docx");
|
||||||
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageRemovePartRecursiveOUTPUT.docx");
|
File targetFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageRemovePartRecursiveOUTPUT.docx");
|
||||||
File tempFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageRemovePartRecursiveTMP.docx");
|
File tempFile = OpenXML4JTestDataSamples.getOutputFile("TestPackageRemovePartRecursiveTMP.docx");
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(originalFile, PackageAccess.READ_WRITE);
|
OPCPackage p = OPCPackage.open(originalFile, PackageAccess.READ_WRITE);
|
||||||
p.removePartRecursive(PackagingURIHelper.createPartName(new URI(
|
p.removePartRecursive(PackagingURIHelper.createPartName(new URI(
|
||||||
"/word/document.xml")));
|
"/word/document.xml")));
|
||||||
@ -395,6 +415,8 @@ public final class TestPackage {
|
|||||||
assertTrue(targetFile.exists());
|
assertTrue(targetFile.exists());
|
||||||
ZipFileAssert.assertEquals(targetFile, tempFile);
|
ZipFileAssert.assertEquals(targetFile, tempFile);
|
||||||
assertTrue(targetFile.delete());
|
assertTrue(targetFile.delete());
|
||||||
|
|
||||||
|
p.revert();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -437,6 +459,7 @@ public final class TestPackage {
|
|||||||
|
|
||||||
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(filepath, PackageAccess.READ_WRITE);
|
OPCPackage p = OPCPackage.open(filepath, PackageAccess.READ_WRITE);
|
||||||
// Remove the core part
|
// Remove the core part
|
||||||
p.deletePart(PackagingURIHelper.createPartName("/word/document.xml"));
|
p.deletePart(PackagingURIHelper.createPartName("/word/document.xml"));
|
||||||
@ -476,6 +499,7 @@ public final class TestPackage {
|
|||||||
|
|
||||||
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(filepath, PackageAccess.READ_WRITE);
|
OPCPackage p = OPCPackage.open(filepath, PackageAccess.READ_WRITE);
|
||||||
// Remove the core part
|
// Remove the core part
|
||||||
p.deletePartRecursive(PackagingURIHelper.createPartName("/word/document.xml"));
|
p.deletePartRecursive(PackagingURIHelper.createPartName("/word/document.xml"));
|
||||||
@ -499,7 +523,7 @@ public final class TestPackage {
|
|||||||
* write changes to it.
|
* write changes to it.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void openFileThenOverwrite() throws Exception {
|
public void openFileThenOverwrite() throws IOException, InvalidFormatException {
|
||||||
File tempFile = TempFile.createTempFile("poiTesting","tmp");
|
File tempFile = TempFile.createTempFile("poiTesting","tmp");
|
||||||
File origFile = OpenXML4JTestDataSamples.getSampleFile("TestPackageCommon.docx");
|
File origFile = OpenXML4JTestDataSamples.getSampleFile("TestPackageCommon.docx");
|
||||||
FileHelper.copyFile(origFile, tempFile);
|
FileHelper.copyFile(origFile, tempFile);
|
||||||
@ -537,7 +561,7 @@ public final class TestPackage {
|
|||||||
* to another file, then delete both
|
* to another file, then delete both
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void openFileThenSaveDelete() throws Exception {
|
public void openFileThenSaveDelete() throws IOException, InvalidFormatException {
|
||||||
File tempFile = TempFile.createTempFile("poiTesting","tmp");
|
File tempFile = TempFile.createTempFile("poiTesting","tmp");
|
||||||
File tempFile2 = TempFile.createTempFile("poiTesting","tmp");
|
File tempFile2 = TempFile.createTempFile("poiTesting","tmp");
|
||||||
File origFile = OpenXML4JTestDataSamples.getSampleFile("TestPackageCommon.docx");
|
File origFile = OpenXML4JTestDataSamples.getSampleFile("TestPackageCommon.docx");
|
||||||
@ -555,16 +579,18 @@ public final class TestPackage {
|
|||||||
assertTrue(tempFile2.delete());
|
assertTrue(tempFile2.delete());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ContentTypeManager getContentTypeManager(OPCPackage pkg) throws Exception {
|
private static ContentTypeManager getContentTypeManager(OPCPackage pkg)
|
||||||
|
throws IOException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
|
||||||
Field f = OPCPackage.class.getDeclaredField("contentTypeManager");
|
Field f = OPCPackage.class.getDeclaredField("contentTypeManager");
|
||||||
f.setAccessible(true);
|
f.setAccessible(true);
|
||||||
return (ContentTypeManager)f.get(pkg);
|
return (ContentTypeManager)f.get(pkg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getPartsByName() throws Exception {
|
public void getPartsByName() throws IOException, InvalidFormatException {
|
||||||
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage pkg = OPCPackage.open(filepath, PackageAccess.READ_WRITE);
|
OPCPackage pkg = OPCPackage.open(filepath, PackageAccess.READ_WRITE);
|
||||||
try {
|
try {
|
||||||
List<PackagePart> rs = pkg.getPartsByName(Pattern.compile("/word/.*?\\.xml"));
|
List<PackagePart> rs = pkg.getPartsByName(Pattern.compile("/word/.*?\\.xml"));
|
||||||
@ -587,7 +613,7 @@ public final class TestPackage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getPartSize() throws Exception {
|
public void getPartSize() throws IOException, InvalidFormatException {
|
||||||
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
String filepath = OpenXML4JTestDataSamples.getSampleFileName("sample.docx");
|
||||||
OPCPackage pkg = OPCPackage.open(filepath, PackageAccess.READ);
|
OPCPackage pkg = OPCPackage.open(filepath, PackageAccess.READ);
|
||||||
try {
|
try {
|
||||||
@ -620,8 +646,10 @@ public final class TestPackage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void replaceContentType() throws Exception {
|
public void replaceContentType()
|
||||||
|
throws IOException, InvalidFormatException, SecurityException, IllegalArgumentException, NoSuchFieldException, IllegalAccessException {
|
||||||
InputStream is = OpenXML4JTestDataSamples.openSampleStream("sample.xlsx");
|
InputStream is = OpenXML4JTestDataSamples.openSampleStream("sample.xlsx");
|
||||||
|
@SuppressWarnings("resource")
|
||||||
OPCPackage p = OPCPackage.open(is);
|
OPCPackage p = OPCPackage.open(is);
|
||||||
|
|
||||||
ContentTypeManager mgr = getContentTypeManager(p);
|
ContentTypeManager mgr = getContentTypeManager(p);
|
||||||
@ -637,10 +665,13 @@ public final class TestPackage {
|
|||||||
|
|
||||||
assertFalse(mgr.isContentTypeRegister("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"));
|
assertFalse(mgr.isContentTypeRegister("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"));
|
||||||
assertTrue(mgr.isContentTypeRegister("application/vnd.ms-excel.sheet.macroEnabled.main+xml"));
|
assertTrue(mgr.isContentTypeRegister("application/vnd.ms-excel.sheet.macroEnabled.main+xml"));
|
||||||
|
p.revert();
|
||||||
|
is.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected=IOException.class)
|
@Test(expected=IOException.class)
|
||||||
public void zipBombCreateAndHandle() throws Exception {
|
public void zipBombCreateAndHandle()
|
||||||
|
throws IOException, EncryptedDocumentException, InvalidFormatException {
|
||||||
// #50090 / #56865
|
// #50090 / #56865
|
||||||
ZipFile zipFile = ZipHelper.openZipFile(OpenXML4JTestDataSamples.getSampleFile("sample.xlsx"));
|
ZipFile zipFile = ZipHelper.openZipFile(OpenXML4JTestDataSamples.getSampleFile("sample.xlsx"));
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
@ -668,12 +699,13 @@ public final class TestPackage {
|
|||||||
append.write(spam);
|
append.write(spam);
|
||||||
size += spam.length;
|
size += spam.length;
|
||||||
}
|
}
|
||||||
append.write("</Types>".getBytes());
|
append.write("</Types>".getBytes("UTF-8"));
|
||||||
size += 8;
|
size += 8;
|
||||||
e.setSize(size);
|
e.setSize(size);
|
||||||
} else {
|
} else {
|
||||||
IOUtils.copy(is, append);
|
IOUtils.copy(is, append);
|
||||||
}
|
}
|
||||||
|
is.close();
|
||||||
}
|
}
|
||||||
append.closeEntry();
|
append.closeEntry();
|
||||||
}
|
}
|
||||||
@ -690,7 +722,8 @@ public final class TestPackage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void zipBombCheckSizes() throws Exception {
|
public void zipBombCheckSizes()
|
||||||
|
throws IOException, EncryptedDocumentException, InvalidFormatException {
|
||||||
File file = OpenXML4JTestDataSamples.getSampleFile("sample.xlsx");
|
File file = OpenXML4JTestDataSamples.getSampleFile("sample.xlsx");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -709,14 +742,12 @@ public final class TestPackage {
|
|||||||
// use values close to, but within the limits
|
// use values close to, but within the limits
|
||||||
ZipSecureFile.setMinInflateRatio(min_ratio-0.002);
|
ZipSecureFile.setMinInflateRatio(min_ratio-0.002);
|
||||||
ZipSecureFile.setMaxEntrySize(max_size+1);
|
ZipSecureFile.setMaxEntrySize(max_size+1);
|
||||||
Workbook wb = WorkbookFactory.create(file, null, true);
|
WorkbookFactory.create(file, null, true).close();
|
||||||
wb.close();
|
|
||||||
|
|
||||||
// check ratio out of bounds
|
// check ratio out of bounds
|
||||||
ZipSecureFile.setMinInflateRatio(min_ratio+0.002);
|
ZipSecureFile.setMinInflateRatio(min_ratio+0.002);
|
||||||
try {
|
try {
|
||||||
wb = WorkbookFactory.create(file, null, true);
|
WorkbookFactory.create(file, null, true).close();
|
||||||
wb.close();
|
|
||||||
// this is a bit strange, as there will be different exceptions thrown
|
// this is a bit strange, as there will be different exceptions thrown
|
||||||
// depending if this executed via "ant test" or within eclipse
|
// depending if this executed via "ant test" or within eclipse
|
||||||
// maybe a difference in JDK ...
|
// maybe a difference in JDK ...
|
||||||
@ -730,8 +761,7 @@ public final class TestPackage {
|
|||||||
ZipSecureFile.setMinInflateRatio(min_ratio-0.002);
|
ZipSecureFile.setMinInflateRatio(min_ratio-0.002);
|
||||||
ZipSecureFile.setMaxEntrySize(max_size-1);
|
ZipSecureFile.setMaxEntrySize(max_size-1);
|
||||||
try {
|
try {
|
||||||
wb = WorkbookFactory.create(file, null, true);
|
WorkbookFactory.create(file, null, true).close();
|
||||||
wb.close();
|
|
||||||
} catch (InvalidFormatException e) {
|
} catch (InvalidFormatException e) {
|
||||||
checkForZipBombException(e);
|
checkForZipBombException(e);
|
||||||
} catch (POIXMLException e) {
|
} catch (POIXMLException e) {
|
||||||
|
@ -338,7 +338,7 @@ public class TestSignatureInfo {
|
|||||||
@Override
|
@Override
|
||||||
public byte[] timeStamp(byte[] data, RevocationData revocationData) throws Exception {
|
public byte[] timeStamp(byte[] data, RevocationData revocationData) throws Exception {
|
||||||
revocationData.addCRL(crl);
|
revocationData.addCRL(crl);
|
||||||
return "time-stamp-token".getBytes();
|
return "time-stamp-token".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void setSignatureConfig(SignatureConfig config) {
|
public void setSignatureConfig(SignatureConfig config) {
|
||||||
|
@ -17,26 +17,37 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.extractor;
|
package org.apache.poi.xssf.extractor;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.DateFormatSymbols;
|
||||||
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import javax.xml.xpath.XPathExpressionException;
|
||||||
|
|
||||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFMap;
|
import org.apache.poi.xssf.usermodel.XSSFMap;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Roberto Manicardi
|
* @author Roberto Manicardi
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class TestXSSFImportFromXML extends TestCase {
|
public class TestXSSFImportFromXML {
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testImportFromXML() throws Exception{
|
public void testImportFromXML() throws IOException, XPathExpressionException, SAXException{
|
||||||
|
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings.xlsx");
|
||||||
try {
|
try {
|
||||||
@ -82,10 +93,8 @@ public class TestXSSFImportFromXML extends TestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMultiTable() throws IOException, XPathExpressionException, SAXException{
|
||||||
|
|
||||||
public void testMultiTable() throws Exception{
|
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings-complex-type.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMappings-complex-type.xlsx");
|
||||||
try {
|
try {
|
||||||
String cellC6 = "c6";
|
String cellC6 = "c6";
|
||||||
@ -128,7 +137,8 @@ public class TestXSSFImportFromXML extends TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void testSingleAttributeCellWithNamespace() throws Exception{
|
@Test
|
||||||
|
public void testSingleAttributeCellWithNamespace() throws IOException, XPathExpressionException, SAXException{
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMapping-singleattributenamespace.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMapping-singleattributenamespace.xlsx");
|
||||||
try {
|
try {
|
||||||
int id = 1;
|
int id = 1;
|
||||||
@ -148,16 +158,17 @@ public class TestXSSFImportFromXML extends TestCase {
|
|||||||
//Check for Schema element
|
//Check for Schema element
|
||||||
XSSFSheet sheet=wb.getSheetAt(0);
|
XSSFSheet sheet=wb.getSheetAt(0);
|
||||||
|
|
||||||
assertEquals(new Double(id), sheet.getRow(28).getCell(1).getNumericCellValue());
|
assertEquals(new Double(id), sheet.getRow(28).getCell(1).getNumericCellValue(), 0);
|
||||||
assertEquals(displayName, sheet.getRow(11).getCell(5).getStringCellValue());
|
assertEquals(displayName, sheet.getRow(11).getCell(5).getStringCellValue());
|
||||||
assertEquals(ref, sheet.getRow(14).getCell(7).getStringCellValue());
|
assertEquals(ref, sheet.getRow(14).getCell(7).getStringCellValue());
|
||||||
assertEquals(new Double(count), sheet.getRow(18).getCell(3).getNumericCellValue());
|
assertEquals(new Double(count), sheet.getRow(18).getCell(3).getNumericCellValue(), 0);
|
||||||
} finally {
|
} finally {
|
||||||
wb.close();
|
wb.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testOptionalFields_Bugzilla_55864() throws Exception {
|
@Test
|
||||||
|
public void testOptionalFields_Bugzilla_55864() throws IOException, XPathExpressionException, SAXException {
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("55864.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("55864.xlsx");
|
||||||
try {
|
try {
|
||||||
String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
|
String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
|
||||||
@ -197,7 +208,8 @@ public class TestXSSFImportFromXML extends TestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testOptionalFields_Bugzilla_57890() throws Exception {
|
@Test
|
||||||
|
public void testOptionalFields_Bugzilla_57890() throws IOException, ParseException, XPathExpressionException, SAXException {
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("57890.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("57890.xlsx");
|
||||||
|
|
||||||
String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<TestInfoRoot>"
|
String testXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<TestInfoRoot>"
|
||||||
@ -216,16 +228,18 @@ public class TestXSSFImportFromXML extends TestCase {
|
|||||||
XSSFRow rowData = sheet.getRow(1);
|
XSSFRow rowData = sheet.getRow(1);
|
||||||
|
|
||||||
assertEquals("Date", rowHeadings.getCell(0).getStringCellValue());
|
assertEquals("Date", rowHeadings.getCell(0).getStringCellValue());
|
||||||
Date date = new SimpleDateFormat("yyyy-MM-dd").parse("1991-3-14");
|
Date date = new SimpleDateFormat("yyyy-MM-dd", DateFormatSymbols.getInstance(Locale.ROOT)).parse("1991-3-14");
|
||||||
assertEquals(date, rowData.getCell(0).getDateCellValue());
|
assertEquals(date, rowData.getCell(0).getDateCellValue());
|
||||||
|
|
||||||
assertEquals("Amount Int", rowHeadings.getCell(1).getStringCellValue());
|
assertEquals("Amount Int", rowHeadings.getCell(1).getStringCellValue());
|
||||||
assertEquals(new Double(Integer.MIN_VALUE), rowData.getCell(1).getNumericCellValue());
|
assertEquals(new Double(Integer.MIN_VALUE), rowData.getCell(1).getNumericCellValue(), 0);
|
||||||
|
|
||||||
assertEquals("Amount Double", rowHeadings.getCell(2).getStringCellValue());
|
assertEquals("Amount Double", rowHeadings.getCell(2).getStringCellValue());
|
||||||
assertEquals(1.0000123, rowData.getCell(2).getNumericCellValue());
|
assertEquals(1.0000123, rowData.getCell(2).getNumericCellValue(), 0);
|
||||||
|
|
||||||
assertEquals("Amount UnsignedInt", rowHeadings.getCell(3).getStringCellValue());
|
assertEquals("Amount UnsignedInt", rowHeadings.getCell(3).getStringCellValue());
|
||||||
assertEquals(new Double(12345), rowData.getCell(3).getNumericCellValue());
|
assertEquals(new Double(12345), rowData.getCell(3).getNumericCellValue(), 0);
|
||||||
|
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,10 +23,7 @@ import java.io.InputStreamReader;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
|
|
||||||
import org.apache.poi.POIDataSamples;
|
import org.apache.poi.POIDataSamples;
|
||||||
import org.apache.poi.POIXMLException;
|
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
@ -36,6 +33,8 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRElt;
|
|||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRPrElt;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRPrElt;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test {@link SharedStringsTable}, the cache of strings in a workbook
|
* Test {@link SharedStringsTable}, the cache of strings in a workbook
|
||||||
*
|
*
|
||||||
@ -114,12 +113,13 @@ public final class TestSharedStringsTable extends TestCase {
|
|||||||
assertEquals("Second string", new XSSFRichTextString(sst.getEntryAt(2)).toString());
|
assertEquals("Second string", new XSSFRichTextString(sst.getEntryAt(2)).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testReadWrite() {
|
public void testReadWrite() throws IOException {
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx");
|
XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx");
|
||||||
SharedStringsTable sst1 = wb.getSharedStringSource();
|
SharedStringsTable sst1 = wb1.getSharedStringSource();
|
||||||
|
|
||||||
//serialize, read back and compare with the original
|
//serialize, read back and compare with the original
|
||||||
SharedStringsTable sst2 = XSSFTestDataSamples.writeOutAndReadBack(wb).getSharedStringSource();
|
XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
|
||||||
|
SharedStringsTable sst2 = wb2.getSharedStringSource();
|
||||||
|
|
||||||
assertEquals(sst1.getCount(), sst2.getCount());
|
assertEquals(sst1.getCount(), sst2.getCount());
|
||||||
assertEquals(sst1.getUniqueCount(), sst2.getUniqueCount());
|
assertEquals(sst1.getUniqueCount(), sst2.getUniqueCount());
|
||||||
@ -133,7 +133,11 @@ public final class TestSharedStringsTable extends TestCase {
|
|||||||
assertEquals(st1.toString(), st2.toString());
|
assertEquals(st1.toString(), st2.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
|
XSSFWorkbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2);
|
||||||
|
assertNotNull(wb3);
|
||||||
|
wb3.close();
|
||||||
|
wb2.close();
|
||||||
|
wb1.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,34 +148,34 @@ public final class TestSharedStringsTable extends TestCase {
|
|||||||
* @author Philippe Laflamme
|
* @author Philippe Laflamme
|
||||||
*/
|
*/
|
||||||
public void testBug48936() throws IOException {
|
public void testBug48936() throws IOException {
|
||||||
Workbook w = new XSSFWorkbook();
|
Workbook w1 = new XSSFWorkbook();
|
||||||
Sheet s = w.createSheet();
|
Sheet s = w1.createSheet();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
List<String> lst = readStrings("48936-strings.txt");
|
List<String> lst = readStrings("48936-strings.txt");
|
||||||
for (String str : lst) {
|
for (String str : lst) {
|
||||||
s.createRow(i++).createCell(0).setCellValue(str);
|
s.createRow(i++).createCell(0).setCellValue(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
Workbook w2 = XSSFTestDataSamples.writeOutAndReadBack(w1);
|
||||||
w = XSSFTestDataSamples.writeOutAndReadBack(w);
|
w1.close();
|
||||||
} catch (POIXMLException e){
|
s = w2.getSheetAt(0);
|
||||||
fail("Detected Bug #48936");
|
|
||||||
}
|
|
||||||
s = w.getSheetAt(0);
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for (String str : lst) {
|
for (String str : lst) {
|
||||||
String val = s.getRow(i++).getCell(0).getStringCellValue();
|
String val = s.getRow(i++).getCell(0).getStringCellValue();
|
||||||
assertEquals(str, val);
|
assertEquals(str, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(w));
|
Workbook w3 = XSSFTestDataSamples.writeOutAndReadBack(w2);
|
||||||
|
w2.close();
|
||||||
|
assertNotNull(w3);
|
||||||
|
w3.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> readStrings(String filename) throws IOException {
|
private List<String> readStrings(String filename) throws IOException {
|
||||||
List<String> strs = new ArrayList<String>();
|
List<String> strs = new ArrayList<String>();
|
||||||
POIDataSamples samples = POIDataSamples.getSpreadSheetInstance();
|
POIDataSamples samples = POIDataSamples.getSpreadSheetInstance();
|
||||||
BufferedReader br = new BufferedReader(
|
BufferedReader br = new BufferedReader(
|
||||||
new InputStreamReader(samples.openResourceAsStream(filename)));
|
new InputStreamReader(samples.openResourceAsStream(filename), "UTF-8"));
|
||||||
String s;
|
String s;
|
||||||
while ((s = br.readLine()) != null) {
|
while ((s = br.readLine()) != null) {
|
||||||
if (s.trim().length() > 0) {
|
if (s.trim().length() > 0) {
|
||||||
|
@ -367,7 +367,7 @@ public final class TestUnfixedBugs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// verify that the resulting XML has the rows in correct order as required by Excel
|
// verify that the resulting XML has the rows in correct order as required by Excel
|
||||||
String xml = new String(stream.toByteArray());
|
String xml = new String(stream.toByteArray(), "UTF-8");
|
||||||
int posR12 = xml.indexOf("<row r=\"12\"");
|
int posR12 = xml.indexOf("<row r=\"12\"");
|
||||||
int posR13 = xml.indexOf("<row r=\"13\"");
|
int posR13 = xml.indexOf("<row r=\"13\"");
|
||||||
|
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
package org.apache.poi.xssf.usermodel;
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
import static org.junit.Assert.assertArrayEquals;
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@ -31,8 +34,10 @@ import org.apache.poi.ss.usermodel.FontUnderline;
|
|||||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.poi.ss.util.SheetUtil;
|
import org.apache.poi.ss.util.SheetUtil;
|
||||||
|
import org.apache.poi.util.LocaleUtil;
|
||||||
import org.apache.poi.xssf.XSSFITestDataProvider;
|
import org.apache.poi.xssf.XSSFITestDataProvider;
|
||||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
|
import org.junit.Test;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBooleanProperty;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBooleanProperty;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
|
||||||
@ -52,15 +57,18 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
super(XSSFITestDataProvider.instance);
|
super(XSSFITestDataProvider.instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testDefaultFont() {
|
@Test
|
||||||
|
public void testDefaultFont() throws IOException {
|
||||||
baseTestDefaultFont("Calibri", (short) 220, IndexedColors.BLACK.getIndex());
|
baseTestDefaultFont("Calibri", (short) 220, IndexedColors.BLACK.getIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testConstructor() {
|
public void testConstructor() {
|
||||||
XSSFFont xssfFont=new XSSFFont();
|
XSSFFont xssfFont=new XSSFFont();
|
||||||
assertNotNull(xssfFont.getCTFont());
|
assertNotNull(xssfFont.getCTFont());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testBoldweight() {
|
public void testBoldweight() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTBooleanProperty bool=ctFont.addNewB();
|
CTBooleanProperty bool=ctFont.addNewB();
|
||||||
@ -75,7 +83,8 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(true, ctFont.getBArray(0).getVal());
|
assertEquals(true, ctFont.getBArray(0).getVal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testCharSet() {
|
@Test
|
||||||
|
public void testCharSet() throws IOException {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTIntProperty prop=ctFont.addNewCharset();
|
CTIntProperty prop=ctFont.addNewCharset();
|
||||||
prop.setVal(FontCharset.ANSI.getValue());
|
prop.setVal(FontCharset.ANSI.getValue());
|
||||||
@ -108,18 +117,21 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
// Now try with a few sample files
|
// Now try with a few sample files
|
||||||
|
|
||||||
// Normal charset
|
// Normal charset
|
||||||
XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
|
XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
|
||||||
assertEquals(0,
|
assertEquals(0,
|
||||||
workbook.getSheetAt(0).getRow(0).getCell(0).getCellStyle().getFont().getCharSet()
|
wb1.getSheetAt(0).getRow(0).getCell(0).getCellStyle().getFont().getCharSet()
|
||||||
);
|
);
|
||||||
|
wb1.close();
|
||||||
|
|
||||||
// GB2312 charact set
|
// GB2312 charact set
|
||||||
workbook = XSSFTestDataSamples.openSampleWorkbook("49273.xlsx");
|
XSSFWorkbook wb2 = XSSFTestDataSamples.openSampleWorkbook("49273.xlsx");
|
||||||
assertEquals(134,
|
assertEquals(134,
|
||||||
workbook.getSheetAt(0).getRow(0).getCell(0).getCellStyle().getFont().getCharSet()
|
wb2.getSheetAt(0).getRow(0).getCell(0).getCellStyle().getFont().getCharSet()
|
||||||
);
|
);
|
||||||
|
wb2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testFontName() {
|
public void testFontName() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTFontName fname=ctFont.addNewName();
|
CTFontName fname=ctFont.addNewName();
|
||||||
@ -133,6 +145,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals("Courier",ctFont.getNameArray(0).getVal());
|
assertEquals("Courier",ctFont.getNameArray(0).getVal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testItalic() {
|
public void testItalic() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTBooleanProperty bool=ctFont.addNewI();
|
CTBooleanProperty bool=ctFont.addNewI();
|
||||||
@ -148,6 +161,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(true,ctFont.getIArray(0).getVal());
|
assertEquals(true,ctFont.getIArray(0).getVal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testStrikeout() {
|
public void testStrikeout() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTBooleanProperty bool=ctFont.addNewStrike();
|
CTBooleanProperty bool=ctFont.addNewStrike();
|
||||||
@ -163,6 +177,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(true,ctFont.getStrikeArray(0).getVal());
|
assertEquals(true,ctFont.getStrikeArray(0).getVal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testFontHeight() {
|
public void testFontHeight() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTFontSize size=ctFont.addNewSz();
|
CTFontSize size=ctFont.addNewSz();
|
||||||
@ -176,6 +191,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(20.0, ctFont.getSzArray(0).getVal(), 0.0);
|
assertEquals(20.0, ctFont.getSzArray(0).getVal(), 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testFontHeightInPoint() {
|
public void testFontHeightInPoint() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTFontSize size=ctFont.addNewSz();
|
CTFontSize size=ctFont.addNewSz();
|
||||||
@ -189,6 +205,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(20.0, ctFont.getSzArray(0).getVal(), 0.0);
|
assertEquals(20.0, ctFont.getSzArray(0).getVal(), 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testUnderline() {
|
public void testUnderline() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTUnderlineProperty underlinePropr=ctFont.addNewU();
|
CTUnderlineProperty underlinePropr=ctFont.addNewU();
|
||||||
@ -207,6 +224,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
|
assertEquals(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testColor() {
|
public void testColor() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTColor color=ctFont.addNewColor();
|
CTColor color=ctFont.addNewColor();
|
||||||
@ -220,11 +238,12 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(IndexedColors.RED.getIndex(), ctFont.getColorArray(0).getIndexed());
|
assertEquals(IndexedColors.RED.getIndex(), ctFont.getColorArray(0).getIndexed());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testRgbColor() {
|
public void testRgbColor() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTColor color=ctFont.addNewColor();
|
CTColor color=ctFont.addNewColor();
|
||||||
|
|
||||||
color.setRgb(Integer.toHexString(0xFFFFFF).getBytes());
|
color.setRgb(Integer.toHexString(0xFFFFFF).getBytes(LocaleUtil.CHARSET_1252));
|
||||||
ctFont.setColorArray(0,color);
|
ctFont.setColorArray(0,color);
|
||||||
|
|
||||||
XSSFFont xssfFont=new XSSFFont(ctFont);
|
XSSFFont xssfFont=new XSSFFont(ctFont);
|
||||||
@ -235,7 +254,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
|
|
||||||
xssfFont.setColor((short)23);
|
xssfFont.setColor((short)23);
|
||||||
|
|
||||||
byte[] bytes = Integer.toHexString(0xF1F1F1).getBytes();
|
byte[] bytes = Integer.toHexString(0xF1F1F1).getBytes(LocaleUtil.CHARSET_1252);
|
||||||
color.setRgb(bytes);
|
color.setRgb(bytes);
|
||||||
XSSFColor newColor=new XSSFColor(color);
|
XSSFColor newColor=new XSSFColor(color);
|
||||||
xssfFont.setColor(newColor);
|
xssfFont.setColor(newColor);
|
||||||
@ -245,6 +264,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(0, xssfFont.getColor());
|
assertEquals(0, xssfFont.getColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testThemeColor() {
|
public void testThemeColor() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTColor color=ctFont.addNewColor();
|
CTColor color=ctFont.addNewColor();
|
||||||
@ -258,6 +278,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(IndexedColors.RED.getIndex(),ctFont.getColorArray(0).getTheme());
|
assertEquals(IndexedColors.RED.getIndex(),ctFont.getColorArray(0).getTheme());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testFamily() {
|
public void testFamily() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTIntProperty family=ctFont.addNewFamily();
|
CTIntProperty family=ctFont.addNewFamily();
|
||||||
@ -268,6 +289,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(FontFamily.MODERN.getValue(),xssfFont.getFamily());
|
assertEquals(FontFamily.MODERN.getValue(),xssfFont.getFamily());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testScheme() {
|
public void testScheme() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTFontScheme scheme=ctFont.addNewScheme();
|
CTFontScheme scheme=ctFont.addNewScheme();
|
||||||
@ -281,6 +303,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
assertEquals(STFontScheme.NONE,ctFont.getSchemeArray(0).getVal());
|
assertEquals(STFontScheme.NONE,ctFont.getSchemeArray(0).getVal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testTypeOffset() {
|
public void testTypeOffset() {
|
||||||
CTFont ctFont=CTFont.Factory.newInstance();
|
CTFont ctFont=CTFont.Factory.newInstance();
|
||||||
CTVerticalAlignFontProperty valign=ctFont.addNewVertAlign();
|
CTVerticalAlignFontProperty valign=ctFont.addNewVertAlign();
|
||||||
@ -295,6 +318,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store test from TestSheetUtil here as it uses XSSF
|
// store test from TestSheetUtil here as it uses XSSF
|
||||||
|
@Test
|
||||||
public void testCanComputeWidthXSSF() throws IOException {
|
public void testCanComputeWidthXSSF() throws IOException {
|
||||||
Workbook wb = new XSSFWorkbook();
|
Workbook wb = new XSSFWorkbook();
|
||||||
|
|
||||||
@ -305,6 +329,7 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// store test from TestSheetUtil here as it uses XSSF
|
// store test from TestSheetUtil here as it uses XSSF
|
||||||
|
@Test
|
||||||
public void testCanComputeWidthInvalidFont() throws IOException {
|
public void testCanComputeWidthInvalidFont() throws IOException {
|
||||||
Font font = new XSSFFont(CTFont.Factory.newInstance());
|
Font font = new XSSFFont(CTFont.Factory.newInstance());
|
||||||
font.setFontName("some non existing font name");
|
font.setFontName("some non existing font name");
|
||||||
|
@ -24,6 +24,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.apache.poi.ss.usermodel.BaseTestPicture;
|
import org.apache.poi.ss.usermodel.BaseTestPicture;
|
||||||
import org.apache.poi.ss.usermodel.ClientAnchor;
|
import org.apache.poi.ss.usermodel.ClientAnchor;
|
||||||
|
import org.apache.poi.util.LocaleUtil;
|
||||||
import org.apache.poi.xssf.XSSFITestDataProvider;
|
import org.apache.poi.xssf.XSSFITestDataProvider;
|
||||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -58,7 +59,7 @@ public final class TestXSSFPicture extends BaseTestPicture {
|
|||||||
XSSFSheet sheet = wb.createSheet();
|
XSSFSheet sheet = wb.createSheet();
|
||||||
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
||||||
|
|
||||||
byte[] jpegData = "test jpeg data".getBytes();
|
byte[] jpegData = "test jpeg data".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
|
|
||||||
List<XSSFPictureData> pictures = wb.getAllPictures();
|
List<XSSFPictureData> pictures = wb.getAllPictures();
|
||||||
assertEquals(0, pictures.size());
|
assertEquals(0, pictures.size());
|
||||||
@ -97,13 +98,13 @@ public final class TestXSSFPicture extends BaseTestPicture {
|
|||||||
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
||||||
|
|
||||||
XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 10, 30);
|
XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 10, 30);
|
||||||
byte[] jpegData = "picture1".getBytes();
|
byte[] jpegData = "picture1".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
int jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG);
|
int jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG);
|
||||||
|
|
||||||
XSSFPicture shape1 = drawing.createPicture(anchor, jpegIdx);
|
XSSFPicture shape1 = drawing.createPicture(anchor, jpegIdx);
|
||||||
assertEquals(1, shape1.getCTPicture().getNvPicPr().getCNvPr().getId());
|
assertEquals(1, shape1.getCTPicture().getNvPicPr().getCNvPr().getId());
|
||||||
|
|
||||||
jpegData = "picture2".getBytes();
|
jpegData = "picture2".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG);
|
jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG);
|
||||||
XSSFPicture shape2 = drawing.createPicture(anchor, jpegIdx);
|
XSSFPicture shape2 = drawing.createPicture(anchor, jpegIdx);
|
||||||
assertEquals(2, shape2.getCTPicture().getNvPicPr().getCNvPr().getId());
|
assertEquals(2, shape2.getCTPicture().getNvPicPr().getCNvPr().getId());
|
||||||
@ -118,8 +119,8 @@ public final class TestXSSFPicture extends BaseTestPicture {
|
|||||||
public void multiRelationShips() throws IOException {
|
public void multiRelationShips() throws IOException {
|
||||||
XSSFWorkbook wb = new XSSFWorkbook();
|
XSSFWorkbook wb = new XSSFWorkbook();
|
||||||
|
|
||||||
byte[] pic1Data = "test jpeg data".getBytes();
|
byte[] pic1Data = "test jpeg data".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
byte[] pic2Data = "test png data".getBytes();
|
byte[] pic2Data = "test png data".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
|
|
||||||
List<XSSFPictureData> pictures = wb.getAllPictures();
|
List<XSSFPictureData> pictures = wb.getAllPictures();
|
||||||
assertEquals(0, pictures.size());
|
assertEquals(0, pictures.size());
|
||||||
|
@ -18,18 +18,23 @@
|
|||||||
package org.apache.poi.xssf.usermodel;
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
import static org.junit.Assert.assertArrayEquals;
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertSame;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import org.apache.poi.util.LocaleUtil;
|
||||||
|
|
||||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Yegor Kozlov
|
* @author Yegor Kozlov
|
||||||
*/
|
*/
|
||||||
public final class TestXSSFPictureData extends TestCase {
|
public final class TestXSSFPictureData {
|
||||||
public void testRead(){
|
@Test
|
||||||
|
public void testRead() throws IOException {
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithDrawing.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithDrawing.xlsx");
|
||||||
List<XSSFPictureData> pictures = wb.getAllPictures();
|
List<XSSFPictureData> pictures = wb.getAllPictures();
|
||||||
//wb.getAllPictures() should return the same instance across multiple calls
|
//wb.getAllPictures() should return the same instance across multiple calls
|
||||||
@ -54,16 +59,18 @@ public final class TestXSSFPictureData extends TestCase {
|
|||||||
XSSFPictureData pict = pictures.get(idx);
|
XSSFPictureData pict = pictures.get(idx);
|
||||||
assertEquals("jpeg", pict.suggestFileExtension());
|
assertEquals("jpeg", pict.suggestFileExtension());
|
||||||
assertArrayEquals(pictureData, pict.getData());
|
assertArrayEquals(pictureData, pict.getData());
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNew(){
|
@Test
|
||||||
|
public void testNew() throws IOException {
|
||||||
XSSFWorkbook wb = new XSSFWorkbook();
|
XSSFWorkbook wb = new XSSFWorkbook();
|
||||||
XSSFSheet sheet = wb.createSheet();
|
XSSFSheet sheet = wb.createSheet();
|
||||||
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
||||||
|
|
||||||
byte[] jpegData = "test jpeg data".getBytes();
|
byte[] jpegData = "test jpeg data".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
byte[] wmfData = "test wmf data".getBytes();
|
byte[] wmfData = "test wmf data".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
byte[] pngData = "test png data".getBytes();
|
byte[] pngData = "test png data".getBytes(LocaleUtil.CHARSET_1252);
|
||||||
|
|
||||||
List<XSSFPictureData> pictures = wb.getAllPictures();
|
List<XSSFPictureData> pictures = wb.getAllPictures();
|
||||||
assertEquals(0, pictures.size());
|
assertEquals(0, pictures.size());
|
||||||
@ -104,13 +111,15 @@ public final class TestXSSFPictureData extends TestCase {
|
|||||||
|
|
||||||
assertEquals("png", pictures2.get(pngIdx).suggestFileExtension());
|
assertEquals("png", pictures2.get(pngIdx).suggestFileExtension());
|
||||||
assertArrayEquals(pngData, pictures2.get(pngIdx).getData());
|
assertArrayEquals(pngData, pictures2.get(pngIdx).getData());
|
||||||
|
wbBack.close();
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bug 53568: XSSFPicture.getPictureData() can return null.
|
* Bug 53568: XSSFPicture.getPictureData() can return null.
|
||||||
*/
|
*/
|
||||||
public void test53568(){
|
@Test
|
||||||
|
public void test53568() throws IOException {
|
||||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("53568.xlsx");
|
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("53568.xlsx");
|
||||||
List<XSSFPictureData> pictures = wb.getAllPictures();
|
List<XSSFPictureData> pictures = wb.getAllPictures();
|
||||||
assertNotNull(pictures);
|
assertNotNull(pictures);
|
||||||
@ -132,6 +141,6 @@ public final class TestXSSFPictureData extends TestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,6 @@ import java.io.IOException;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -53,6 +52,7 @@ import org.apache.poi.ss.util.AreaReference;
|
|||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.poi.ss.util.CellReference;
|
import org.apache.poi.ss.util.CellReference;
|
||||||
import org.apache.poi.ss.util.CellUtil;
|
import org.apache.poi.ss.util.CellUtil;
|
||||||
|
import org.apache.poi.util.LocaleUtil;
|
||||||
import org.apache.poi.xssf.XSSFITestDataProvider;
|
import org.apache.poi.xssf.XSSFITestDataProvider;
|
||||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||||
import org.apache.poi.xssf.model.CalculationChain;
|
import org.apache.poi.xssf.model.CalculationChain;
|
||||||
@ -1479,7 +1479,7 @@ public final class TestXSSFSheet extends BaseTestSheet {
|
|||||||
// Date
|
// Date
|
||||||
cell = CellUtil.getCell(destRow, col++);
|
cell = CellUtil.getCell(destRow, col++);
|
||||||
assertEquals("[Date] E7 cell type", Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
assertEquals("[Date] E7 cell type", Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
||||||
final Date date = new GregorianCalendar(2000, Calendar.JANUARY, 1).getTime();
|
final Date date = LocaleUtil.getLocaleCalendar(2000, Calendar.JANUARY, 1).getTime();
|
||||||
assertEquals("[Date] E7 cell value", date, cell.getDateCellValue());
|
assertEquals("[Date] E7 cell value", date, cell.getDateCellValue());
|
||||||
|
|
||||||
// Boolean
|
// Boolean
|
||||||
@ -1641,12 +1641,12 @@ public final class TestXSSFSheet extends BaseTestSheet {
|
|||||||
col++;
|
col++;
|
||||||
cell = CellUtil.getCell(destRow1, col);
|
cell = CellUtil.getCell(destRow1, col);
|
||||||
assertEquals("[Date] E10 cell type", Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
assertEquals("[Date] E10 cell type", Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
||||||
Date date = new GregorianCalendar(2000, Calendar.JANUARY, 1).getTime();
|
Date date = LocaleUtil.getLocaleCalendar(2000, Calendar.JANUARY, 1).getTime();
|
||||||
assertEquals("[Date] E10 cell value", date, cell.getDateCellValue());
|
assertEquals("[Date] E10 cell value", date, cell.getDateCellValue());
|
||||||
|
|
||||||
cell = CellUtil.getCell(destRow2, col);
|
cell = CellUtil.getCell(destRow2, col);
|
||||||
assertEquals("[Date] E11 cell type", Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
assertEquals("[Date] E11 cell type", Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
||||||
date = new GregorianCalendar(2000, Calendar.JANUARY, 2).getTime();
|
date = LocaleUtil.getLocaleCalendar(2000, Calendar.JANUARY, 2).getTime();
|
||||||
assertEquals("[Date] E11 cell value", date, cell.getDateCellValue());
|
assertEquals("[Date] E11 cell value", date, cell.getDateCellValue());
|
||||||
|
|
||||||
// Boolean
|
// Boolean
|
||||||
|
@ -742,7 +742,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
|
|
||||||
sheetBack.commit();
|
sheetBack.commit();
|
||||||
|
|
||||||
String str = new String(IOUtils.toByteArray(sheetBack.getPackagePart().getInputStream()));
|
String str = new String(IOUtils.toByteArray(sheetBack.getPackagePart().getInputStream()), "UTF-8");
|
||||||
|
|
||||||
assertEquals(1, countMatches(str, "<worksheet"));
|
assertEquals(1, countMatches(str, "<worksheet"));
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -17,9 +17,12 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.hssf.HSSFITestDataProvider;
|
import org.apache.poi.hssf.HSSFITestDataProvider;
|
||||||
import org.apache.poi.ss.usermodel.BaseTestFont;
|
import org.apache.poi.ss.usermodel.BaseTestFont;
|
||||||
import org.apache.poi.ss.usermodel.Font;
|
import org.apache.poi.ss.usermodel.Font;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests various functionality having to do with {@link org.apache.poi.ss.usermodel.Name}.
|
* Tests various functionality having to do with {@link org.apache.poi.ss.usermodel.Name}.
|
||||||
@ -32,7 +35,8 @@ public final class TestHSSFFont extends BaseTestFont {
|
|||||||
super(HSSFITestDataProvider.instance);
|
super(HSSFITestDataProvider.instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testDefaultFont() {
|
@Test
|
||||||
|
public void testDefaultFont() throws IOException {
|
||||||
baseTestDefaultFont(HSSFFont.FONT_ARIAL, (short)200, Font.COLOR_NORMAL);
|
baseTestDefaultFont(HSSFFont.FONT_ARIAL, (short)200, Font.COLOR_NORMAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,10 +17,10 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
import java.io.IOException;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
import junit.framework.AssertionFailedError;
|
import java.io.IOException;
|
||||||
import junit.framework.TestCase;
|
|
||||||
|
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||||
import org.apache.poi.hssf.record.RecordFormatException;
|
import org.apache.poi.hssf.record.RecordFormatException;
|
||||||
@ -31,6 +31,8 @@ import org.apache.poi.ss.usermodel.Sheet;
|
|||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import junit.framework.AssertionFailedError;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author aviks
|
* @author aviks
|
||||||
*
|
*
|
||||||
@ -40,8 +42,9 @@ import org.junit.Test;
|
|||||||
* Bugzilla id's PLEASE MOVE tests from this class to TestBugs once the bugs are
|
* Bugzilla id's PLEASE MOVE tests from this class to TestBugs once the bugs are
|
||||||
* fixed, so that they are then run automatically.
|
* fixed, so that they are then run automatically.
|
||||||
*/
|
*/
|
||||||
public final class TestUnfixedBugs extends TestCase {
|
public final class TestUnfixedBugs {
|
||||||
|
|
||||||
|
@Test
|
||||||
public void test43493() {
|
public void test43493() {
|
||||||
// Has crazy corrupt sub-records on
|
// Has crazy corrupt sub-records on
|
||||||
// a EmbeddedObjectRefSubRecord
|
// a EmbeddedObjectRefSubRecord
|
||||||
@ -59,6 +62,7 @@ public final class TestUnfixedBugs extends TestCase {
|
|||||||
* Note - some parts of this bug have been fixed, and have been
|
* Note - some parts of this bug have been fixed, and have been
|
||||||
* transfered over to {@link TestBugs#bug49612_part()}
|
* transfered over to {@link TestBugs#bug49612_part()}
|
||||||
*/
|
*/
|
||||||
|
@Test
|
||||||
public void test49612() throws IOException {
|
public void test49612() throws IOException {
|
||||||
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("49612.xls");
|
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("49612.xls");
|
||||||
HSSFSheet sh = wb.getSheetAt(0);
|
HSSFSheet sh = wb.getSheetAt(0);
|
||||||
@ -79,11 +83,14 @@ public final class TestUnfixedBugs extends TestCase {
|
|||||||
assertEquals("SUM('49612.xls'!BOB+'49612.xls'!JIM)", e1.getCellFormula());
|
assertEquals("SUM('49612.xls'!BOB+'49612.xls'!JIM)", e1.getCellFormula());
|
||||||
|
|
||||||
// Problem 3 - fixed and transfered
|
// Problem 3 - fixed and transfered
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testFormulaRecordAggregate_1() throws Exception {
|
public void testFormulaRecordAggregate_1() throws Exception {
|
||||||
// fails at formula "=MEHRFACH.OPERATIONEN(E$3;$B$5;$D4)"
|
// fails at formula "=MEHRFACH.OPERATIONEN(E$3;$B$5;$D4)"
|
||||||
Workbook wb = HSSFTestDataSamples.openSampleWorkbook("44958_1.xls");
|
Workbook wb = HSSFTestDataSamples.openSampleWorkbook("44958_1.xls");
|
||||||
|
try {
|
||||||
for(int i = 0;i < wb.getNumberOfSheets();i++) {
|
for(int i = 0;i < wb.getNumberOfSheets();i++) {
|
||||||
Sheet sheet = wb.getSheetAt(i);
|
Sheet sheet = wb.getSheetAt(i);
|
||||||
assertNotNull(wb.getSheet(sheet.getSheetName()));
|
assertNotNull(wb.getSheet(sheet.getSheetName()));
|
||||||
@ -101,32 +108,40 @@ public final class TestUnfixedBugs extends TestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} finally {
|
||||||
|
wb.close();
|
||||||
public void testFormulaRecordAggregate() throws Exception {
|
|
||||||
// fails at formula "=MEHRFACH.OPERATIONEN(E$3;$B$5;$D4)"
|
|
||||||
Workbook wb = HSSFTestDataSamples.openSampleWorkbook("44958.xls");
|
|
||||||
for(int i = 0;i < wb.getNumberOfSheets();i++) {
|
|
||||||
Sheet sheet = wb.getSheetAt(i);
|
|
||||||
assertNotNull(wb.getSheet(sheet.getSheetName()));
|
|
||||||
sheet.groupColumn((short) 4, (short) 5);
|
|
||||||
sheet.setColumnGroupCollapsed(4, true);
|
|
||||||
sheet.setColumnGroupCollapsed(4, false);
|
|
||||||
|
|
||||||
for(Row row : sheet) {
|
|
||||||
for(Cell cell : row) {
|
|
||||||
try {
|
|
||||||
cell.toString();
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new Exception("While handling: " + sheet.getSheetName() + "/" + row.getRowNum() + "/" + cell.getColumnIndex(), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBug57074() {
|
public void testFormulaRecordAggregate() throws Exception {
|
||||||
|
// fails at formula "=MEHRFACH.OPERATIONEN(E$3;$B$5;$D4)"
|
||||||
|
Workbook wb = HSSFTestDataSamples.openSampleWorkbook("44958.xls");
|
||||||
|
try {
|
||||||
|
for(int i = 0;i < wb.getNumberOfSheets();i++) {
|
||||||
|
Sheet sheet = wb.getSheetAt(i);
|
||||||
|
assertNotNull(wb.getSheet(sheet.getSheetName()));
|
||||||
|
sheet.groupColumn((short) 4, (short) 5);
|
||||||
|
sheet.setColumnGroupCollapsed(4, true);
|
||||||
|
sheet.setColumnGroupCollapsed(4, false);
|
||||||
|
|
||||||
|
for(Row row : sheet) {
|
||||||
|
for(Cell cell : row) {
|
||||||
|
try {
|
||||||
|
cell.toString();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new Exception("While handling: " + sheet.getSheetName() + "/" + row.getRowNum() + "/" + cell.getColumnIndex(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
wb.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBug57074() throws IOException {
|
||||||
Workbook wb = HSSFTestDataSamples.openSampleWorkbook("57074.xls");
|
Workbook wb = HSSFTestDataSamples.openSampleWorkbook("57074.xls");
|
||||||
Sheet sheet = wb.getSheet("Sheet1");
|
Sheet sheet = wb.getSheet("Sheet1");
|
||||||
Row row = sheet.getRow(0);
|
Row row = sheet.getRow(0);
|
||||||
@ -141,5 +156,6 @@ public final class TestUnfixedBugs extends TestCase {
|
|||||||
String fontColorStr = fontColor.getTriplet()[0]+", "+fontColor.getTriplet()[1]+", "+fontColor.getTriplet()[2];
|
String fontColorStr = fontColor.getTriplet()[0]+", "+fontColor.getTriplet()[1]+", "+fontColor.getTriplet()[2];
|
||||||
//System.out.println(fontColorStr);
|
//System.out.println(fontColorStr);
|
||||||
assertEquals("0, 128, 128", fontColorStr);
|
assertEquals("0, 128, 128", fontColorStr);
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,14 +17,17 @@
|
|||||||
|
|
||||||
package org.apache.poi.ss.usermodel;
|
package org.apache.poi.ss.usermodel;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.ss.ITestDataProvider;
|
import org.apache.poi.ss.ITestDataProvider;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Yegor Kozlov
|
* @author Yegor Kozlov
|
||||||
*/
|
*/
|
||||||
public abstract class BaseTestFont extends TestCase {
|
public abstract class BaseTestFont {
|
||||||
|
|
||||||
private final ITestDataProvider _testDataProvider;
|
private final ITestDataProvider _testDataProvider;
|
||||||
|
|
||||||
@ -32,7 +35,7 @@ public abstract class BaseTestFont extends TestCase {
|
|||||||
_testDataProvider = testDataProvider;
|
_testDataProvider = testDataProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final void baseTestDefaultFont(String defaultName, short defaultSize, short defaultColor){
|
protected final void baseTestDefaultFont(String defaultName, short defaultSize, short defaultColor) throws IOException {
|
||||||
//get default font and check against default value
|
//get default font and check against default value
|
||||||
Workbook workbook = _testDataProvider.createWorkbook();
|
Workbook workbook = _testDataProvider.createWorkbook();
|
||||||
Font fontFind=workbook.findFont(Font.BOLDWEIGHT_NORMAL, defaultColor, defaultSize, defaultName, false, false, Font.SS_NONE, Font.U_NONE);
|
Font fontFind=workbook.findFont(Font.BOLDWEIGHT_NORMAL, defaultColor, defaultSize, defaultName, false, false, Font.SS_NONE, Font.U_NONE);
|
||||||
@ -49,9 +52,11 @@ public abstract class BaseTestFont extends TestCase {
|
|||||||
assertEquals(15, font.getFontHeightInPoints());
|
assertEquals(15, font.getFontHeightInPoints());
|
||||||
fontFind=workbook.findFont(Font.BOLDWEIGHT_BOLD, defaultColor, (short)(15*20), defaultName, false, false, Font.SS_NONE, Font.U_DOUBLE);
|
fontFind=workbook.findFont(Font.BOLDWEIGHT_BOLD, defaultColor, (short)(15*20), defaultName, false, false, Font.SS_NONE, Font.U_DOUBLE);
|
||||||
assertNotNull(fontFind);
|
assertNotNull(fontFind);
|
||||||
|
workbook.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void testGetNumberOfFonts(){
|
@Test
|
||||||
|
public final void testGetNumberOfFonts() throws IOException {
|
||||||
Workbook wb = _testDataProvider.createWorkbook();
|
Workbook wb = _testDataProvider.createWorkbook();
|
||||||
int num0 = wb.getNumberOfFonts();
|
int num0 = wb.getNumberOfFonts();
|
||||||
|
|
||||||
@ -74,63 +79,68 @@ public abstract class BaseTestFont extends TestCase {
|
|||||||
assertEquals(Font.BOLDWEIGHT_BOLD,wb.getFontAt(idx1).getBoldweight());
|
assertEquals(Font.BOLDWEIGHT_BOLD,wb.getFontAt(idx1).getBoldweight());
|
||||||
assertEquals(Font.U_DOUBLE,wb.getFontAt(idx2).getUnderline());
|
assertEquals(Font.U_DOUBLE,wb.getFontAt(idx2).getUnderline());
|
||||||
assertEquals(23,wb.getFontAt(idx3).getFontHeightInPoints());
|
assertEquals(23,wb.getFontAt(idx3).getFontHeightInPoints());
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that we can define fonts to a new
|
* Tests that we can define fonts to a new
|
||||||
* file, save, load, and still see them
|
* file, save, load, and still see them
|
||||||
*/
|
*/
|
||||||
public final void testCreateSave() {
|
@Test
|
||||||
Workbook wb = _testDataProvider.createWorkbook();
|
public final void testCreateSave() throws IOException {
|
||||||
Sheet s1 = wb.createSheet();
|
Workbook wb1 = _testDataProvider.createWorkbook();
|
||||||
|
Sheet s1 = wb1.createSheet();
|
||||||
Row r1 = s1.createRow(0);
|
Row r1 = s1.createRow(0);
|
||||||
Cell r1c1 = r1.createCell(0);
|
Cell r1c1 = r1.createCell(0);
|
||||||
r1c1.setCellValue(2.2);
|
r1c1.setCellValue(2.2);
|
||||||
|
|
||||||
int num0 = wb.getNumberOfFonts();
|
int num0 = wb1.getNumberOfFonts();
|
||||||
|
|
||||||
Font font=wb.createFont();
|
Font font=wb1.createFont();
|
||||||
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
|
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
|
||||||
font.setStrikeout(true);
|
font.setStrikeout(true);
|
||||||
font.setColor(IndexedColors.YELLOW.getIndex());
|
font.setColor(IndexedColors.YELLOW.getIndex());
|
||||||
font.setFontName("Courier");
|
font.setFontName("Courier");
|
||||||
short font1Idx = font.getIndex();
|
short font1Idx = font.getIndex();
|
||||||
wb.createCellStyle().setFont(font);
|
wb1.createCellStyle().setFont(font);
|
||||||
assertEquals(num0 + 1, wb.getNumberOfFonts());
|
assertEquals(num0 + 1, wb1.getNumberOfFonts());
|
||||||
|
|
||||||
CellStyle cellStyleTitle=wb.createCellStyle();
|
CellStyle cellStyleTitle=wb1.createCellStyle();
|
||||||
cellStyleTitle.setFont(font);
|
cellStyleTitle.setFont(font);
|
||||||
r1c1.setCellStyle(cellStyleTitle);
|
r1c1.setCellStyle(cellStyleTitle);
|
||||||
|
|
||||||
// Save and re-load
|
// Save and re-load
|
||||||
wb = _testDataProvider.writeOutAndReadBack(wb);
|
Workbook wb2 = _testDataProvider.writeOutAndReadBack(wb1);
|
||||||
s1 = wb.getSheetAt(0);
|
wb1.close();
|
||||||
|
s1 = wb2.getSheetAt(0);
|
||||||
|
|
||||||
assertEquals(num0 + 1, wb.getNumberOfFonts());
|
assertEquals(num0 + 1, wb2.getNumberOfFonts());
|
||||||
short idx = s1.getRow(0).getCell(0).getCellStyle().getFontIndex();
|
short idx = s1.getRow(0).getCell(0).getCellStyle().getFontIndex();
|
||||||
Font fnt = wb.getFontAt(idx);
|
Font fnt = wb2.getFontAt(idx);
|
||||||
assertNotNull(fnt);
|
assertNotNull(fnt);
|
||||||
assertEquals(IndexedColors.YELLOW.getIndex(), fnt.getColor());
|
assertEquals(IndexedColors.YELLOW.getIndex(), fnt.getColor());
|
||||||
assertEquals("Courier", fnt.getFontName());
|
assertEquals("Courier", fnt.getFontName());
|
||||||
|
|
||||||
// Now add an orphaned one
|
// Now add an orphaned one
|
||||||
Font font2 = wb.createFont();
|
Font font2 = wb2.createFont();
|
||||||
font2.setItalic(true);
|
font2.setItalic(true);
|
||||||
font2.setFontHeightInPoints((short)15);
|
font2.setFontHeightInPoints((short)15);
|
||||||
short font2Idx = font2.getIndex();
|
short font2Idx = font2.getIndex();
|
||||||
wb.createCellStyle().setFont(font2);
|
wb2.createCellStyle().setFont(font2);
|
||||||
assertEquals(num0 + 2, wb.getNumberOfFonts());
|
assertEquals(num0 + 2, wb2.getNumberOfFonts());
|
||||||
|
|
||||||
// Save and re-load
|
// Save and re-load
|
||||||
wb = _testDataProvider.writeOutAndReadBack(wb);
|
Workbook wb3 = _testDataProvider.writeOutAndReadBack(wb2);
|
||||||
s1 = wb.getSheetAt(0);
|
wb2.close();
|
||||||
|
s1 = wb3.getSheetAt(0);
|
||||||
|
|
||||||
assertEquals(num0 + 2, wb.getNumberOfFonts());
|
assertEquals(num0 + 2, wb3.getNumberOfFonts());
|
||||||
assertNotNull(wb.getFontAt(font1Idx));
|
assertNotNull(wb3.getFontAt(font1Idx));
|
||||||
assertNotNull(wb.getFontAt(font2Idx));
|
assertNotNull(wb3.getFontAt(font2Idx));
|
||||||
|
|
||||||
assertEquals(15, wb.getFontAt(font2Idx).getFontHeightInPoints());
|
assertEquals(15, wb3.getFontAt(font2Idx).getFontHeightInPoints());
|
||||||
assertEquals(true, wb.getFontAt(font2Idx).getItalic());
|
assertEquals(true, wb3.getFontAt(font2Idx).getItalic());
|
||||||
|
wb3.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -138,7 +148,8 @@ public abstract class BaseTestFont extends TestCase {
|
|||||||
*
|
*
|
||||||
* @see org.apache.poi.hssf.usermodel.TestBugs#test45338()
|
* @see org.apache.poi.hssf.usermodel.TestBugs#test45338()
|
||||||
*/
|
*/
|
||||||
public final void test45338() {
|
@Test
|
||||||
|
public final void test45338() throws IOException {
|
||||||
Workbook wb = _testDataProvider.createWorkbook();
|
Workbook wb = _testDataProvider.createWorkbook();
|
||||||
int num0 = wb.getNumberOfFonts();
|
int num0 = wb.getNumberOfFonts();
|
||||||
|
|
||||||
@ -200,5 +211,6 @@ public abstract class BaseTestFont extends TestCase {
|
|||||||
"Thingy", false, true, (short)2, (byte)2
|
"Thingy", false, true, (short)2, (byte)2
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user