mirror of
https://github.com/samsonjs/media.git
synced 2026-04-22 14:05:55 +00:00
Be explicit about character set.
The default character set is always UTF-8 anyway on Android, but we don't want our code to behave any differently where it's not (e.g. robolectric test runs could potentially run in an environment where UTF-8 isn't the default?). ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=211953885
This commit is contained in:
parent
77a529f0ed
commit
38386c480a
7 changed files with 24 additions and 20 deletions
|
|
@ -59,7 +59,7 @@ public final class DataSchemeDataSource extends BaseDataSource {
|
|||
}
|
||||
} else {
|
||||
// TODO: Add support for other charsets.
|
||||
data = URLDecoder.decode(dataString, C.ASCII_NAME).getBytes();
|
||||
data = Util.getUtf8Bytes(URLDecoder.decode(dataString, C.ASCII_NAME));
|
||||
}
|
||||
transferStarted(dataSpec);
|
||||
return data.length;
|
||||
|
|
|
|||
|
|
@ -20,9 +20,8 @@ import static com.google.common.truth.Truth.assertThat;
|
|||
import static org.junit.Assert.fail;
|
||||
|
||||
import android.net.Uri;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
|
@ -46,16 +45,20 @@ public final class DataSchemeDataSourceTest {
|
|||
DataSpec dataSpec = buildDataSpec("data:text/plain;base64,eyJwcm92aWRlciI6IndpZGV2aW5lX3Rlc3QiL"
|
||||
+ "CJjb250ZW50X2lkIjoiTWpBeE5WOTBaV0Z5Y3c9PSIsImtleV9pZHMiOlsiMDAwMDAwMDAwMDAwMDAwMDAwMDAwM"
|
||||
+ "DAwMDAwMDAwMDAiXX0=");
|
||||
DataSourceAsserts.assertDataSourceContent(schemeDataDataSource, dataSpec,
|
||||
("{\"provider\":\"widevine_test\",\"content_id\":\"MjAxNV90ZWFycw==\",\"key_ids\":"
|
||||
+ "[\"00000000000000000000000000000000\"]}").getBytes(Charset.forName(C.UTF8_NAME)));
|
||||
DataSourceAsserts.assertDataSourceContent(
|
||||
schemeDataDataSource,
|
||||
dataSpec,
|
||||
Util.getUtf8Bytes(
|
||||
"{\"provider\":\"widevine_test\",\"content_id\":\"MjAxNV90ZWFycw==\",\"key_ids\":"
|
||||
+ "[\"00000000000000000000000000000000\"]}"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAsciiData() throws IOException {
|
||||
DataSourceAsserts.assertDataSourceContent(schemeDataDataSource,
|
||||
DataSourceAsserts.assertDataSourceContent(
|
||||
schemeDataDataSource,
|
||||
buildDataSpec("data:,A%20brief%20note"),
|
||||
"A brief note".getBytes(Charset.forName(C.UTF8_NAME)));
|
||||
Util.getUtf8Bytes("A brief note"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -68,7 +71,7 @@ public final class DataSchemeDataSourceTest {
|
|||
assertThat(schemeDataDataSource.read(buffer, 9, 15)).isEqualTo(9);
|
||||
assertThat(schemeDataDataSource.read(buffer, 1, 0)).isEqualTo(0);
|
||||
assertThat(schemeDataDataSource.read(buffer, 1, 1)).isEqualTo(RESULT_END_OF_INPUT);
|
||||
assertThat(new String(buffer, 0, 18, C.UTF8_NAME)).isEqualTo("012345678901234567");
|
||||
assertThat(Util.fromUtf8Bytes(buffer, 0, 18)).isEqualTo("012345678901234567");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ import org.robolectric.RobolectricTestRunner;
|
|||
@RunWith(RobolectricTestRunner.class)
|
||||
public final class ReusableBufferedOutputStreamTest {
|
||||
|
||||
private static final byte[] TEST_DATA_1 = "test data 1".getBytes();
|
||||
private static final byte[] TEST_DATA_2 = "2 test data".getBytes();
|
||||
private static final byte[] TEST_DATA_1 = Util.getUtf8Bytes("test data 1");
|
||||
private static final byte[] TEST_DATA_2 = Util.getUtf8Bytes("2 test data");
|
||||
|
||||
@Test
|
||||
public void testReset() throws Exception {
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ public final class PlayerEmsgHandler implements Handler.Callback {
|
|||
|
||||
private static long getManifestPublishTimeMsInEmsg(EventMessage eventMessage) {
|
||||
try {
|
||||
return parseXsDateTime(new String(eventMessage.messageData));
|
||||
return parseXsDateTime(Util.fromUtf8Bytes(eventMessage.messageData));
|
||||
} catch (ParserException ignored) {
|
||||
// if we can't parse this event, ignore
|
||||
return C.TIME_UNSET;
|
||||
|
|
|
|||
|
|
@ -862,7 +862,7 @@ public class DashManifestParser extends DefaultHandler
|
|||
throws XmlPullParserException, IOException {
|
||||
scratchOutputStream.reset();
|
||||
XmlSerializer xmlSerializer = Xml.newSerializer();
|
||||
xmlSerializer.setOutput(scratchOutputStream, null);
|
||||
xmlSerializer.setOutput(scratchOutputStream, C.UTF8_NAME);
|
||||
// Start reading everything between <Event> and </Event>, and serialize them into an Xml
|
||||
// byte array.
|
||||
xpp.nextToken();
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import com.google.android.exoplayer2.C;
|
|||
import com.google.android.exoplayer2.Format;
|
||||
import com.google.android.exoplayer2.metadata.emsg.EventMessage;
|
||||
import com.google.android.exoplayer2.testutil.TestUtil;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Collections;
|
||||
|
|
@ -117,7 +118,8 @@ public class DashManifestParserTest {
|
|||
"",
|
||||
1500000,
|
||||
1,
|
||||
("<![CDATA[<BroadcastEvent>\n"
|
||||
Util.getUtf8Bytes(
|
||||
"<![CDATA[<BroadcastEvent>\n"
|
||||
+ " <Program crid=\"crid://broadcaster.example.com/ABCDEF\"/>\n"
|
||||
+ " <InstanceDescription>\n"
|
||||
+ " <Title xml:lang=\"en\">The title</Title>\n"
|
||||
|
|
@ -128,8 +130,7 @@ public class DashManifestParserTest {
|
|||
+ " <mpeg7:Region>GB</mpeg7:Region>\n"
|
||||
+ " </ParentalGuidance>\n"
|
||||
+ " </InstanceDescription>\n"
|
||||
+ " </BroadcastEvent>]]>")
|
||||
.getBytes(),
|
||||
+ " </BroadcastEvent>]]>"),
|
||||
300000000));
|
||||
|
||||
// assert xml-structured event stream
|
||||
|
|
@ -142,12 +143,12 @@ public class DashManifestParserTest {
|
|||
"",
|
||||
1000000,
|
||||
2,
|
||||
("<scte35:Signal>\n"
|
||||
Util.getUtf8Bytes(
|
||||
"<scte35:Signal>\n"
|
||||
+ " <scte35:Binary>\n"
|
||||
+ " /DAIAAAAAAAAAAAQAAZ/I0VniQAQAgBDVUVJQAAAAH+cAAAAAA==\n"
|
||||
+ " </scte35:Binary>\n"
|
||||
+ " </scte35:Signal>")
|
||||
.getBytes(),
|
||||
+ " </scte35:Signal>"),
|
||||
1000000000));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ public class TestUtil {
|
|||
}
|
||||
|
||||
public static String getString(Context context, String fileName) throws IOException {
|
||||
return new String(getByteArray(context, fileName));
|
||||
return Util.fromUtf8Bytes(getByteArray(context, fileName));
|
||||
}
|
||||
|
||||
public static Bitmap readBitmapFromFile(Context context, String fileName) throws IOException {
|
||||
|
|
|
|||
Loading…
Reference in a new issue