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:29 UTC

svn commit: r1630183 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java

Author: tilman
Date: Wed Oct  8 17:12:28 2014
New Revision: 1630183

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

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

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java?rev=1630183&r1=1630182&r2=1630183&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java Wed Oct  8 17:12:28 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;
@@ -412,4 +413,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());
+    }
 }