diff options
author | Avik Sengupta <avik@apache.org> | 2003-10-31 16:39:05 +0000 |
---|---|---|
committer | Avik Sengupta <avik@apache.org> | 2003-10-31 16:39:05 +0000 |
commit | a09e297f9cdc23ced9d188e991a5f127751794d5 (patch) | |
tree | c70c4b04c7c8ee49027d993125601b1e9b5cfbe8 /src/testcases | |
parent | 7b456c47187f6cbbb07f9eaeaf0a5d3717ec5db6 (diff) | |
download | poi-a09e297f9cdc23ced9d188e991a5f127751794d5.tar.gz poi-a09e297f9cdc23ced9d188e991a5f127751794d5.zip |
bug 22195 ClassID support, by Michael Zalewski, sync from branch, pls verify
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353429 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases')
3 files changed, 177 insertions, 2 deletions
diff --git a/src/testcases/org/apache/poi/hpsf/basic/TestClassID.java b/src/testcases/org/apache/poi/hpsf/basic/TestClassID.java new file mode 100644 index 0000000000..c36f8161ec --- /dev/null +++ b/src/testcases/org/apache/poi/hpsf/basic/TestClassID.java @@ -0,0 +1,171 @@ +/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache POI" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache POI", nor may "Apache" appear in their name, without
+ * prior written permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+package org.apache.poi.hpsf.basic;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.poi.hpsf.ClassID;
+
+/**
+ * <p>Tests ClassID structure.</p>
+ *
+ * @author Michael Zalewski (zalewski@optonline.net)
+ */
+public class TestClassID extends TestCase
+{
+ /**
+ * <p>Constructor</p>
+ *
+ * @param name the test case's name
+ */
+ public TestClassID(final String name)
+ {
+ super(name);
+ }
+
+ /**
+ * Various tests of overridden .equals()
+ */
+ public void testEquals()
+ {
+ ClassID clsidTest1 = new ClassID(
+ new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ , 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }
+ , 0
+ );
+ ClassID clsidTest2 = new ClassID(
+ new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ , 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }
+ , 0
+ );
+ ClassID clsidTest3 = new ClassID(
+ new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ , 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x11 }
+ , 0
+ );
+ Assert.assertEquals( clsidTest1, clsidTest1);
+ Assert.assertEquals( clsidTest1, clsidTest2);
+ Assert.assertFalse( clsidTest1.equals( clsidTest3));
+ Assert.assertFalse( clsidTest1.equals( null));
+ }
+ /**
+ * Try to write to a buffer that is too small. This should
+ * throw an Exception
+ */
+ public void testWriteArrayStoreException()
+ {
+ ClassID clsidTest = new ClassID(
+ new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ , 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }
+ , 0
+ );
+ boolean bExceptionOccurred = false;
+ try {
+ clsidTest.write( new byte[ 15], 0);
+ } catch( Exception e) {
+ bExceptionOccurred = true;
+ }
+ Assert.assertTrue( bExceptionOccurred);
+
+ bExceptionOccurred = false;
+ try {
+ clsidTest.write( new byte[ 16], 1);
+ } catch( Exception e) {
+ bExceptionOccurred = true;
+ }
+ Assert.assertTrue( bExceptionOccurred);
+
+ // These should work without throwing an Exception
+ bExceptionOccurred = false;
+ try {
+ clsidTest.write( new byte[ 16], 0);
+ clsidTest.write( new byte[ 17], 1);
+ } catch( Exception e) {
+ bExceptionOccurred = true;
+ }
+ Assert.assertFalse( bExceptionOccurred);
+ }
+ /**
+ * <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>
+ */
+ public void testClassID()
+ {
+ ClassID clsidTest = new ClassID(
+ new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
+ , 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 }
+ , 0
+ );
+ Assert.assertEquals(
+ clsidTest.toString().toUpperCase()
+ , "{04030201-0605-0807-090A-0B0C0D0E0F10}"
+ );
+ }
+
+
+
+ /**
+ * <p>Runs the test cases stand-alone.</p>
+ */
+ public static void main(final String[] args)
+ {
+ System.setProperty("HPSF.testdata.path",
+ "./src/testcases/org/apache/poi/hpsf/data");
+ junit.textui.TestRunner.run(TestClassID.class);
+ }
+
+}
diff --git a/src/testcases/org/apache/poi/poifs/property/TestDocumentProperty.java b/src/testcases/org/apache/poi/poifs/property/TestDocumentProperty.java index 74a3807562..e677a7983e 100644 --- a/src/testcases/org/apache/poi/poifs/property/TestDocumentProperty.java +++ b/src/testcases/org/apache/poi/poifs/property/TestDocumentProperty.java @@ -150,6 +150,7 @@ public class TestDocumentProperty ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, + ( byte ) 0x57, ( byte ) 0x00, ( byte ) 0x6F, ( byte ) 0x00, ( byte ) 0x72, ( byte ) 0x00, ( byte ) 0x6B, ( byte ) 0x00, ( byte ) 0x62, ( byte ) 0x00, ( byte ) 0x6F, ( byte ) 0x00, @@ -182,6 +183,7 @@ public class TestDocumentProperty ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, + ( byte ) 0x05, ( byte ) 0x00, ( byte ) 0x53, ( byte ) 0x00, ( byte ) 0x75, ( byte ) 0x00, ( byte ) 0x6D, ( byte ) 0x00, ( byte ) 0x6D, ( byte ) 0x00, ( byte ) 0x61, ( byte ) 0x00, @@ -214,6 +216,7 @@ public class TestDocumentProperty ( byte ) 0x08, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, + ( byte ) 0x05, ( byte ) 0x00, ( byte ) 0x44, ( byte ) 0x00, ( byte ) 0x6F, ( byte ) 0x00, ( byte ) 0x63, ( byte ) 0x00, ( byte ) 0x75, ( byte ) 0x00, ( byte ) 0x6D, ( byte ) 0x00, diff --git a/src/testcases/org/apache/poi/poifs/property/TestRootProperty.java b/src/testcases/org/apache/poi/poifs/property/TestRootProperty.java index 430c521479..8357a0a466 100644 --- a/src/testcases/org/apache/poi/poifs/property/TestRootProperty.java +++ b/src/testcases/org/apache/poi/poifs/property/TestRootProperty.java @@ -217,11 +217,11 @@ public class TestRootProperty ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00 }; - verifyReadingProperty(0, input, 0, "Root Entry"); + verifyReadingProperty(0, input, 0, "Root Entry", "{00020820-0000-0000-C000-000000000046}"); } private void verifyReadingProperty(int index, byte [] input, int offset, - String name) + String name, String sClsId) throws IOException { RootProperty property = new RootProperty(index, input, @@ -242,6 +242,7 @@ public class TestRootProperty assertEquals(index, property.getIndex()); assertEquals(name, property.getName()); assertTrue(!property.getChildren().hasNext()); + assertEquals(property.getStorageClsid().toString(), sClsId); } /** |