@@ -531,6 +531,8 @@ public void testContentEquals_InputStream_InputStream() throws Exception {
531531 assertTrue (IOUtils .contentEquals (new ByteArrayInputStream (dataAbc ), new ByteArrayInputStream (dataAbc )));
532532 assertFalse (IOUtils .contentEquals (new ByteArrayInputStream (dataAbcd ), new ByteArrayInputStream (dataAbc )));
533533 assertFalse (IOUtils .contentEquals (new ByteArrayInputStream (dataAbc ), new ByteArrayInputStream (dataAbcd )));
534+ assertFalse (IOUtils .contentEquals (new ByteArrayInputStream ("apache" .getBytes (StandardCharsets .UTF_8 )),
535+ new ByteArrayInputStream ("apacha" .getBytes (StandardCharsets .UTF_8 ))));
534536 // Tests with larger inputs that DEFAULT_BUFFER_SIZE in case internal buffers are used.
535537 final byte [] bytes2XDefaultA = new byte [IOUtils .DEFAULT_BUFFER_SIZE * 2 ];
536538 final byte [] bytes2XDefaultB = new byte [IOUtils .DEFAULT_BUFFER_SIZE * 2 ];
@@ -582,6 +584,7 @@ public void testContentEquals_Reader_Reader() throws Exception {
582584 assertTrue (IOUtils .contentEquals (new StringReader ("ABC" ), new StringReader ("ABC" )));
583585 assertFalse (IOUtils .contentEquals (new StringReader ("ABCD" ), new StringReader ("ABC" )));
584586 assertFalse (IOUtils .contentEquals (new StringReader ("ABC" ), new StringReader ("ABCD" )));
587+ assertFalse (IOUtils .contentEquals (new StringReader ("apache" ), new StringReader ("apacha" )));
585588 }
586589
587590 @ Test
@@ -606,28 +609,48 @@ public void testContentEqualsIgnoreEOL() throws Exception {
606609 assertTrue (IOUtils .contentEqualsIgnoreEOL (input1 , input1 ));
607610 }
608611
609- Reader r1 ;
610- Reader r2 ;
611-
612- r1 = new CharArrayReader ("" .toCharArray ());
613- r2 = new CharArrayReader ("" .toCharArray ());
614- assertTrue (IOUtils .contentEqualsIgnoreEOL (r1 , r2 ));
615-
616- r1 = new CharArrayReader ("1" .toCharArray ());
617- r2 = new CharArrayReader ("1" .toCharArray ());
618- assertTrue (IOUtils .contentEqualsIgnoreEOL (r1 , r2 ));
619-
620- r1 = new CharArrayReader ("1" .toCharArray ());
621- r2 = new CharArrayReader ("2" .toCharArray ());
622- assertFalse (IOUtils .contentEqualsIgnoreEOL (r1 , r2 ));
623-
624- r1 = new CharArrayReader ("123\r abc" .toCharArray ());
625- r2 = new CharArrayReader ("123\n abc" .toCharArray ());
626- assertTrue (IOUtils .contentEqualsIgnoreEOL (r1 , r2 ));
627-
628- r1 = new CharArrayReader ("321" .toCharArray ());
629- r2 = new CharArrayReader ("321\r \n " .toCharArray ());
630- assertTrue (IOUtils .contentEqualsIgnoreEOL (r1 , r2 ));
612+ testSingleEOL ("" , "" , true );
613+ testSingleEOL ("" , "\n " , false );
614+ testSingleEOL ("" , "\r " , false );
615+ testSingleEOL ("" , "\r \n " , false );
616+ testSingleEOL ("" , "\r \r " , false );
617+ testSingleEOL ("" , "\n \n " , false );
618+ testSingleEOL ("1" , "1" , true );
619+ testSingleEOL ("1" , "2" , false );
620+ testSingleEOL ("123\r abc" , "123\n abc" , true );
621+ testSingleEOL ("321" , "321\r \n " , true );
622+ testSingleEOL ("321" , "321\r \n aabb" , false );
623+ testSingleEOL ("321" , "321\n " , true );
624+ testSingleEOL ("321" , "321\r " , true );
625+ testSingleEOL ("321" , "321\r \n " , true );
626+ testSingleEOL ("321" , "321\r \r " , false );
627+ testSingleEOL ("321" , "321\n \r " , false );
628+ testSingleEOL ("321\n " , "321" , true );
629+ testSingleEOL ("321\n " , "321\n \r " , false );
630+ testSingleEOL ("321\n " , "321\r \n " , true );
631+ testSingleEOL ("321\r " , "321\r \n " , true );
632+ testSingleEOL ("321\r \n " , "321\r \n \r " , false );
633+ testSingleEOL ("123" , "1234" , false );
634+ testSingleEOL ("1235" , "1234" , false );
635+ }
636+
637+ public void testSingleEOL (String s1 , String s2 , boolean ifEquals ) throws IOException {
638+ assertEquals (ifEquals , IOUtils .contentEqualsIgnoreEOL (
639+ new CharArrayReader (s1 .toCharArray ()),
640+ new CharArrayReader (s2 .toCharArray ())
641+ ), "failed at :{" + s1 + "," + s2 + "}" );
642+ assertEquals (ifEquals , IOUtils .contentEqualsIgnoreEOL (
643+ new CharArrayReader (s2 .toCharArray ()),
644+ new CharArrayReader (s1 .toCharArray ())
645+ ), "failed at :{" + s2 + "," + s1 + "}" );
646+ assertTrue (IOUtils .contentEqualsIgnoreEOL (
647+ new CharArrayReader (s1 .toCharArray ()),
648+ new CharArrayReader (s1 .toCharArray ())
649+ ),"failed at :{" + s1 + "," + s1 + "}" );
650+ assertTrue (IOUtils .contentEqualsIgnoreEOL (
651+ new CharArrayReader (s2 .toCharArray ()),
652+ new CharArrayReader (s2 .toCharArray ())
653+ ), "failed at :{" + s2 + "," + s2 + "}" );
631654 }
632655
633656 @ Test
0 commit comments