Skip to content

Commit 21ed001

Browse files
Merge pull request #2878 from JaroslavHerber:patch-3
PiperOrigin-RevId: 828385214
2 parents 9a3c247 + b2aad74 commit 21ed001

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

RELEASENOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
* Add `HlsInterstitialsAdsLoader.Listener.onAdStarted` to report the start
4040
of an ad period
4141
([#2859](https://github.com/androidx/media/issues/2859)).
42+
* Accept space as a date/time separator in ISO 8601 date-time strings.
4243
* DASH extension:
4344
* Smooth Streaming extension:
4445
* RTSP extension:

libraries/common/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ dependencies {
7979
testImplementation 'androidx.test:core:' + androidxTestCoreVersion
8080
testImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
8181
testImplementation 'junit:junit:' + junitVersion
82+
testImplementation 'com.google.testparameterinjector:test-parameter-injector:' + testParameterInjectorVersion
8283
testImplementation 'com.google.truth:truth:' + truthVersion
8384
testImplementation 'org.robolectric:robolectric:' + robolectricVersion
8485
testImplementation project(modulePrefix + 'lib-exoplayer')

libraries/common/src/main/java/androidx/media3/common/util/Util.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ public final class Util {
192192
private static final String TAG = "Util";
193193
private static final Pattern XS_DATE_TIME_PATTERN =
194194
Pattern.compile(
195-
"(\\d\\d\\d\\d)\\-(\\d\\d)\\-(\\d\\d)[Tt]"
195+
"(\\d\\d\\d\\d)\\-(\\d\\d)\\-(\\d\\d)[Tt ]"
196196
+ "(\\d\\d):(\\d\\d):(\\d\\d)([\\.,](\\d+))?"
197197
+ "([Zz]|((\\+|\\-)(\\d?\\d):?(\\d\\d)))?");
198198
private static final Pattern XS_DURATION_PATTERN =

libraries/common/src/test/java/androidx/media3/common/util/UtilTest.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@
5151
import android.util.SparseLongArray;
5252
import androidx.media3.common.C;
5353
import androidx.media3.test.utils.TestUtil;
54-
import androidx.test.ext.junit.runners.AndroidJUnit4;
5554
import com.google.common.io.ByteStreams;
5655
import com.google.common.primitives.Bytes;
5756
import com.google.common.util.concurrent.Futures;
5857
import com.google.common.util.concurrent.ListenableFuture;
5958
import com.google.common.util.concurrent.SettableFuture;
59+
import com.google.testing.junit.testparameterinjector.TestParameter;
6060
import java.io.ByteArrayInputStream;
6161
import java.nio.ByteBuffer;
6262
import java.nio.ByteOrder;
@@ -72,11 +72,12 @@
7272
import java.util.zip.GZIPInputStream;
7373
import org.junit.Test;
7474
import org.junit.runner.RunWith;
75+
import org.robolectric.RobolectricTestParameterInjector;
7576
import org.robolectric.annotation.Config;
7677
import org.robolectric.shadows.ShadowLooper;
7778

7879
/** Unit tests for {@link Util}. */
79-
@RunWith(AndroidJUnit4.class)
80+
@RunWith(RobolectricTestParameterInjector.class)
8081
public class UtilTest {
8182

8283
private static final int TIMEOUT_MS = 10000;
@@ -975,14 +976,20 @@ public void parseXsDuration_returnsParsedDurationInMillis() {
975976
}
976977

977978
@Test
978-
public void parseXsDateTime_returnsParsedDateTimeInMillis() throws Exception {
979-
assertThat(parseXsDateTime("2014-06-19T23:07:42")).isEqualTo(1403219262000L);
980-
assertThat(parseXsDateTime("2014-08-06T11:00:00Z")).isEqualTo(1407322800000L);
981-
assertThat(parseXsDateTime("2014-08-06T11:00:00,000Z")).isEqualTo(1407322800000L);
982-
assertThat(parseXsDateTime("2014-09-19T13:18:55-08:00")).isEqualTo(1411161535000L);
983-
assertThat(parseXsDateTime("2014-09-19T13:18:55-0800")).isEqualTo(1411161535000L);
984-
assertThat(parseXsDateTime("2014-09-19T13:18:55.000-0800")).isEqualTo(1411161535000L);
985-
assertThat(parseXsDateTime("2014-09-19T13:18:55.000-800")).isEqualTo(1411161535000L);
979+
public void parseXsDateTime_returnsParsedDateTimeInMillis(
980+
@TestParameter({"T", "t", " "}) String separator) throws Exception {
981+
assertThat(parseXsDateTime("2014-06-19" + separator + "23:07:42")).isEqualTo(1403219262000L);
982+
assertThat(parseXsDateTime("2014-08-06" + separator + "11:00:00Z")).isEqualTo(1407322800000L);
983+
assertThat(parseXsDateTime("2014-08-06" + separator + "11:00:00,000Z"))
984+
.isEqualTo(1407322800000L);
985+
assertThat(parseXsDateTime("2014-09-19" + separator + "13:18:55-08:00"))
986+
.isEqualTo(1411161535000L);
987+
assertThat(parseXsDateTime("2014-09-19" + separator + "13:18:55-0800"))
988+
.isEqualTo(1411161535000L);
989+
assertThat(parseXsDateTime("2014-09-19" + separator + "13:18:55.000-0800"))
990+
.isEqualTo(1411161535000L);
991+
assertThat(parseXsDateTime("2014-09-19" + separator + "13:18:55.000-800"))
992+
.isEqualTo(1411161535000L);
986993
}
987994

988995
@Test

0 commit comments

Comments
 (0)