From 9d89d48f56251dc69f19ad273ec30e259debbe5c Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Thu, 21 Jan 2016 09:35:02 -0800 Subject: [PATCH] Fix ParsableByteArrayTest. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=112693523 --- .../exoplayer/util/ParsableByteArrayTest.java | 14 ++++---- .../exoplayer/util/ParsableByteArray.java | 32 +++++++++---------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/library/src/androidTest/java/com/google/android/exoplayer/util/ParsableByteArrayTest.java b/library/src/androidTest/java/com/google/android/exoplayer/util/ParsableByteArrayTest.java index eed72f38f7..a7b5b89f46 100644 --- a/library/src/androidTest/java/com/google/android/exoplayer/util/ParsableByteArrayTest.java +++ b/library/src/androidTest/java/com/google/android/exoplayer/util/ParsableByteArrayTest.java @@ -346,6 +346,13 @@ public class ParsableByteArrayTest extends TestCase { assertEquals(data.length, byteArray.getPosition()); } + public void testReadAsciiString() { + byte[] data = new byte[] {'t', 'e', 's', 't'}; + ParsableByteArray testArray = new ParsableByteArray(data); + assertEquals("test", testArray.readString(data.length, Charset.forName("US-ASCII"))); + assertEquals(data.length, testArray.getPosition()); + } + public void testReadStringOutOfBoundsDoesNotMovePosition() { byte[] data = { (byte) 0xC3, (byte) 0xA4, (byte) 0x20 @@ -416,11 +423,4 @@ public class ParsableByteArrayTest extends TestCase { assertNull(parser.readLine()); } - public void testReadString() { - byte[] bytes = new byte[] {'t', 'e', 's', 't'}; - ParsableByteArray testArray = new ParsableByteArray(bytes); - assertEquals("test", testArray.readString(bytes.length, Charset.forName("UTF-8"))); - assertEquals(bytes.length, testArray.getPosition()); - } - } diff --git a/library/src/main/java/com/google/android/exoplayer/util/ParsableByteArray.java b/library/src/main/java/com/google/android/exoplayer/util/ParsableByteArray.java index ccf5033caf..8beff5f9cb 100644 --- a/library/src/main/java/com/google/android/exoplayer/util/ParsableByteArray.java +++ b/library/src/main/java/com/google/android/exoplayer/util/ParsableByteArray.java @@ -310,13 +310,24 @@ public final class ParsableByteArray { /** * Reads the next {@code length} bytes as UTF-8 characters. * - * @param length the number of bytes to read. - * @return the UTF-8 {@code String} read. + * @param length The number of bytes to read. + * @return The string encoded by the bytes. */ public String readString(int length) { - String utf8String = new String(data, position, length); + return readString(length, Charset.defaultCharset()); + } + + /** + * Reads the next {@code length} bytes as characters in the specified {@link Charset}. + * + * @param length The number of bytes to read. + * @param charset The character set of the encoded characters. + * @return The string encoded by the bytes in the specified character set. + */ + public String readString(int length, Charset charset) { + String result = new String(data, position, length, charset); position += length; - return utf8String; + return result; } /** @@ -359,17 +370,4 @@ public final class ParsableByteArray { return line; } - /** - * Reads the next {@code bytes} bytes as characters in the specified {@link Charset}. - * - * @param bytes The number of bytes to read. - * @param charset The character set of the encoded characters. - * @return The string encoded by the bytes in the specified character set. - */ - public String readString(int bytes, Charset charset) { - String result = new String(data, position, bytes, charset); - position += bytes; - return result; - } - }