Test case for bug 21775
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353252 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
959277eee5
commit
ddbfc9bd51
189
src/testcases/org/apache/poi/hpsf/basic/TestEmptyProperties.java
Normal file
189
src/testcases/org/apache/poi/hpsf/basic/TestEmptyProperties.java
Normal file
@ -0,0 +1,189 @@
|
||||
package org.apache.poi.hpsf.basic;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.poi.hpsf.HPSFException;
|
||||
import org.apache.poi.hpsf.MarkUnsupportedException;
|
||||
import org.apache.poi.hpsf.NoPropertySetStreamException;
|
||||
import org.apache.poi.hpsf.PropertySet;
|
||||
import org.apache.poi.hpsf.PropertySetFactory;
|
||||
import org.apache.poi.hpsf.SummaryInformation;
|
||||
import org.apache.poi.hpsf.UnexpectedPropertySetTypeException;
|
||||
|
||||
/**
|
||||
* <p>Test case for OLE2 files with empty properties. An empty property's type
|
||||
* is {@link Variant.VT_EMPTY}.</p>
|
||||
*
|
||||
* @author Rainer Klute <a
|
||||
* href="mailto:klute@rainer-klute.de"><klute@rainer-klute.de></a>
|
||||
* @since 2003-07-25
|
||||
* @version $Id$
|
||||
*/
|
||||
public class TestEmptyProperties extends TestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* <p>This test file's summary information stream contains some empty
|
||||
* properties.</p>
|
||||
*/
|
||||
static final String POI_FS = "TestCorel.shw";
|
||||
|
||||
static final String[] POI_FILES = new String[]
|
||||
{
|
||||
"PerfectOffice_MAIN",
|
||||
"\005SummaryInformation",
|
||||
"Main"
|
||||
};
|
||||
|
||||
POIFile[] poiFiles;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>Constructor</p>
|
||||
*
|
||||
* @param name The name of the test case
|
||||
*/
|
||||
public TestEmptyProperties(final String name)
|
||||
{
|
||||
super(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>Read a the test file from the "data" directory.</p>
|
||||
*
|
||||
* @exception FileNotFoundException if the file containing the test data
|
||||
* does not exist
|
||||
* @exception IOException if an I/O exception occurs
|
||||
*/
|
||||
public void setUp() throws FileNotFoundException, IOException
|
||||
{
|
||||
final File dataDir =
|
||||
new File(System.getProperty("HPSF.testdata.path"));
|
||||
final File data = new File(dataDir, POI_FS);
|
||||
|
||||
poiFiles = Util.readPOIFiles(data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>Checks the names of the files in the POI filesystem. They
|
||||
* are expected to be in a certain order.</p>
|
||||
*
|
||||
* @exception IOException if an I/O exception occurs
|
||||
*/
|
||||
public void testReadFiles() throws IOException
|
||||
{
|
||||
String[] expected = POI_FILES;
|
||||
for (int i = 0; i < expected.length; i++)
|
||||
Assert.assertEquals(poiFiles[i].getName(), expected[i]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>Tests whether property sets can be created from the POI
|
||||
* files in the POI file system. This test case expects the first
|
||||
* file to be a {@link SummaryInformation}, the second file to be
|
||||
* a {@link DocumentSummaryInformation} and the rest to be no
|
||||
* property sets. In the latter cases a {@link
|
||||
* NoPropertySetStreamException} will be thrown when trying to
|
||||
* create a {@link PropertySet}.</p>
|
||||
*
|
||||
* @exception IOException if an I/O exception occurs
|
||||
*/
|
||||
public void testCreatePropertySets() throws IOException
|
||||
{
|
||||
Class[] expected = new Class[]
|
||||
{
|
||||
NoPropertySetStreamException.class,
|
||||
SummaryInformation.class,
|
||||
NoPropertySetStreamException.class
|
||||
};
|
||||
for (int i = 0; i < expected.length; i++)
|
||||
{
|
||||
InputStream in = new ByteArrayInputStream(poiFiles[i].getBytes());
|
||||
Object o;
|
||||
try
|
||||
{
|
||||
o = PropertySetFactory.create(in);
|
||||
}
|
||||
catch (NoPropertySetStreamException ex)
|
||||
{
|
||||
o = ex;
|
||||
}
|
||||
catch (UnexpectedPropertySetTypeException ex)
|
||||
{
|
||||
o = ex;
|
||||
}
|
||||
catch (MarkUnsupportedException ex)
|
||||
{
|
||||
o = ex;
|
||||
}
|
||||
in.close();
|
||||
Assert.assertEquals(o.getClass(), expected[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>Tests the {@link PropertySet} methods. The test file has two
|
||||
* property sets: the first one is a {@link SummaryInformation},
|
||||
* the second one is a {@link DocumentSummaryInformation}.</p>
|
||||
*
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* @exception HPSFException if an HPSF operation fails
|
||||
*/
|
||||
public void testPropertySetMethods() throws IOException, HPSFException
|
||||
{
|
||||
byte[] b = poiFiles[1].getBytes();
|
||||
PropertySet ps =
|
||||
PropertySetFactory.create(new ByteArrayInputStream(b));
|
||||
SummaryInformation s = (SummaryInformation) ps;
|
||||
assertNull(s.getTitle());
|
||||
assertNull(s.getSubject());
|
||||
assertNotNull(s.getAuthor());
|
||||
assertNull(s.getKeywords());
|
||||
assertNull(s.getComments());
|
||||
assertNotNull(s.getTemplate());
|
||||
assertNotNull(s.getLastAuthor());
|
||||
assertNotNull(s.getRevNumber());
|
||||
assertNull(s.getEditTime());
|
||||
assertNull(s.getLastPrinted());
|
||||
assertNull(s.getCreateDateTime());
|
||||
assertNull(s.getLastSaveDateTime());
|
||||
assertEquals(s.getPageCount(), 0);
|
||||
assertEquals(s.getWordCount(), 0);
|
||||
assertEquals(s.getCharCount(), 0);
|
||||
assertNull(s.getThumbnail());
|
||||
assertNull(s.getApplicationName());
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>Runs the test cases stand-alone.</p>
|
||||
*
|
||||
* @param args the command-line arguments (unused)
|
||||
*
|
||||
* @exception Throwable if any exception or error occurs
|
||||
*/
|
||||
public static void main(final String[] args) throws Throwable
|
||||
{
|
||||
System.setProperty("HPSF.testdata.path",
|
||||
"./src/testcases/org/apache/poi/hpsf/data");
|
||||
junit.textui.TestRunner.run(TestBasic.class);
|
||||
}
|
||||
|
||||
}
|
BIN
src/testcases/org/apache/poi/hpsf/data/TestCorel.shw
Executable file
BIN
src/testcases/org/apache/poi/hpsf/data/TestCorel.shw
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user