diff options
author | Josh Micich <josh@apache.org> | 2009-10-08 22:29:41 +0000 |
---|---|---|
committer | Josh Micich <josh@apache.org> | 2009-10-08 22:29:41 +0000 |
commit | 78e643fe2184d931b08120ee5f29e2b2e9daf3c1 (patch) | |
tree | de68356537068f7231623438ee80cd456046a35b /src/testcases/org/apache/poi/hpsf | |
parent | 8f4139a9a6041ec05a30223f84f39e0939bc863b (diff) | |
download | poi-78e643fe2184d931b08120ee5f29e2b2e9daf3c1.tar.gz poi-78e643fe2184d931b08120ee5f29e2b2e9daf3c1.zip |
Bugzilla 47962 - Fixed some potential NPEs. Avoided unnecessary creation of box instances. Applied patch with mods
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@823348 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/hpsf')
4 files changed, 703 insertions, 812 deletions
diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java b/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java index 8d94d2df6e..63bde0c2de 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestMetaDataIPI.java @@ -43,117 +43,80 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * Basing on: src/examples/src/org/apache/poi/hpsf/examples/ModifyDocumentSummaryInformation.java * This class tests reading and writing of meta data. No actual document is created. All information - * is stored in a virtal document in a ByteArrayOutputStream + * is stored in a virtual document in a ByteArrayOutputStream * @author Matthias G\u00fcnter */ -public class TestMetaDataIPI extends TestCase{ - - private ByteArrayOutputStream bout= null; //our store - private POIFSFileSystem poifs=null; - DirectoryEntry dir = null; - DocumentSummaryInformation dsi=null; - SummaryInformation si=null; - - - - /** - * Setup is used to get the document ready. Gets the DocumentSummaryInformation and the - * SummaryInformation to reasonable values - */ - public void setUp(){ - bout=new ByteArrayOutputStream(); - poifs= new POIFSFileSystem(); - dir = poifs.getRoot(); - dsi=null; - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - dsi = new DocumentSummaryInformation(ps); - - - } - catch (FileNotFoundException ex) - { - /* There is no document summary information yet. We have to create a - * new one. */ - dsi = PropertySetFactory.newDocumentSummaryInformation(); - assertNotNull(dsi); - } catch (IOException e) { - e.printStackTrace(); - fail(); - } catch (NoPropertySetStreamException e) { - e.printStackTrace(); - fail(); - } catch (MarkUnsupportedException e) { - e.printStackTrace(); - fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); - fail(); - } - assertNotNull(dsi); - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - si = new SummaryInformation(ps); - - - } - catch (FileNotFoundException ex) - { - /* There is no document summary information yet. We have to create a - * new one. */ - si = PropertySetFactory.newSummaryInformation(); - assertNotNull(si); - } catch (IOException e) { - e.printStackTrace(); - fail(); - } catch (NoPropertySetStreamException e) { - e.printStackTrace(); - fail(); - } catch (MarkUnsupportedException e) { - e.printStackTrace(); - fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); - fail(); +public final class TestMetaDataIPI extends TestCase{ + + private ByteArrayOutputStream bout; //our store + private POIFSFileSystem poifs; + private DirectoryEntry dir; + private DocumentSummaryInformation dsi; + private SummaryInformation si; + + + + /** + * Setup is used to get the document ready. Gets the DocumentSummaryInformation and the + * SummaryInformation to reasonable values + */ + public void setUp() { + bout = new ByteArrayOutputStream(); + poifs = new POIFSFileSystem(); + dir = poifs.getRoot(); + dsi = null; + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + dsi = new DocumentSummaryInformation(ps); + + } catch (FileNotFoundException ex) { + /* + * There is no document summary information yet. We have to create a + * new one. + */ + dsi = PropertySetFactory.newDocumentSummaryInformation(); + assertNotNull(dsi); + } catch (Exception e) { + e.printStackTrace(); + fail(); + } + assertNotNull(dsi); + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(SummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + si = new SummaryInformation(ps); + + } catch (FileNotFoundException ex) { + /* + * There is no document summary information yet. We have to create a + * new one. + */ + si = PropertySetFactory.newSummaryInformation(); + assertNotNull(si); + } catch (Exception e) { + e.printStackTrace(); + fail(); + } + assertNotNull(dsi); } - assertNotNull(dsi); - - - } - - /** - * Setting a lot of things to null. - */ - public void tearDown(){ - bout=null; - poifs=null; - dir=null; - dsi=null; - - } - - - /** - * Closes the ByteArrayOutputStream and reads it into a ByteArrayInputStream. - * When finished writing information this method is used in the tests to - * start reading from the created document and then the see if the results match. - * - */ - public void closeAndReOpen(){ - - try { + + /** + * Closes the ByteArrayOutputStream and reads it into a ByteArrayInputStream. + * When finished writing information this method is used in the tests to + * start reading from the created document and then the see if the results match. + */ + public void closeAndReOpen() { + + try { dsi.write(dir, DocumentSummaryInformation.DEFAULT_STREAM_NAME); - si.write(dir,SummaryInformation.DEFAULT_STREAM_NAME); + si.write(dir, SummaryInformation.DEFAULT_STREAM_NAME); } catch (WritingNotSupportedException e) { e.printStackTrace(); fail(); @@ -162,659 +125,592 @@ public class TestMetaDataIPI extends TestCase{ fail(); } - si=null; - dsi=null; + si = null; + dsi = null; try { - poifs.writeFilesystem(bout); bout.flush(); - } catch (IOException e) { - e.printStackTrace(); fail(); } - - InputStream is=new ByteArrayInputStream(bout.toByteArray()); - assertNotNull(is); - POIFSFileSystem poifs=null; + + InputStream is = new ByteArrayInputStream(bout.toByteArray()); + assertNotNull(is); + POIFSFileSystem poifs = null; try { poifs = new POIFSFileSystem(is); } catch (IOException e) { - e.printStackTrace(); fail(); } - try { + try { is.close(); } catch (IOException e) { e.printStackTrace(); fail(); } - assertNotNull(poifs); - /* Read the document summary information. */ - DirectoryEntry dir = poifs.getRoot(); - - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - dsi = new DocumentSummaryInformation(ps); - } - catch (FileNotFoundException ex) - { - fail(); - } catch (IOException e) { - e.printStackTrace(); + assertNotNull(poifs); + /* Read the document summary information. */ + DirectoryEntry dir = poifs.getRoot(); + + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + dsi = new DocumentSummaryInformation(ps); + } catch (FileNotFoundException ex) { fail(); - } catch (NoPropertySetStreamException e) { + } catch (Exception e) { e.printStackTrace(); fail(); - } catch (MarkUnsupportedException e) { + } + try { + DocumentEntry dsiEntry = (DocumentEntry) dir + .getEntry(SummaryInformation.DEFAULT_STREAM_NAME); + DocumentInputStream dis = new DocumentInputStream(dsiEntry); + PropertySet ps = new PropertySet(dis); + dis.close(); + si = new SummaryInformation(ps); + + } catch (FileNotFoundException ex) { + /* + * There is no document summary information yet. We have to create a + * new one. + */ + si = PropertySetFactory.newSummaryInformation(); + assertNotNull(si); + } catch (Exception e) { e.printStackTrace(); fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); + } + } + + /** + * Sets the most important information in DocumentSummaryInformation and Summary Information and rereads it + */ + public void testOne() { + + // DocumentSummaryInformation + dsi.setCompany("xxxCompanyxxx"); + dsi.setManager("xxxManagerxxx"); + dsi.setCategory("xxxCategoryxxx"); + + // SummaryInformation + si.setTitle("xxxTitlexxx"); + si.setAuthor("xxxAuthorxxx"); + si.setComments("xxxCommentsxxx"); + si.setKeywords("xxxKeyWordsxxx"); + si.setSubject("xxxSubjectxxx"); + + // Custom Properties (in DocumentSummaryInformation + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put("Key1", "Value1"); + customProperties.put("Schl\u00fcssel2", "Wert2"); + customProperties.put("Sample Integer", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.TRUE); + Date date = new Date(); + customProperties.put("Sample Date", date); + customProperties.put("Sample Double", new Double(-1.0001)); + customProperties.put("Sample Negative Integer", new Integer(-100000)); + + dsi.setCustomProperties(customProperties); + + // start reading + closeAndReOpen(); + + // testing + assertNotNull(dsi); + assertNotNull(si); + + assertEquals("Category", "xxxCategoryxxx", dsi.getCategory()); + assertEquals("Company", "xxxCompanyxxx", dsi.getCompany()); + assertEquals("Manager", "xxxManagerxxx", dsi.getManager()); + + assertEquals("", "xxxAuthorxxx", si.getAuthor()); + assertEquals("", "xxxTitlexxx", si.getTitle()); + assertEquals("", "xxxCommentsxxx", si.getComments()); + assertEquals("", "xxxKeyWordsxxx", si.getKeywords()); + assertEquals("", "xxxSubjectxxx", si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { fail(); } - try - { - DocumentEntry dsiEntry = (DocumentEntry) - dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); - DocumentInputStream dis = new DocumentInputStream(dsiEntry); - PropertySet ps = new PropertySet(dis); - dis.close(); - si = new SummaryInformation(ps); - - - } - catch (FileNotFoundException ex) - { - /* There is no document summary information yet. We have to create a - * new one. */ - si = PropertySetFactory.newSummaryInformation(); - assertNotNull(si); - } catch (IOException e) { - e.printStackTrace(); - fail(); - } catch (NoPropertySetStreamException e) { - e.printStackTrace(); - fail(); - } catch (MarkUnsupportedException e) { - e.printStackTrace(); - fail(); - } catch (UnexpectedPropertySetTypeException e) { - e.printStackTrace(); - fail(); - } - } - - /** - * Sets the most important information in DocumentSummaryInformation and Summary Information and rereads it - * - */ - public void testOne(){ - - //DocumentSummaryInformation - dsi.setCompany("xxxCompanyxxx"); - dsi.setManager("xxxManagerxxx"); - dsi.setCategory("xxxCategoryxxx"); - - //SummaryInformation - si.setTitle("xxxTitlexxx"); - si.setAuthor("xxxAuthorxxx"); - si.setComments("xxxCommentsxxx"); - si.setKeywords("xxxKeyWordsxxx"); - si.setSubject("xxxSubjectxxx"); - - //Custom Properties (in DocumentSummaryInformation - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put("Key1", "Value1"); - customProperties.put("Schl\u00fcssel2", "Wert2"); - customProperties.put("Sample Integer", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(true)); - Date date=new Date(); - customProperties.put("Sample Date", date); - customProperties.put("Sample Double", new Double(-1.0001)); - customProperties.put("Sample Negative Integer", new Integer(-100000)); - - dsi.setCustomProperties(customProperties); - - //start reading - closeAndReOpen(); - - //testing - assertNotNull(dsi); - assertNotNull(si); - - assertEquals("Category","xxxCategoryxxx",dsi.getCategory()); - assertEquals("Company","xxxCompanyxxx",dsi.getCompany()); - assertEquals("Manager","xxxManagerxxx",dsi.getManager()); - - assertEquals("","xxxAuthorxxx",si.getAuthor()); - assertEquals("","xxxTitlexxx",si.getTitle()); - assertEquals("","xxxCommentsxxx",si.getComments()); - assertEquals("","xxxKeyWordsxxx",si.getKeywords()); - assertEquals("","xxxSubjectxxx",si.getSubject()); - - - /* Read the custom properties. If there are no custom properties yet, - * the application has to create a new CustomProperties object. It will - * serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - String a1=(String) customProperties.get("Key1"); - assertEquals("Key1","Value1",a1); - String a2=(String) customProperties.get("Schl\u00fcssel2"); - assertEquals("Schl\u00fcssel2","Wert2",a2); - Integer a3=(Integer) customProperties.get("Sample Integer"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(true),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); - - Double a6=(Double) customProperties.get("Sample Double"); - assertEquals("Custom Float",new Double(-1.0001),a6); - - Integer a7=(Integer) customProperties.get("Sample Negative Integer"); - assertEquals("Neg", new Integer(-100000),a7); - } - - - /** - * multiplies a string - * @param s Input String - * @return the multiplied String - */ - public String elongate(String s){ - StringBuffer sb=new StringBuffer(); - for (int i=0;i<10000;i++){ - sb.append(s); - sb.append(" "); - } - return sb.toString(); - } - - - - /** - * Test very long input in each of the fields (approx 30-60KB each) - * - */ -public void testTwo(){ - - String company=elongate("company"); - String manager=elongate("manager"); - String category=elongate("category"); - String title=elongate("title"); - String author=elongate("author"); - String comments=elongate("comments"); - String keywords=elongate("keywords"); - String subject=elongate("subject"); - String p1=elongate("p1"); - String p2=elongate("p2"); - String k1=elongate("k1"); - String k2=elongate("k2"); - - dsi.setCompany(company); - dsi.setManager(manager); - dsi.setCategory(category); - - si.setTitle(title); - si.setAuthor(author); - si.setComments(comments); - si.setKeywords(keywords); - si.setSubject(subject); - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put(k1, p1); - customProperties.put(k2, p2); - customProperties.put("Sample Number", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(true)); - Date date=new Date(); - customProperties.put("Sample Date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertEquals("Category",category,dsi.getCategory()); - assertEquals("Company",company,dsi.getCompany()); - assertEquals("Manager",manager,dsi.getManager()); - - assertEquals("",author,si.getAuthor()); - assertEquals("",title,si.getTitle()); - assertEquals("",comments,si.getComments()); - assertEquals("",keywords,si.getKeywords()); - assertEquals("",subject,si.getSubject()); - - - /* Read the custom properties. If there are no custom properties - * yet, the application has to create a new CustomProperties object. - * It will serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - String a1=(String) customProperties.get(k1); - assertEquals("Key1",p1,a1); - String a2=(String) customProperties.get(k2); - assertEquals("Schl\u00fcssel2",p2,a2); - Integer a3=(Integer) customProperties.get("Sample Number"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(true),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); + /* Insert some custom properties into the container. */ + String a1 = (String) customProperties.get("Key1"); + assertEquals("Key1", "Value1", a1); + String a2 = (String) customProperties.get("Schl\u00fcssel2"); + assertEquals("Schl\u00fcssel2", "Wert2", a2); + Integer a3 = (Integer) customProperties.get("Sample Integer"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.TRUE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); + + Double a6 = (Double) customProperties.get("Sample Double"); + assertEquals("Custom Float", new Double(-1.0001), a6); + + Integer a7 = (Integer) customProperties.get("Sample Negative Integer"); + assertEquals("Neg", new Integer(-100000), a7); + } + /** + * multiplies a string + * @param s Input String + * @return the multiplied String + */ + private static String elongate(String s) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < 10000; i++) { + sb.append(s); + sb.append(" "); + } + return sb.toString(); } - -/** - * adds strange characters to the string - * @param s Input String - * @return the multiplied String - */ -public String strangize(String s){ - StringBuffer sb=new StringBuffer(); - String[] umlaute= {"\u00e4","\u00fc","\u00f6","\u00dc","$","\u00d6","\u00dc","\u00c9","\u00d6","@","\u00e7","&"}; - char j=0; - Random rand=new Random(); - for (int i=0;i<5;i++){ - sb.append(s); - sb.append(" "); - j=(char) rand.nextInt(220); - j+=33; - // System.out.println(j); - sb.append(">"); - sb.append(new Character(j)); - sb.append("="); - sb.append(umlaute[rand.nextInt(umlaute.length)]); - sb.append("<"); - } - - return sb.toString(); -} + /** + * Test very long input in each of the fields (approx 30-60KB each) + */ + public void testTwo() { + + String company = elongate("company"); + String manager = elongate("manager"); + String category = elongate("category"); + String title = elongate("title"); + String author = elongate("author"); + String comments = elongate("comments"); + String keywords = elongate("keywords"); + String subject = elongate("subject"); + String p1 = elongate("p1"); + String p2 = elongate("p2"); + String k1 = elongate("k1"); + String k2 = elongate("k2"); + + dsi.setCompany(company); + dsi.setManager(manager); + dsi.setCategory(category); + + si.setTitle(title); + si.setAuthor(author); + si.setComments(comments); + si.setKeywords(keywords); + si.setSubject(subject); + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + /* Insert some custom properties into the container. */ + customProperties.put(k1, p1); + customProperties.put(k2, p2); + customProperties.put("Sample Number", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.TRUE); + Date date = new Date(); + customProperties.put("Sample Date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertEquals("Category", category, dsi.getCategory()); + assertEquals("Company", company, dsi.getCompany()); + assertEquals("Manager", manager, dsi.getManager()); + + assertEquals("", author, si.getAuthor()); + assertEquals("", title, si.getTitle()); + assertEquals("", comments, si.getComments()); + assertEquals("", keywords, si.getKeywords()); + assertEquals("", subject, si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } -/** - * Tests with strange characters in keys and data (Umlaute etc.) - * - */ -public void testThree(){ - - String company=strangize("company"); - String manager=strangize("manager"); - String category=strangize("category"); - String title=strangize("title"); - String author=strangize("author"); - String comments=strangize("comments"); - String keywords=strangize("keywords"); - String subject=strangize("subject"); - String p1=strangize("p1"); - String p2=strangize("p2"); - String k1=strangize("k1"); - String k2=strangize("k2"); - - dsi.setCompany(company); - dsi.setManager(manager); - dsi.setCategory(category); - - si.setTitle(title); - si.setAuthor(author); - si.setComments(comments); - si.setKeywords(keywords); - si.setSubject(subject); - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put(k1, p1); - customProperties.put(k2, p2); - customProperties.put("Sample Number", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(false)); - Date date=new Date(0); - customProperties.put("Sample Date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertEquals("Category",category,dsi.getCategory()); - assertEquals("Company",company,dsi.getCompany()); - assertEquals("Manager",manager,dsi.getManager()); - - assertEquals("",author,si.getAuthor()); - assertEquals("",title,si.getTitle()); - assertEquals("",comments,si.getComments()); - assertEquals("",keywords,si.getKeywords()); - assertEquals("",subject,si.getSubject()); - - - /* Read the custom properties. If there are no custom properties yet, - * the application has to create a new CustomProperties object. It will - * serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - // System.out.println(k1); - String a1=(String) customProperties.get(k1); - assertEquals("Key1",p1,a1); - String a2=(String) customProperties.get(k2); - assertEquals("Schl\u00fcssel2",p2,a2); - Integer a3=(Integer) customProperties.get("Sample Number"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(false),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); - + /* Insert some custom properties into the container. */ + String a1 = (String) customProperties.get(k1); + assertEquals("Key1", p1, a1); + String a2 = (String) customProperties.get(k2); + assertEquals("Schl\u00fcssel2", p2, a2); + Integer a3 = (Integer) customProperties.get("Sample Number"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.TRUE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); } - - /** - * Iterative testing: writing, reading etc. - * - */ - public void testFour(){ - for (int i=1;i<100;i++){ - setUp(); - testThree(); - tearDown(); - } - } - - - /** - * adds strange characters to the string with the adding of unicode characters - * @param s Input String - * @return the multiplied String - */ - public String strangizeU(String s){ - - StringBuffer sb=new StringBuffer(); - String[] umlaute= {"\u00e4","\u00fc","\u00f6","\u00dc","$","\u00d6","\u00dc","\u00c9","\u00d6","@","\u00e7","&"}; - char j=0; - Random rand=new Random(); - for (int i=0;i<5;i++){ - sb.append(s); - sb.append(" "); - j=(char) rand.nextInt(220); - j+=33; - // System.out.println(j); - sb.append(">"); - sb.append(new Character(j)); - sb.append("="); - sb.append(umlaute[rand.nextInt(umlaute.length)]); - sb.append("<"); - } - sb.append("\u00e4\u00f6\u00fc\uD840\uDC00"); - return sb.toString(); - } - /** - * Unicode test - * - */ - public void testUnicode(){ - String company=strangizeU("company"); - String manager=strangizeU("manager"); - String category=strangizeU("category"); - String title=strangizeU("title"); - String author=strangizeU("author"); - String comments=strangizeU("comments"); - String keywords=strangizeU("keywords"); - String subject=strangizeU("subject"); - String p1=strangizeU("p1"); - String p2=strangizeU("p2"); - String k1=strangizeU("k1"); - String k2=strangizeU("k2"); - - dsi.setCompany(company); - dsi.setManager(manager); - dsi.setCategory(category); - - si.setTitle(title); - si.setAuthor(author); - si.setComments(comments); - si.setKeywords(keywords); - si.setSubject(subject); - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put(k1, p1); - customProperties.put(k2, p2); - customProperties.put("Sample Number", new Integer(12345)); - customProperties.put("Sample Boolean", new Boolean(true)); - Date date=new Date(); - customProperties.put("Sample Date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertEquals("Category",category,dsi.getCategory()); - assertEquals("Company",company,dsi.getCompany()); - assertEquals("Manager",manager,dsi.getManager()); - - assertEquals("",author,si.getAuthor()); - assertEquals("",title,si.getTitle()); - assertEquals("",comments,si.getComments()); - assertEquals("",keywords,si.getKeywords()); - assertEquals("",subject,si.getSubject()); - - - /* Read the custom properties. If there are no custom properties yet, - * the application has to create a new CustomProperties object. It will - * serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - // System.out.println(k1); - String a1=(String) customProperties.get(k1); - assertEquals("Key1",p1,a1); - String a2=(String) customProperties.get(k2); - assertEquals("Schl\u00fcssel2",p2,a2); - Integer a3=(Integer) customProperties.get("Sample Number"); - assertEquals("Sample Number",new Integer(12345),a3); - Boolean a4=(Boolean) customProperties.get("Sample Boolean"); - assertEquals("Sample Boolean",new Boolean(true),a4); - Date a5=(Date) customProperties.get("Sample Date"); - assertEquals("Custom Date:",date,a5); - - - - } - - - /** - * Iterative testing of the unicode test - * + + /** + * adds strange characters to the string + * @param s Input String + * @return the multiplied String + */ + private static String strangize(String s) { + StringBuffer sb = new StringBuffer(); + String[] umlaute = { "\u00e4", "\u00fc", "\u00f6", "\u00dc", "$", "\u00d6", "\u00dc", + "\u00c9", "\u00d6", "@", "\u00e7", "&" }; + char j = 0; + Random rand = new Random(0); // TODO - no Random - tests should be completely deterministic + for (int i = 0; i < 5; i++) { + sb.append(s); + sb.append(" "); + j = (char) rand.nextInt(220); + j += 33; + // System.out.println(j); + sb.append(">"); + sb.append(new Character(j)); + sb.append("="); + sb.append(umlaute[rand.nextInt(umlaute.length)]); + sb.append("<"); + } + + return sb.toString(); + } + + + /** + * Tests with strange characters in keys and data (Umlaute etc.) + */ + public void testThree() { + + String company = strangize("company"); + String manager = strangize("manager"); + String category = strangize("category"); + String title = strangize("title"); + String author = strangize("author"); + String comments = strangize("comments"); + String keywords = strangize("keywords"); + String subject = strangize("subject"); + String p1 = strangize("p1"); + String p2 = strangize("p2"); + String k1 = strangize("k1"); + String k2 = strangize("k2"); + + dsi.setCompany(company); + dsi.setManager(manager); + dsi.setCategory(category); + + si.setTitle(title); + si.setAuthor(author); + si.setComments(comments); + si.setKeywords(keywords); + si.setSubject(subject); + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put(k1, p1); + customProperties.put(k2, p2); + customProperties.put("Sample Number", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.FALSE); + Date date = new Date(0); + customProperties.put("Sample Date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertEquals("Category", category, dsi.getCategory()); + assertEquals("Company", company, dsi.getCompany()); + assertEquals("Manager", manager, dsi.getManager()); + + assertEquals("", author, si.getAuthor()); + assertEquals("", title, si.getTitle()); + assertEquals("", comments, si.getComments()); + assertEquals("", keywords, si.getKeywords()); + assertEquals("", subject, si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } + + /* Insert some custom properties into the container. */ + // System.out.println(k1); + String a1 = (String) customProperties.get(k1); + assertEquals("Key1", p1, a1); + String a2 = (String) customProperties.get(k2); + assertEquals("Schl\u00fcssel2", p2, a2); + Integer a3 = (Integer) customProperties.get("Sample Number"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.FALSE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); + + } + + /** + * Iterative testing: writing, reading etc. + */ + public void testFour() { + for (int i = 1; i < 100; i++) { + setUp(); + testThree(); + } + } + + + + /** + * adds strange characters to the string with the adding of unicode characters + * @param s Input String + * @return the multiplied String */ - public void testSix(){ - for (int i=1;i<100;i++){ - setUp(); - testUnicode(); - tearDown(); - } - } - + private static String strangizeU(String s) { + + StringBuffer sb = new StringBuffer(); + String[] umlaute = { "\u00e4", "\u00fc", "\u00f6", "\u00dc", "$", "\u00d6", "\u00dc", + "\u00c9", "\u00d6", "@", "\u00e7", "&" }; + char j = 0; + Random rand = new Random(0); // TODO - no Random - tests should be completely deterministic + for (int i = 0; i < 5; i++) { + sb.append(s); + sb.append(" "); + j = (char) rand.nextInt(220); + j += 33; + // System.out.println(j); + sb.append(">"); + sb.append(new Character(j)); + sb.append("="); + sb.append(umlaute[rand.nextInt(umlaute.length)]); + sb.append("<"); + } + sb.append("\u00e4\u00f6\u00fc\uD840\uDC00"); + return sb.toString(); + } + + /** + * Unicode test + */ + public void testUnicode() { + String company = strangizeU("company"); + String manager = strangizeU("manager"); + String category = strangizeU("category"); + String title = strangizeU("title"); + String author = strangizeU("author"); + String comments = strangizeU("comments"); + String keywords = strangizeU("keywords"); + String subject = strangizeU("subject"); + String p1 = strangizeU("p1"); + String p2 = strangizeU("p2"); + String k1 = strangizeU("k1"); + String k2 = strangizeU("k2"); + + dsi.setCompany(company); + dsi.setManager(manager); + dsi.setCategory(category); + + si.setTitle(title); + si.setAuthor(author); + si.setComments(comments); + si.setKeywords(keywords); + si.setSubject(subject); + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put(k1, p1); + customProperties.put(k2, p2); + customProperties.put("Sample Number", new Integer(12345)); + customProperties.put("Sample Boolean", Boolean.TRUE); + Date date = new Date(); + customProperties.put("Sample Date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertEquals("Category", category, dsi.getCategory()); + assertEquals("Company", company, dsi.getCompany()); + assertEquals("Manager", manager, dsi.getManager()); + + assertEquals("", author, si.getAuthor()); + assertEquals("", title, si.getTitle()); + assertEquals("", comments, si.getComments()); + assertEquals("", keywords, si.getKeywords()); + assertEquals("", subject, si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } + + /* Insert some custom properties into the container. */ + // System.out.println(k1); + String a1 = (String) customProperties.get(k1); + assertEquals("Key1", p1, a1); + String a2 = (String) customProperties.get(k2); + assertEquals("Schl\u00fcssel2", p2, a2); + Integer a3 = (Integer) customProperties.get("Sample Number"); + assertEquals("Sample Number", new Integer(12345), a3); + Boolean a4 = (Boolean) customProperties.get("Sample Boolean"); + assertEquals("Sample Boolean", Boolean.TRUE, a4); + Date a5 = (Date) customProperties.get("Sample Date"); + assertEquals("Custom Date:", date, a5); + } + /** - * Tests conversion in custom fields and errors - * - */ - public void testConvAndExistance(){ - - - CustomProperties customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - customProperties = new CustomProperties(); - } - - /* Insert some custom properties into the container. */ - customProperties.put("int", new Integer(12345)); - customProperties.put("negint", new Integer(-12345)); - customProperties.put("long", new Long(12345)); - customProperties.put("neglong", new Long(-12345)); - customProperties.put("boolean", new Boolean(true)); - customProperties.put("string", "a String"); - //customProperties.put("float", new Float(12345.0)); is not valid - //customProperties.put("negfloat", new Float(-12345.1)); is not valid - customProperties.put("double", new Double(12345.2)); - customProperties.put("negdouble", new Double(-12345.3)); - //customProperties.put("char", new Character('a')); is not valid - - Date date=new Date(); - customProperties.put("date", date); - - dsi.setCustomProperties(customProperties); - - - closeAndReOpen(); - - assertNotNull(dsi); - assertNotNull(si); - /* Change the category to "POI example". Any former category value will - * be lost. If there has been no category yet, it will be created. */ - assertNull(dsi.getCategory()); - assertNull(dsi.getCompany()); - assertNull(dsi.getManager()); - - assertNull(si.getAuthor()); - assertNull(si.getTitle()); - assertNull(si.getComments()); - assertNull(si.getKeywords()); - assertNull(si.getSubject()); - - - /* Read the custom properties. If there are no custom properties - * yet, the application has to create a new CustomProperties object. - * It will serve as a container for custom properties. */ - customProperties = dsi.getCustomProperties(); - if (customProperties == null){ - fail(); - } - - /* Insert some custom properties into the container. */ - - Integer a3=(Integer) customProperties.get("int"); - assertEquals("int",new Integer(12345),a3); - - a3=(Integer) customProperties.get("negint"); - assertEquals("negint",new Integer(-12345),a3); - - Long al=(Long) customProperties.get("neglong"); - assertEquals("neglong",new Long(-12345),al); - - al=(Long) customProperties.get("long"); - assertEquals("long",new Long(12345),al); - - Boolean a4=(Boolean) customProperties.get("boolean"); - assertEquals("boolean",new Boolean(true),a4); - - Date a5=(Date) customProperties.get("date"); - assertEquals("Custom Date:",date,a5); - - Double d=(Double) customProperties.get("double"); - assertEquals("int",new Double(12345.2),d); - - d=(Double) customProperties.get("negdouble"); - assertEquals("string",new Double(-12345.3),d); - - String s=(String) customProperties.get("string"); - assertEquals("sring","a String",s); - - Object o=null; - - o=customProperties.get("string"); - if (!(o instanceof String)){ - fail(); - } - o=customProperties.get("boolean"); - if (!(o instanceof Boolean)){ - fail(); - } - - o=customProperties.get("int"); - if (!(o instanceof Integer)){ - fail(); - } - o=customProperties.get("negint"); - if (!(o instanceof Integer)){ - fail(); - } - - o=customProperties.get("long"); - if (!(o instanceof Long)){ - fail(); - } - o=customProperties.get("neglong"); - if (!(o instanceof Long)){ - fail(); - } - - o=customProperties.get("double"); - if (!(o instanceof Double)){ - fail(); - } - o=customProperties.get("negdouble"); - if (!(o instanceof Double)){ - fail(); - } - - o=customProperties.get("date"); - if (!(o instanceof Date)){ - fail(); - } - } - - - -}
\ No newline at end of file + * Iterative testing of the unicode test + * + */ + public void testSix() { + for (int i = 1; i < 100; i++) { + setUp(); + testUnicode(); + } + } + + + /** + * Tests conversion in custom fields and errors + */ + public void testConvAndExistence() { + + CustomProperties customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + customProperties = new CustomProperties(); + } + + /* Insert some custom properties into the container. */ + customProperties.put("int", new Integer(12345)); + customProperties.put("negint", new Integer(-12345)); + customProperties.put("long", new Long(12345)); + customProperties.put("neglong", new Long(-12345)); + customProperties.put("boolean", Boolean.TRUE); + customProperties.put("string", "a String"); + // customProperties.put("float", new Float(12345.0)); is not valid + // customProperties.put("negfloat", new Float(-12345.1)); is not valid + customProperties.put("double", new Double(12345.2)); + customProperties.put("negdouble", new Double(-12345.3)); + // customProperties.put("char", new Character('a')); is not valid + + Date date = new Date(); + customProperties.put("date", date); + + dsi.setCustomProperties(customProperties); + + closeAndReOpen(); + + assertNotNull(dsi); + assertNotNull(si); + /* + * Change the category to "POI example". Any former category value will + * be lost. If there has been no category yet, it will be created. + */ + assertNull(dsi.getCategory()); + assertNull(dsi.getCompany()); + assertNull(dsi.getManager()); + + assertNull(si.getAuthor()); + assertNull(si.getTitle()); + assertNull(si.getComments()); + assertNull(si.getKeywords()); + assertNull(si.getSubject()); + + /* + * Read the custom properties. If there are no custom properties yet, + * the application has to create a new CustomProperties object. It will + * serve as a container for custom properties. + */ + customProperties = dsi.getCustomProperties(); + if (customProperties == null) { + fail(); + } + + /* Insert some custom properties into the container. */ + + Integer a3 = (Integer) customProperties.get("int"); + assertEquals("int", new Integer(12345), a3); + + a3 = (Integer) customProperties.get("negint"); + assertEquals("negint", new Integer(-12345), a3); + + Long al = (Long) customProperties.get("neglong"); + assertEquals("neglong", new Long(-12345), al); + + al = (Long) customProperties.get("long"); + assertEquals("long", new Long(12345), al); + + Boolean a4 = (Boolean) customProperties.get("boolean"); + assertEquals("boolean", Boolean.TRUE, a4); + + Date a5 = (Date) customProperties.get("date"); + assertEquals("Custom Date:", date, a5); + + Double d = (Double) customProperties.get("double"); + assertEquals("int", new Double(12345.2), d); + + d = (Double) customProperties.get("negdouble"); + assertEquals("string", new Double(-12345.3), d); + + String s = (String) customProperties.get("string"); + assertEquals("sring", "a String", s); + + + assertTrue(customProperties.get("string") instanceof String); + assertTrue(customProperties.get("boolean") instanceof Boolean); + assertTrue(customProperties.get("int") instanceof Integer); + assertTrue(customProperties.get("negint") instanceof Integer); + assertTrue(customProperties.get("long") instanceof Long); + assertTrue(customProperties.get("neglong") instanceof Long); + assertTrue(customProperties.get("double") instanceof Double); + assertTrue(customProperties.get("negdouble") instanceof Double); + assertTrue(customProperties.get("date") instanceof Date); + } +} diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java b/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java index 581ff14381..cdd74f79fc 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestUnicode.java @@ -53,7 +53,7 @@ public class TestUnicode extends TestCase { /** * <p>Read a the test file from the "data" directory.</p> - * + * * @exception FileNotFoundException if the file to be read does not exist. * @exception IOException if any other I/O exception occurs */ @@ -68,7 +68,7 @@ public class TestUnicode extends TestCase { * <p>Tests the {@link PropertySet} methods. The test file has two * property set: 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 exception occurs */ @@ -82,9 +82,9 @@ public class TestUnicode extends TestCase { Assert.assertEquals(ps.getSectionCount(), 2); Section s = (Section) ps.getSections().get(1); Assert.assertEquals(s.getProperty(1), - new Integer(Constants.CP_UTF16)); + Integer.valueOf(Constants.CP_UTF16)); Assert.assertEquals(s.getProperty(2), - new Integer(-96070278)); + Integer.valueOf(-96070278)); Assert.assertEquals(s.getProperty(3), "MCon_Info zu Office bei Schreiner"); Assert.assertEquals(s.getProperty(4), diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java b/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java index f824ffb7bc..eabda72d5b 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java @@ -107,7 +107,7 @@ public class TestWrite extends TestCase /** * <p>Writes an empty property set to a POIFS and reads it back * in.</p> - * + * * @exception IOException if an I/O exception occurs */ public void testNoFormatID() throws IOException @@ -150,7 +150,7 @@ public class TestWrite extends TestCase /** * <p>Writes an empty property set to a POIFS and reads it back * in.</p> - * + * * @exception IOException if an I/O exception occurs * @exception UnsupportedVariantTypeException if HPSF does not yet support * a variant type to be written @@ -190,7 +190,7 @@ public class TestWrite extends TestCase /** * <p>Writes a simple property set with a SummaryInformation section to a * POIFS and reads it back in.</p> - * + * * @exception IOException if an I/O exception occurs * @exception UnsupportedVariantTypeException if HPSF does not yet support * a variant type to be written @@ -199,30 +199,30 @@ public class TestWrite extends TestCase throws IOException, UnsupportedVariantTypeException { final String AUTHOR = "Rainer Klute"; - final String TITLE = "Test Document"; + final String TITLE = "Test Document"; final File dataDir = _samples.getFile(""); final File filename = new File(dataDir, POI_FS); filename.deleteOnExit(); final OutputStream out = new FileOutputStream(filename); final POIFSFileSystem poiFs = new POIFSFileSystem(); - + final MutablePropertySet ps = new MutablePropertySet(); final MutableSection si = new MutableSection(); si.setFormatID(SectionIDMap.SUMMARY_INFORMATION_ID); ps.getSections().set(0, si); - + final MutableProperty p = new MutableProperty(); p.setID(PropertyIDMap.PID_AUTHOR); p.setType(Variant.VT_LPWSTR); p.setValue(AUTHOR); si.setProperty(p); si.setProperty(PropertyIDMap.PID_TITLE, Variant.VT_LPSTR, TITLE); - + poiFs.createDocument(ps.toInputStream(), SummaryInformation.DEFAULT_STREAM_NAME); poiFs.writeFilesystem(out); out.close(); - + /* Read the POIFS: */ final PropertySet[] psa = new PropertySet[1]; final POIFSReader r = new POIFSReader(); @@ -240,7 +240,7 @@ public class TestWrite extends TestCase fail(org.apache.poi.hpsf.Util.toString(ex)); } } - + }, SummaryInformation.DEFAULT_STREAM_NAME); r.read(new FileInputStream(filename)); @@ -259,7 +259,7 @@ public class TestWrite extends TestCase /** * <p>Writes a simple property set with two sections to a POIFS and reads it * back in.</p> - * + * * @exception IOException if an I/O exception occurs * @exception WritingNotSupportedException if HPSF does not yet support * a variant type to be written @@ -365,7 +365,7 @@ public class TestWrite extends TestCase { Throwable t = null; final int codepage = CODEPAGE_DEFAULT; - if (!hasProperDefaultCharset()) + if (!hasProperDefaultCharset()) { System.err.println(IMPROPER_DEFAULT_CHARSET_MESSAGE + " This testcase is skipped."); @@ -375,8 +375,8 @@ public class TestWrite extends TestCase try { check(Variant.VT_EMPTY, null, codepage); - check(Variant.VT_BOOL, new Boolean(true), codepage); - check(Variant.VT_BOOL, new Boolean(false), codepage); + check(Variant.VT_BOOL, Boolean.TRUE, codepage); + check(Variant.VT_BOOL, Boolean.FALSE, codepage); check(Variant.VT_CF, new byte[]{0}, codepage); check(Variant.VT_CF, new byte[]{0, 1}, codepage); check(Variant.VT_CF, new byte[]{0, 1, 2}, codepage); @@ -385,11 +385,11 @@ public class TestWrite extends TestCase check(Variant.VT_CF, new byte[]{0, 1, 2, 3, 4, 5}, codepage); check(Variant.VT_CF, new byte[]{0, 1, 2, 3, 4, 5, 6}, codepage); check(Variant.VT_CF, new byte[]{0, 1, 2, 3, 4, 5, 6, 7}, codepage); - check(Variant.VT_I4, new Integer(27), codepage); - check(Variant.VT_I8, new Long(28), codepage); + check(Variant.VT_I4, Integer.valueOf(27), codepage); + check(Variant.VT_I8, Long.valueOf(28), codepage); check(Variant.VT_R8, new Double(29.0), codepage); - check(Variant.VT_I4, new Integer(-27), codepage); - check(Variant.VT_I8, new Long(-28), codepage); + check(Variant.VT_I4, Integer.valueOf(-27), codepage); + check(Variant.VT_I8, Long.valueOf(-28), codepage); check(Variant.VT_R8, new Double(-29.0), codepage); check(Variant.VT_FILETIME, new Date(), codepage); check(Variant.VT_I4, new Integer(Integer.MAX_VALUE), codepage); @@ -460,7 +460,7 @@ public class TestWrite extends TestCase for (int i = 0; i < validCodepages.length; i++) { final int cp = validCodepages[i]; - if (cp == -1 && !hasProperDefaultCharset()) + if (cp == -1 && !hasProperDefaultCharset()) { System.err.println(IMPROPER_DEFAULT_CHARSET_MESSAGE + " This testcase is skipped for the default codepage."); @@ -590,10 +590,10 @@ public class TestWrite extends TestCase * @param codepage The codepage to use for writing and reading. * @throws UnsupportedVariantTypeException if the variant is not supported. * @throws IOException if an I/O exception occurs. - * @throws ReadingNotSupportedException - * @throws UnsupportedEncodingException + * @throws ReadingNotSupportedException + * @throws UnsupportedEncodingException */ - private void check(final long variantType, final Object value, + private void check(final long variantType, final Object value, final int codepage) throws UnsupportedVariantTypeException, IOException, ReadingNotSupportedException, UnsupportedEncodingException @@ -651,17 +651,17 @@ public class TestWrite extends TestCase * <p>This test method does a write and read back test with all POI * filesystems in the "data" directory by performing the following * actions for each file:</p> - * + * * <ul> - * + * * <li><p>Read its property set streams.</p></li> - * + * * <li><p>Create a new POI filesystem containing the origin file's * property set streams.</p></li> - * + * * <li><p>Read the property set streams from the POI filesystem just * created.</p></li> - * + * * <li><p>Compare each property set stream with the corresponding one from * the origin file and check whether they are equal.</p></li> * @@ -731,7 +731,7 @@ public class TestWrite extends TestCase final InputStream in2 = new ByteArrayInputStream(bytes2); final PropertySet ps1 = PropertySetFactory.create(in1); final PropertySet ps2 = PropertySetFactory.create(in2); - + /* Compare the property set stream with the corresponding one * from the origin file and check whether they are equal. */ assertEquals("Equality for file " + f.getName(), ps1, ps2); @@ -761,14 +761,14 @@ public class TestWrite extends TestCase final MutablePropertySet ps1 = new MutablePropertySet(); final MutableSection s = (MutableSection) ps1.getSections().get(0); final Map m = new HashMap(3, 1.0f); - m.put(new Long(1), "String 1"); - m.put(new Long(2), "String 2"); - m.put(new Long(3), "String 3"); + m.put(Long.valueOf(1), "String 1"); + m.put(Long.valueOf(2), "String 2"); + m.put(Long.valueOf(3), "String 3"); s.setDictionary(m); s.setFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID[0]); int codepage = Constants.CP_UNICODE; s.setProperty(PropertyIDMap.PID_CODEPAGE, Variant.VT_I2, - new Integer(codepage)); + Integer.valueOf(codepage)); poiFs.createDocument(ps1.toInputStream(), "Test"); poiFs.writeFilesystem(out); out.close(); @@ -813,14 +813,14 @@ public class TestWrite extends TestCase final MutablePropertySet ps1 = new MutablePropertySet(); final MutableSection s = (MutableSection) ps1.getSections().get(0); final Map m = new HashMap(3, 1.0f); - m.put(new Long(1), "String 1"); - m.put(new Long(2), "String 2"); - m.put(new Long(3), "String 3"); + m.put(Long.valueOf(1), "String 1"); + m.put(Long.valueOf(2), "String 2"); + m.put(Long.valueOf(3), "String 3"); s.setDictionary(m); s.setFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID[0]); int codepage = 12345; s.setProperty(PropertyIDMap.PID_CODEPAGE, Variant.VT_I2, - new Integer(codepage)); + Integer.valueOf(codepage)); poiFs.createDocument(ps1.toInputStream(), "Test"); poiFs.writeFilesystem(out); out.close(); diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java b/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java index ca3b0864ba..ad6e1237cf 100644 --- a/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java +++ b/src/testcases/org/apache/poi/hpsf/basic/TestWriteWellKnown.java @@ -58,7 +58,7 @@ import org.apache.poi.POIDataSamples; /** * <p>Tests HPSF's high-level writing functionality for the well-known property * set "SummaryInformation" and "DocumentSummaryInformation".</p> - * + * * @author Rainer Klute * <a href="mailto:klute@rainer-klute.de">klute@rainer-klute.de</a> */ @@ -83,11 +83,6 @@ public class TestWriteWellKnown extends TestCase { * pointed to by the "POI.testdata.path" system property, trying to extract * the document summary information stream in the root directory and calling * its get... methods.</p> - * @throws IOException - * @throws FileNotFoundException - * @throws MarkUnsupportedException - * @throws NoPropertySetStreamException - * @throws UnexpectedPropertySetTypeException */ public void testReadDocumentSummaryInformation() throws FileNotFoundException, IOException, @@ -131,7 +126,7 @@ public class TestWriteWellKnown extends TestCase { final DocumentInputStream dis = new DocumentInputStream(dsiEntry); final PropertySet ps = new PropertySet(dis); final DocumentSummaryInformation dsi = new DocumentSummaryInformation(ps); - + /* Execute the get... methods. */ dsi.getByteCount(); dsi.getByteOrder(); @@ -159,43 +154,43 @@ public class TestWriteWellKnown extends TestCase { * <p>This test method test the writing of properties in the well-known * property set streams "SummaryInformation" and * "DocumentSummaryInformation" by performing the following steps:</p> - * + * * <ol> - * + * * <li><p>Read a test document <em>doc1</em> into a POI filesystem.</p></li> - * + * * <li><p>Read the summary information stream and the document summary * information stream from the POI filesystem.</p></li> - * + * * <li><p>Write all properties supported by HPSF to the summary * information (e.g. author, edit date, application name) and to the * document summary information (e.g. company, manager).</p></li> - * + * * <li><p>Write the summary information stream and the document summary * information stream to the POI filesystem.</p></li> - * + * * <li><p>Write the POI filesystem to a (temporary) file <em>doc2</em> * and close the latter.</p></li> - * + * * <li><p>Open <em>doc2</em> for reading and check summary information * and document summary information. All properties written before must be * found in the property streams of <em>doc2</em> and have the correct * values.</p></li> - * + * * <li><p>Remove all properties supported by HPSF from the summary * information (e.g. author, edit date, application name) and from the * document summary information (e.g. company, manager).</p></li> - * + * * <li><p>Write the summary information stream and the document summary * information stream to the POI filesystem.</p></li> - * + * * <li><p>Write the POI filesystem to a (temporary) file <em>doc3</em> * and close the latter.</p></li> - * + * * <li><p>Open <em>doc3</em> for reading and check summary information * and document summary information. All properties removed before must not * be found in the property streams of <em>doc3</em>.</p></li> </ol> - * + * * @throws IOException if some I/O error occurred. * @throws MarkUnsupportedException * @throws NoPropertySetStreamException @@ -209,17 +204,17 @@ public class TestWriteWellKnown extends TestCase { POIDataSamples _samples = POIDataSamples.getHPSFInstance(); final File dataDir = _samples.getFile(""); final File doc1 = new File(dataDir, POI_FS); - + /* Read a test document <em>doc1</em> into a POI filesystem. */ POIFSFileSystem poifs = new POIFSFileSystem(new FileInputStream(doc1)); DirectoryEntry dir = poifs.getRoot(); DocumentEntry siEntry = (DocumentEntry) dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); DocumentEntry dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - + /* * Read the summary information stream and the document summary * information stream from the POI filesystem. - * + * * Please note that the result consists of SummaryInformation and * DocumentSummaryInformation instances which are in memory only. To * make them permanent they have to be written to a POI filesystem @@ -232,7 +227,7 @@ public class TestWriteWellKnown extends TestCase { dis = new DocumentInputStream(dsiEntry); ps = new PropertySet(dis); DocumentSummaryInformation dsi = new DocumentSummaryInformation(ps); - + /* * Write all properties supported by HPSF to the summary information * (e.g. author, edit date, application name) and to the document @@ -245,7 +240,7 @@ public class TestWriteWellKnown extends TestCase { final long time2 = cal.getTimeInMillis(); cal.set(2002, 8, 8, 8, 8, 8); final long time3 = cal.getTimeInMillis(); - + int nr = 4711; final String P_APPLICATION_NAME = "ApplicationName"; final String P_AUTHOR = "Author"; @@ -265,7 +260,7 @@ public class TestWriteWellKnown extends TestCase { // FIXME (byte array properties not yet implemented): final byte[] P_THUMBNAIL = new byte[123]; final String P_TITLE = "Title"; final int P_WORD_COUNT = ++nr; - + final int P_BYTE_COUNT = ++nr; final String P_CATEGORY = "Category"; final String P_COMPANY = "Company"; @@ -296,7 +291,7 @@ public class TestWriteWellKnown extends TestCase { final Long MIN_LONG = new Long(Long.MIN_VALUE); final Double MAX_DOUBLE = new Double(Double.MAX_VALUE); final Double MIN_DOUBLE = new Double(Double.MIN_VALUE); - + si.setApplicationName(P_APPLICATION_NAME); si.setAuthor(P_AUTHOR); si.setCharCount(P_CHAR_COUNT); @@ -315,7 +310,7 @@ public class TestWriteWellKnown extends TestCase { // FIXME (byte array properties not yet implemented): si.setThumbnail(P_THUMBNAIL); si.setTitle(P_TITLE); si.setWordCount(P_WORD_COUNT); - + dsi.setByteCount(P_BYTE_COUNT); dsi.setCategory(P_CATEGORY); dsi.setCompany(P_COMPANY); @@ -345,7 +340,7 @@ public class TestWriteWellKnown extends TestCase { customProperties.put("negative_Integer", NEGATIVE_INTEGER); customProperties.put("negative_Long", NEGATIVE_LONG); customProperties.put("negative_Double", NEGATIVE_DOUBLE); - customProperties.put("Boolean", new Boolean(true)); + customProperties.put("Boolean", Boolean.TRUE); customProperties.put("Date", now); customProperties.put("max_Integer", MAX_INTEGER); customProperties.put("min_Integer", MIN_INTEGER); @@ -378,14 +373,14 @@ public class TestWriteWellKnown extends TestCase { dir = poifs.getRoot(); siEntry = (DocumentEntry) dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - + dis = new DocumentInputStream(siEntry); ps = new PropertySet(dis); si = new SummaryInformation(ps); dis = new DocumentInputStream(dsiEntry); ps = new PropertySet(dis); dsi = new DocumentSummaryInformation(ps); - + assertEquals(P_APPLICATION_NAME, si.getApplicationName()); assertEquals(P_AUTHOR, si.getAuthor()); assertEquals(P_CHAR_COUNT, si.getCharCount()); @@ -404,7 +399,7 @@ public class TestWriteWellKnown extends TestCase { // FIXME (byte array properties not yet implemented): assertEquals(P_THUMBNAIL, si.getThumbnail()); assertEquals(P_TITLE, si.getTitle()); assertEquals(P_WORD_COUNT, si.getWordCount()); - + assertEquals(P_BYTE_COUNT, dsi.getByteCount()); assertEquals(P_CATEGORY, dsi.getCategory()); assertEquals(P_COMPANY, dsi.getCompany()); @@ -434,7 +429,7 @@ public class TestWriteWellKnown extends TestCase { assertEquals(NEGATIVE_INTEGER, cps.get("negative_Integer")); assertEquals(NEGATIVE_LONG, cps.get("negative_Long")); assertEquals(NEGATIVE_DOUBLE, cps.get("negative_Double")); - assertEquals(new Boolean(true), cps.get("Boolean")); + assertEquals(Boolean.TRUE, cps.get("Boolean")); assertEquals(now, cps.get("Date")); assertEquals(MAX_INTEGER, cps.get("max_Integer")); assertEquals(MIN_INTEGER, cps.get("min_Integer")); @@ -464,7 +459,7 @@ public class TestWriteWellKnown extends TestCase { si.removeThumbnail(); si.removeTitle(); si.removeWordCount(); - + dsi.removeByteCount(); dsi.removeCategory(); dsi.removeCompany(); @@ -481,14 +476,14 @@ public class TestWriteWellKnown extends TestCase { dsi.removePresentationFormat(); dsi.removeScale(); dsi.removeSlideCount(); - - /* + + /* * <li><p>Write the summary information stream and the document summary * information stream to the POI filesystem. */ si.write(dir, siEntry.getName()); dsi.write(dir, dsiEntry.getName()); - - /* + + /* * <li><p>Write the POI filesystem to a (temporary) file <em>doc3</em> * and close the latter. */ final File doc3 = File.createTempFile("POI_HPSF_Test.", ".tmp"); @@ -496,8 +491,8 @@ public class TestWriteWellKnown extends TestCase { out = new FileOutputStream(doc3); poifs.writeFilesystem(out); out.close(); - - /* + + /* * Open <em>doc3</em> for reading and check summary information * and document summary information. All properties removed before must not * be found in the property streams of <em>doc3</em>. @@ -506,14 +501,14 @@ public class TestWriteWellKnown extends TestCase { dir = poifs.getRoot(); siEntry = (DocumentEntry) dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME); dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME); - + dis = new DocumentInputStream(siEntry); ps = new PropertySet(dis); si = new SummaryInformation(ps); dis = new DocumentInputStream(dsiEntry); ps = new PropertySet(dis); dsi = new DocumentSummaryInformation(ps); - + assertEquals(null, si.getApplicationName()); assertEquals(null, si.getAuthor()); assertEquals(0, si.getCharCount()); @@ -537,7 +532,7 @@ public class TestWriteWellKnown extends TestCase { assertEquals(null, si.getTitle()); assertEquals(0, si.getWordCount()); assertTrue(si.wasNull()); - + assertEquals(0, dsi.getByteCount()); assertTrue(dsi.wasNull()); assertEquals(null, dsi.getCategory()); @@ -611,7 +606,7 @@ public class TestWriteWellKnown extends TestCase { else dsi = PropertySetFactory.newDocumentSummaryInformation(); final CustomProperties cps = dsi.getCustomProperties(); - + if (cps == null) /* The document does not have custom properties. */ return; @@ -663,14 +658,14 @@ public class TestWriteWellKnown extends TestCase { assertEquals(1, cps.size()); Object v1 = cps.get(KEY); assertEquals(VALUE_1, v1); - + /* After adding a custom property with the same name the size must still * be one. */ cps.put(KEY, VALUE_2); assertEquals(1, cps.size()); Object v2 = cps.get(KEY); assertEquals(VALUE_2, v2); - + /* Removing the custom property must return the remove property and * reduce the size to 0. */ cp = (CustomProperty) cps.remove(KEY); @@ -715,7 +710,7 @@ public class TestWriteWellKnown extends TestCase { p.setType(Variant.VT_LPWSTR); p.setValue(VALUE_1); s.setProperty(p); - dictionary.put(new Long(ID_1), NAME_1); + dictionary.put(Long.valueOf(ID_1), NAME_1); s.setDictionary(dictionary); cps = dsi.getCustomProperties(); assertEquals(1, cps.size()); @@ -723,7 +718,7 @@ public class TestWriteWellKnown extends TestCase { /* Add another custom property. */ s.setProperty(ID_2, Variant.VT_LPWSTR, VALUE_1); - dictionary.put(new Long(ID_2), NAME_1); + dictionary.put(Long.valueOf(ID_2), NAME_1); s.setDictionary(dictionary); cps = dsi.getCustomProperties(); assertEquals(1, cps.size()); |