Skip to content

Commit 99e66c0

Browse files
authored
add more tests for IOUtils.contentEqualsIgnoreEOL (#137)
1 parent 9d70e61 commit 99e66c0

File tree

1 file changed

+45
-22
lines changed

1 file changed

+45
-22
lines changed

src/test/java/org/apache/commons/io/IOUtilsTest.java

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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\rabc".toCharArray());
625-
r2 = new CharArrayReader("123\nabc".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\rabc", "123\nabc", true);
621+
testSingleEOL("321", "321\r\n", true);
622+
testSingleEOL("321", "321\r\naabb", 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

Comments
 (0)