diff --git a/briar-tests/src/org/briarproject/data/BdfReaderImplTest.java b/briar-tests/src/org/briarproject/data/BdfReaderImplTest.java index f09665588807278e40d955ceb1625bac995c6bf1..4211ed0013b2cf04767aabad1b994f729a582968 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 23fa9edec0590ad3b56ab4c472f54a2cd2306856..1d2b796461a88a3d2440056abb6eadc161f54de8 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()); } }