You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/10/08 19:12:55 UTC

svn commit: r1630184 - /pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java

Author: tilman
Date: Wed Oct  8 17:12:55 2014
New Revision: 1630184

URL: http://svn.apache.org/r1630184
Log:
PDFBOX-2401: add test to check that String values with 00 and FF are considered different

Modified:
    pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java

Modified: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java?rev=1630184&r1=1630183&r2=1630184&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java Wed Oct  8 17:12:55 2014
@@ -19,6 +19,7 @@ package org.apache.pdfbox.cos;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -420,4 +421,23 @@ public class TestCOSString extends TestC
         str3.setForceLiteralForm(true);
         assertTrue(str1.hashCode() == str3.hashCode());
     }
+    
+    /**
+     * Test testCompareFromHexString() - tests that Strings created from hex
+     * compare correctly (JDK bug PDFBOX-2401)
+     */
+    public void testCompareFromHexString() throws IOException
+    {
+        COSString test1 = COSString.createFromHexString("000000FF000000");
+        COSString test2 = COSString.createFromHexString("000000FF00FFFF");
+        assertEquals(test1, test1);
+        assertEquals(test2, test2);
+        assertFalse(test1.getHexString().equals(test2.getHexString()));
+        assertFalse(Arrays.equals(test1.getBytes(), test2.getBytes()));
+        assertFalse(test1.equals(test2));
+        assertFalse(test2.equals(test1));
+
+        // if this test fails, then the JDK bug has been fixed!
+        assertEquals(test1.getString(), test2.getString());
+    }
 }