Commit 3191afe8 by christosts Committed by Oliver Woodman

Common tests do not depend on testutils

This commit duplicates some code from the testutils module
in common test in order to break the dependency from testutils.

PiperOrigin-RevId: 322366013
parent 6ace2c94
...@@ -18,12 +18,15 @@ android.buildTypes.debug.testCoverageEnabled true ...@@ -18,12 +18,15 @@ android.buildTypes.debug.testCoverageEnabled true
dependencies { dependencies {
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
implementation 'com.google.guava:guava:' + guavaVersion implementation 'com.google.guava:guava:' + guavaVersion
implementation 'org.checkerframework:checker-qual:' + checkerframeworkVersion
compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
testImplementation project(modulePrefix + 'library-core') testImplementation 'org.mockito:mockito-core:' + mockitoVersion
testImplementation project(modulePrefix + 'testutils') testImplementation 'androidx.test:core:' + androidxTestCoreVersion
testImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
testImplementation 'junit:junit:' + junitVersion
testImplementation 'com.google.truth:truth:' + truthVersion
testImplementation 'org.robolectric:robolectric:' + robolectricVersion testImplementation 'org.robolectric:robolectric:' + robolectricVersion
} }
......
...@@ -27,11 +27,11 @@ import com.google.android.exoplayer2.drm.ExoMediaCrypto; ...@@ -27,11 +27,11 @@ import com.google.android.exoplayer2.drm.ExoMediaCrypto;
import com.google.android.exoplayer2.drm.UnsupportedMediaCrypto; import com.google.android.exoplayer2.drm.UnsupportedMediaCrypto;
import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.metadata.id3.TextInformationFrame; import com.google.android.exoplayer2.metadata.id3.TextInformationFrame;
import com.google.android.exoplayer2.testutil.TestUtil;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.video.ColorInfo; import com.google.android.exoplayer2.video.ColorInfo;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -71,11 +71,9 @@ public final class FormatTest { ...@@ -71,11 +71,9 @@ public final class FormatTest {
initializationData.add(initData2); initializationData.add(initData2);
DrmInitData.SchemeData drmData1 = DrmInitData.SchemeData drmData1 =
new DrmInitData.SchemeData( new DrmInitData.SchemeData(WIDEVINE_UUID, VIDEO_MP4, buildTestData(128, 1 /* data seed */));
WIDEVINE_UUID, VIDEO_MP4, TestUtil.buildTestData(128, 1 /* data seed */));
DrmInitData.SchemeData drmData2 = DrmInitData.SchemeData drmData2 =
new DrmInitData.SchemeData( new DrmInitData.SchemeData(C.UUID_NIL, VIDEO_WEBM, buildTestData(128, 1 /* data seed */));
C.UUID_NIL, VIDEO_WEBM, TestUtil.buildTestData(128, 1 /* data seed */));
DrmInitData drmInitData = new DrmInitData(drmData1, drmData2); DrmInitData drmInitData = new DrmInitData(drmData1, drmData2);
byte[] projectionData = new byte[] {1, 2, 3}; byte[] projectionData = new byte[] {1, 2, 3};
...@@ -124,4 +122,12 @@ public final class FormatTest { ...@@ -124,4 +122,12 @@ public final class FormatTest {
/* accessibilityChannel= */ 2, /* accessibilityChannel= */ 2,
/* exoMediaCryptoType= */ ExoMediaCrypto.class); /* exoMediaCryptoType= */ ExoMediaCrypto.class);
} }
/** Generates an array of random bytes with the specified length. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] buildTestData(int length, int seed) {
byte[] source = new byte[length];
new Random(seed).nextBytes(source);
return source;
}
} }
...@@ -25,9 +25,9 @@ import android.os.Parcel; ...@@ -25,9 +25,9 @@ import android.os.Parcel;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.drm.DrmInitData.SchemeData; import com.google.android.exoplayer2.drm.DrmInitData.SchemeData;
import com.google.android.exoplayer2.testutil.TestUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -35,16 +35,16 @@ import org.junit.runner.RunWith; ...@@ -35,16 +35,16 @@ import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class DrmInitDataTest { public class DrmInitDataTest {
private static final SchemeData DATA_1 = new SchemeData(WIDEVINE_UUID, VIDEO_MP4, private static final SchemeData DATA_1 =
TestUtil.buildTestData(128, 1 /* data seed */)); new SchemeData(WIDEVINE_UUID, VIDEO_MP4, buildTestData(128, 1 /* data seed */));
private static final SchemeData DATA_2 = new SchemeData(PLAYREADY_UUID, VIDEO_MP4, private static final SchemeData DATA_2 =
TestUtil.buildTestData(128, 2 /* data seed */)); new SchemeData(PLAYREADY_UUID, VIDEO_MP4, buildTestData(128, 2 /* data seed */));
private static final SchemeData DATA_1B = new SchemeData(WIDEVINE_UUID, VIDEO_MP4, private static final SchemeData DATA_1B =
TestUtil.buildTestData(128, 1 /* data seed */)); new SchemeData(WIDEVINE_UUID, VIDEO_MP4, buildTestData(128, 1 /* data seed */));
private static final SchemeData DATA_2B = new SchemeData(PLAYREADY_UUID, VIDEO_MP4, private static final SchemeData DATA_2B =
TestUtil.buildTestData(128, 2 /* data seed */)); new SchemeData(PLAYREADY_UUID, VIDEO_MP4, buildTestData(128, 2 /* data seed */));
private static final SchemeData DATA_UNIVERSAL = new SchemeData(C.UUID_NIL, VIDEO_MP4, private static final SchemeData DATA_UNIVERSAL =
TestUtil.buildTestData(128, 3 /* data seed */)); new SchemeData(C.UUID_NIL, VIDEO_MP4, buildTestData(128, 3 /* data seed */));
@Test @Test
public void parcelable() { public void parcelable() {
...@@ -162,4 +162,11 @@ public class DrmInitDataTest { ...@@ -162,4 +162,11 @@ public class DrmInitDataTest {
return schemeDatas; return schemeDatas;
} }
/** Generates an array of random bytes with the specified length. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] buildTestData(int length, int seed) {
byte[] source = new byte[length];
new Random(seed).nextBytes(source);
return source;
}
} }
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
*/ */
package com.google.android.exoplayer2.metadata.emsg; package com.google.android.exoplayer2.metadata.emsg;
import static com.google.android.exoplayer2.testutil.TestUtil.createByteArray;
import static com.google.android.exoplayer2.testutil.TestUtil.createMetadataInputBuffer;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertThrows;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.metadata.MetadataInputBuffer; import com.google.android.exoplayer2.metadata.MetadataInputBuffer;
import com.google.android.exoplayer2.util.Assertions;
import com.google.common.primitives.Bytes; import com.google.common.primitives.Bytes;
import java.nio.ByteBuffer;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -80,4 +80,27 @@ public final class EventMessageDecoderTest { ...@@ -80,4 +80,27 @@ public final class EventMessageDecoderTest {
assertThrows(IllegalArgumentException.class, () -> decoder.decode(buffer)); assertThrows(IllegalArgumentException.class, () -> decoder.decode(buffer));
} }
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
/**
* Create a new {@link MetadataInputBuffer} and copy {@code data} into the backing {@link
* ByteBuffer}.
*/
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static MetadataInputBuffer createMetadataInputBuffer(byte[] data) {
MetadataInputBuffer buffer = new MetadataInputBuffer();
buffer.data = ByteBuffer.allocate(data.length).put(data);
buffer.data.flip();
return buffer;
}
} }
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
*/ */
package com.google.android.exoplayer2.metadata.emsg; package com.google.android.exoplayer2.metadata.emsg;
import static com.google.android.exoplayer2.testutil.TestUtil.createByteArray;
import static com.google.android.exoplayer2.testutil.TestUtil.createMetadataInputBuffer;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.metadata.MetadataInputBuffer; import com.google.android.exoplayer2.metadata.MetadataInputBuffer;
import com.google.android.exoplayer2.util.Assertions;
import com.google.common.primitives.Bytes; import com.google.common.primitives.Bytes;
import java.io.IOException; import java.io.IOException;
import java.nio.ByteBuffer;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -78,4 +78,26 @@ public final class EventMessageEncoderTest { ...@@ -78,4 +78,26 @@ public final class EventMessageEncoderTest {
assertThat(encodedByteArray1).isEqualTo(expectedEmsgBody1); assertThat(encodedByteArray1).isEqualTo(expectedEmsgBody1);
} }
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Move to a single file.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
/**
* Create a new {@link MetadataInputBuffer} and copy {@code data} into the backing {@link
* ByteBuffer}.
*/
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static MetadataInputBuffer createMetadataInputBuffer(byte[] data) {
MetadataInputBuffer buffer = new MetadataInputBuffer();
buffer.data = ByteBuffer.allocate(data.length).put(data);
buffer.data.flip();
return buffer;
}
} }
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
*/ */
package com.google.android.exoplayer2.metadata.id3; package com.google.android.exoplayer2.metadata.id3;
import static com.google.android.exoplayer2.testutil.TestUtil.createByteArray;
import static com.google.android.exoplayer2.testutil.TestUtil.createMetadataInputBuffer;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertThrows;
...@@ -25,6 +23,7 @@ import com.google.android.exoplayer2.metadata.Metadata; ...@@ -25,6 +23,7 @@ import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.metadata.MetadataInputBuffer; import com.google.android.exoplayer2.metadata.MetadataInputBuffer;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import java.nio.ByteBuffer;
import java.util.Arrays; import java.util.Arrays;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -317,4 +316,27 @@ public final class Id3DecoderTest { ...@@ -317,4 +316,27 @@ public final class Id3DecoderTest {
this.frameData = frameData; this.frameData = frameData;
} }
} }
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Move to a single file.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
/**
* Create a new {@link MetadataInputBuffer} and copy {@code data} into the backing {@link
* ByteBuffer}.
*/
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static MetadataInputBuffer createMetadataInputBuffer(byte[] data) {
MetadataInputBuffer buffer = new MetadataInputBuffer();
buffer.data = ByteBuffer.allocate(data.length).put(data);
buffer.data.flip();
return buffer;
}
} }
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
*/ */
package com.google.android.exoplayer2.util; package com.google.android.exoplayer2.util;
import static com.google.android.exoplayer2.testutil.TestUtil.createByteArray;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
...@@ -210,4 +209,14 @@ public final class NalUnitUtilTest { ...@@ -210,4 +209,14 @@ public final class NalUnitUtilTest {
assertThat(Arrays.copyOf(buffer.array(), buffer.position())).isEqualTo(expectedOutputBitstream); assertThat(Arrays.copyOf(buffer.array(), buffer.position())).isEqualTo(expectedOutputBitstream);
} }
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
} }
...@@ -19,7 +19,6 @@ import static com.google.common.truth.Truth.assertThat; ...@@ -19,7 +19,6 @@ import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertThrows;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.testutil.TestUtil;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -30,7 +29,7 @@ public final class ParsableBitArrayTest { ...@@ -30,7 +29,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readAllBytes() { public void readAllBytes() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
byte[] bytesRead = new byte[testData.length]; byte[] bytesRead = new byte[testData.length];
...@@ -43,7 +42,7 @@ public final class ParsableBitArrayTest { ...@@ -43,7 +42,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitInSameByte() { public void readBitInSameByte() {
byte[] testData = TestUtil.createByteArray(0, 0b00110000); byte[] testData = createByteArray(0, 0b00110000);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.setPosition(10); testArray.setPosition(10);
...@@ -55,7 +54,7 @@ public final class ParsableBitArrayTest { ...@@ -55,7 +54,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitInMultipleBytes() { public void readBitInMultipleBytes() {
byte[] testData = TestUtil.createByteArray(1, 1 << 7); byte[] testData = createByteArray(1, 1 << 7);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.setPosition(6); testArray.setPosition(6);
...@@ -67,7 +66,7 @@ public final class ParsableBitArrayTest { ...@@ -67,7 +66,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBits0Bits() { public void readBits0Bits() {
byte[] testData = TestUtil.createByteArray(0x3C); byte[] testData = createByteArray(0x3C);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
int result = testArray.readBits(0); int result = testArray.readBits(0);
...@@ -77,7 +76,7 @@ public final class ParsableBitArrayTest { ...@@ -77,7 +76,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsByteAligned() { public void readBitsByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.readBits(8); testArray.readBits(8);
...@@ -89,7 +88,7 @@ public final class ParsableBitArrayTest { ...@@ -89,7 +88,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsNonByteAligned() { public void readBitsNonByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.readBits(3); testArray.readBits(3);
...@@ -101,7 +100,7 @@ public final class ParsableBitArrayTest { ...@@ -101,7 +100,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsNegativeValue() { public void readBitsNegativeValue() {
byte[] testData = TestUtil.createByteArray(0xF0, 0, 0, 0); byte[] testData = createByteArray(0xF0, 0, 0, 0);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
int result = testArray.readBits(32); int result = testArray.readBits(32);
...@@ -111,7 +110,7 @@ public final class ParsableBitArrayTest { ...@@ -111,7 +110,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsToLong0Bits() { public void readBitsToLong0Bits() {
byte[] testData = TestUtil.createByteArray(0x3C); byte[] testData = createByteArray(0x3C);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
long result = testArray.readBitsToLong(0); long result = testArray.readBitsToLong(0);
...@@ -121,7 +120,7 @@ public final class ParsableBitArrayTest { ...@@ -121,7 +120,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsToLongByteAligned() { public void readBitsToLongByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01, 0xFF, 0x14, 0x60); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01, 0xFF, 0x14, 0x60);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.readBits(8); testArray.readBits(8);
...@@ -133,7 +132,7 @@ public final class ParsableBitArrayTest { ...@@ -133,7 +132,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsToLongNonByteAligned() { public void readBitsToLongNonByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01, 0xFF, 0x14, 0x60); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01, 0xFF, 0x14, 0x60);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.readBits(3); testArray.readBits(3);
...@@ -145,7 +144,7 @@ public final class ParsableBitArrayTest { ...@@ -145,7 +144,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsToLongNegativeValue() { public void readBitsToLongNegativeValue() {
byte[] testData = TestUtil.createByteArray(0xF0, 0, 0, 0, 0, 0, 0, 0); byte[] testData = createByteArray(0xF0, 0, 0, 0, 0, 0, 0, 0);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
long result = testArray.readBitsToLong(64); long result = testArray.readBitsToLong(64);
...@@ -155,7 +154,7 @@ public final class ParsableBitArrayTest { ...@@ -155,7 +154,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void readBitsToByteArray() { public void readBitsToByteArray() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01, 0xFF, 0x14, 0x60, 0x99); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01, 0xFF, 0x14, 0x60, 0x99);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
int numBytes = testData.length; int numBytes = testData.length;
...@@ -204,7 +203,7 @@ public final class ParsableBitArrayTest { ...@@ -204,7 +203,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void skipBytes() { public void skipBytes() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.skipBytes(2); testArray.skipBytes(2);
...@@ -214,7 +213,7 @@ public final class ParsableBitArrayTest { ...@@ -214,7 +213,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void skipBitsByteAligned() { public void skipBitsByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.skipBits(16); testArray.skipBits(16);
...@@ -224,7 +223,7 @@ public final class ParsableBitArrayTest { ...@@ -224,7 +223,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void skipBitsNonByteAligned() { public void skipBitsNonByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.skipBits(5); testArray.skipBits(5);
...@@ -234,7 +233,7 @@ public final class ParsableBitArrayTest { ...@@ -234,7 +233,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void setPositionByteAligned() { public void setPositionByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.setPosition(16); testArray.setPosition(16);
...@@ -244,7 +243,7 @@ public final class ParsableBitArrayTest { ...@@ -244,7 +243,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void setPositionNonByteAligned() { public void setPositionNonByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.setPosition(5); testArray.setPosition(5);
...@@ -254,7 +253,7 @@ public final class ParsableBitArrayTest { ...@@ -254,7 +253,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void byteAlignFromNonByteAligned() { public void byteAlignFromNonByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.setPosition(11); testArray.setPosition(11);
...@@ -267,7 +266,7 @@ public final class ParsableBitArrayTest { ...@@ -267,7 +266,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void byteAlignFromByteAligned() { public void byteAlignFromByteAligned() {
byte[] testData = TestUtil.createByteArray(0x3C, 0xD2, 0x5F, 0x01); byte[] testData = createByteArray(0x3C, 0xD2, 0x5F, 0x01);
ParsableBitArray testArray = new ParsableBitArray(testData); ParsableBitArray testArray = new ParsableBitArray(testData);
testArray.setPosition(16); testArray.setPosition(16);
...@@ -363,8 +362,7 @@ public final class ParsableBitArrayTest { ...@@ -363,8 +362,7 @@ public final class ParsableBitArrayTest {
@Test @Test
public void noOverwriting() { public void noOverwriting() {
ParsableBitArray output = ParsableBitArray output = new ParsableBitArray(createByteArray(0xFF, 0xFF, 0xFF, 0xFF, 0xFF));
new ParsableBitArray(TestUtil.createByteArray(0xFF, 0xFF, 0xFF, 0xFF, 0xFF));
output.setPosition(1); output.setPosition(1);
output.putInt(0, 30); output.putInt(0, 30);
...@@ -373,4 +371,14 @@ public final class ParsableBitArrayTest { ...@@ -373,4 +371,14 @@ public final class ParsableBitArrayTest {
assertThat(output.readBits(32)).isEqualTo(0x80000001); assertThat(output.readBits(32)).isEqualTo(0x80000001);
} }
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
} }
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
*/ */
package com.google.android.exoplayer2.util; package com.google.android.exoplayer2.util;
import static com.google.android.exoplayer2.testutil.TestUtil.createByteArray;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
...@@ -121,4 +120,14 @@ public final class ParsableNalUnitBitArrayTest { ...@@ -121,4 +120,14 @@ public final class ParsableNalUnitBitArrayTest {
assertThat(array.canReadBits(25)).isFalse(); assertThat(array.canReadBits(25)).isFalse();
} }
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
} }
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
*/ */
package com.google.android.exoplayer2.util; package com.google.android.exoplayer2.util;
import static com.google.android.exoplayer2.testutil.TestUtil.getInMemoryDatabaseProvider;
import static com.google.android.exoplayer2.util.Util.binarySearchCeil; import static com.google.android.exoplayer2.util.Util.binarySearchCeil;
import static com.google.android.exoplayer2.util.Util.binarySearchFloor; import static com.google.android.exoplayer2.util.Util.binarySearchFloor;
import static com.google.android.exoplayer2.util.Util.escapeFileName; import static com.google.android.exoplayer2.util.Util.escapeFileName;
...@@ -26,13 +25,13 @@ import static com.google.android.exoplayer2.util.Util.unescapeFileName; ...@@ -26,13 +25,13 @@ import static com.google.android.exoplayer2.util.Util.unescapeFileName;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.StrikethroughSpan; import android.text.style.StrikethroughSpan;
import android.text.style.UnderlineSpan; import android.text.style.UnderlineSpan;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.testutil.TestUtil;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -760,7 +759,7 @@ public class UtilTest { ...@@ -760,7 +759,7 @@ public class UtilTest {
@Test @Test
public void toHexString_returnsHexString() { public void toHexString_returnsHexString() {
byte[] bytes = TestUtil.createByteArray(0x12, 0xFC, 0x06); byte[] bytes = createByteArray(0x12, 0xFC, 0x06);
assertThat(Util.toHexString(bytes)).isEqualTo("12fc06"); assertThat(Util.toHexString(bytes)).isEqualTo("12fc06");
} }
...@@ -807,7 +806,7 @@ public class UtilTest { ...@@ -807,7 +806,7 @@ public class UtilTest {
Random random = new Random(0); Random random = new Random(0);
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
String string = TestUtil.buildTestString(1000, random); String string = buildTestString(1000, random);
assertEscapeUnescapeFileName(string); assertEscapeUnescapeFileName(string);
} }
} }
...@@ -862,7 +861,7 @@ public class UtilTest { ...@@ -862,7 +861,7 @@ public class UtilTest {
@Test @Test
public void inflate_withDeflatedData_success() { public void inflate_withDeflatedData_success() {
byte[] testData = TestUtil.buildTestData(/*arbitrary test data size*/ 256 * 1024); byte[] testData = buildTestData(/*arbitrary test data size*/ 256 * 1024);
byte[] compressedData = new byte[testData.length * 2]; byte[] compressedData = new byte[testData.length * 2];
Deflater compresser = new Deflater(9); Deflater compresser = new Deflater(9);
compresser.setInput(testData); compresser.setInput(testData);
...@@ -1007,7 +1006,7 @@ public class UtilTest { ...@@ -1007,7 +1006,7 @@ public class UtilTest {
@Test @Test
public void tableExists_withExistingTable() { public void tableExists_withExistingTable() {
SQLiteDatabase database = getInMemoryDatabaseProvider().getWritableDatabase(); SQLiteDatabase database = getInMemorySQLiteOpenHelper().getWritableDatabase();
database.execSQL("CREATE TABLE TestTable (ID INTEGER NOT NULL)"); database.execSQL("CREATE TABLE TestTable (ID INTEGER NOT NULL)");
assertThat(Util.tableExists(database, "TestTable")).isTrue(); assertThat(Util.tableExists(database, "TestTable")).isTrue();
...@@ -1015,7 +1014,7 @@ public class UtilTest { ...@@ -1015,7 +1014,7 @@ public class UtilTest {
@Test @Test
public void tableExists_withNonExistingTable() { public void tableExists_withNonExistingTable() {
SQLiteDatabase database = getInMemoryDatabaseProvider().getReadableDatabase(); SQLiteDatabase database = getInMemorySQLiteOpenHelper().getReadableDatabase();
assertThat(Util.tableExists(database, "table")).isFalse(); assertThat(Util.tableExists(database, "table")).isFalse();
} }
...@@ -1037,4 +1036,51 @@ public class UtilTest { ...@@ -1037,4 +1036,51 @@ public class UtilTest {
} }
return longArray; return longArray;
} }
/** Returns a {@link SQLiteOpenHelper} that provides an in-memory database. */
private static SQLiteOpenHelper getInMemorySQLiteOpenHelper() {
return new SQLiteOpenHelper(
/* context= */ null, /* name= */ null, /* factory= */ null, /* version= */ 1) {
@Override
public void onCreate(SQLiteDatabase db) {}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
};
}
/** Generates an array of random bytes with the specified length. */
private static byte[] buildTestData(int length, int seed) {
byte[] source = new byte[length];
new Random(seed).nextBytes(source);
return source;
}
/** Equivalent to {@code buildTestData(length, length)}. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] buildTestData(int length) {
return buildTestData(length, length);
}
/** Generates a random string with the specified maximum length. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static String buildTestString(int maximumLength, Random random) {
int length = random.nextInt(maximumLength);
StringBuilder builder = new StringBuilder(length);
for (int i = 0; i < length; i++) {
builder.append((char) random.nextInt());
}
return builder.toString();
}
/** Converts an array of integers in the range [0, 255] into an equivalent byte array. */
// TODO(internal b/161776534): Use TestUtils when it's available in a dependency we can use here.
private static byte[] createByteArray(int... bytes) {
byte[] byteArray = new byte[bytes.length];
for (int i = 0; i < byteArray.length; i++) {
Assertions.checkState(0x00 <= bytes[i] && bytes[i] <= 0xFF);
byteArray[i] = (byte) bytes[i];
}
return byteArray;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment