From 0dfa1b5254bc4f7a51043c58622a3c565ff21c3d Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Tue, 12 Jan 2016 17:04:59 -0200 Subject: [PATCH] Add UTF-8 tests for BDF Reader and Writer --- .../org/briarproject/data/BdfReaderImplTest.java | 13 +++++++++++++ .../org/briarproject/data/BdfWriterImplTest.java | 16 ++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/briar-tests/src/org/briarproject/data/BdfReaderImplTest.java b/briar-tests/src/org/briarproject/data/BdfReaderImplTest.java index f096655888..4211ed0013 100644 --- a/briar-tests/src/org/briarproject/data/BdfReaderImplTest.java +++ b/briar-tests/src/org/briarproject/data/BdfReaderImplTest.java @@ -273,6 +273,19 @@ public class BdfReaderImplTest extends BriarTestCase { assertTrue(r.eof()); } + @Test + public void testReadUtf8String() throws Exception { + String str = "������ \uFDD0\uFDD1\uFDD2\uFDD3\uFDD1 ������"; + String strHex = StringUtils.toHexString(str.getBytes("UTF-8")); + // STRING_8 tag, "foo", the empty string, and the test string + setContents("41" + "03" + "666F6F" + "41" + "00" + + "41" + "35" + strHex); + assertEquals("foo", r.readString(Integer.MAX_VALUE)); + assertEquals("", r.readString(Integer.MAX_VALUE)); + assertEquals(str, r.readString(Integer.MAX_VALUE)); + assertTrue(r.eof()); + } + @Test public void testReadRaw8() throws Exception { byte[] longest = new byte[Byte.MAX_VALUE]; diff --git a/briar-tests/src/org/briarproject/data/BdfWriterImplTest.java b/briar-tests/src/org/briarproject/data/BdfWriterImplTest.java index 23fa9edec0..1d2b796461 100644 --- a/briar-tests/src/org/briarproject/data/BdfWriterImplTest.java +++ b/briar-tests/src/org/briarproject/data/BdfWriterImplTest.java @@ -9,12 +9,11 @@ import org.junit.Test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertArrayEquals; public class BdfWriterImplTest extends BriarTestCase { @@ -113,6 +112,15 @@ public class BdfWriterImplTest extends BriarTestCase { checkContents("44" + "00008000" + shortHex); } + @Test + public void testWriteUtf8String() throws IOException { + String str = "������ \uFDD0\uFDD1\uFDD2\uFDD3\uFDD1 ������"; + String strHex = StringUtils.toHexString(str.getBytes("UTF-8")); + w.writeString(str); + // STRING_8 tag, length 53, UTF-8 bytes + checkContents("41" + "35" + strHex); + } + @Test public void testWriteBytes8() throws IOException { byte[] longest = new byte[Byte.MAX_VALUE]; @@ -225,7 +233,7 @@ public class BdfWriterImplTest extends BriarTestCase { out.flush(); out.close(); byte[] expected = StringUtils.fromHexString(hex); - assertTrue(StringUtils.toHexString(out.toByteArray()), - Arrays.equals(expected, out.toByteArray())); + assertArrayEquals(StringUtils.toHexString(out.toByteArray()), + expected, out.toByteArray()); } } -- GitLab