Merge "Update counters for session encryption to start at 1."
diff --git a/hostsidetests/appcompat/compatchanges/app/AndroidManifest.xml b/hostsidetests/appcompat/compatchanges/app/AndroidManifest.xml
index 08553c7..28b33d2 100644
--- a/hostsidetests/appcompat/compatchanges/app/AndroidManifest.xml
+++ b/hostsidetests/appcompat/compatchanges/app/AndroidManifest.xml
@@ -16,8 +16,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.cts.appcompat">
-
- <application>
+ <!-- targetSdkVersion for this test must be below 1234 -->
+ <uses-sdk android:targetSdkVersion="29"/>
+ <application
+ android:debuggable="true">
<uses-library android:name="android.test.runner" />
</application>
diff --git a/hostsidetests/appcompat/compatchanges/app/src/com/android/cts/appcompat/CompatChangesTest.java b/hostsidetests/appcompat/compatchanges/app/src/com/android/cts/appcompat/CompatChangesTest.java
index 1c9fe1b..7025a96 100644
--- a/hostsidetests/appcompat/compatchanges/app/src/com/android/cts/appcompat/CompatChangesTest.java
+++ b/hostsidetests/appcompat/compatchanges/app/src/com/android/cts/appcompat/CompatChangesTest.java
@@ -43,6 +43,7 @@
*/
@RunWith(AndroidJUnit4.class)
public final class CompatChangesTest {
+ private static final long CTS_SYSTEM_API_CHANGEID = 149391281;
@Before
public void setUp() {
InstrumentationRegistry.getInstrumentation().getUiAutomation()
@@ -58,40 +59,40 @@
/* Test run by CompatChangesSystemApiTest.testIsChangeEnabled */
@Test
public void isChangeEnabled_changeEnabled() {
- assertThat(CompatChanges.isChangeEnabled(1L)).isTrue();
+ assertThat(CompatChanges.isChangeEnabled(CTS_SYSTEM_API_CHANGEID)).isTrue();
}
/* Test run by CompatChangesSystemApiTest.testIsChangeEnabledPackageName */
@Test
public void isChangeEnabledPackageName_changeEnabled() {
Context context = InstrumentationRegistry.getTargetContext();
- assertThat(CompatChanges.isChangeEnabled(1L, context.getPackageName(),
+ assertThat(CompatChanges.isChangeEnabled(CTS_SYSTEM_API_CHANGEID, context.getPackageName(),
context.getUser())).isTrue();
}
/* Test run by CompatChangesSystemApiTest.testIsChangeEnabledUid */
@Test
public void isChangeEnabledUid_changeEnabled() {
- assertThat(CompatChanges.isChangeEnabled(1L, Process.myUid())).isTrue();
+ assertThat(CompatChanges.isChangeEnabled(CTS_SYSTEM_API_CHANGEID, Process.myUid())).isTrue();
}
/* Test run by CompatChangesSystemApiTest.testIsChangeDisabled */
@Test
public void isChangeEnabled_changeDisabled() {
- assertThat(CompatChanges.isChangeEnabled(1L)).isFalse();
+ assertThat(CompatChanges.isChangeEnabled(CTS_SYSTEM_API_CHANGEID)).isFalse();
}
/* Test run by CompatChangesSystemApiTest.testIsChangeDisabledPackageName */
@Test
public void isChangeEnabledPackageName_changeDisabled() {
Context context = InstrumentationRegistry.getTargetContext();
- assertThat(CompatChanges.isChangeEnabled(1L, context.getPackageName(),
+ assertThat(CompatChanges.isChangeEnabled(CTS_SYSTEM_API_CHANGEID, context.getPackageName(),
context.getUser())).isFalse();
}
/* Test run by CompatChangesSystemApiTest.testIsChangeDisabledUid */
@Test
public void isChangeEnabledUid_changeDisabled() {
- assertThat(CompatChanges.isChangeEnabled(1L, Process.myUid())).isFalse();
+ assertThat(CompatChanges.isChangeEnabled(CTS_SYSTEM_API_CHANGEID, Process.myUid())).isFalse();
}
}
diff --git a/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesSystemApiTest.java b/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesSystemApiTest.java
index 6f57aa8..699af1a 100644
--- a/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesSystemApiTest.java
+++ b/hostsidetests/appcompat/compatchanges/src/com/android/cts/appcompat/CompatChangesSystemApiTest.java
@@ -36,6 +36,8 @@
protected static final String TEST_APK = "CtsHostsideCompatChangeTestsApp.apk";
protected static final String TEST_PKG = "com.android.cts.appcompat";
+ private static final long CTS_SYSTEM_API_CHANGEID = 149391281;
+
@Override
protected void setUp() throws Exception {
installPackage(TEST_APK, true);
@@ -43,39 +45,39 @@
public void testIsChangeEnabled() throws Exception {
runDeviceCompatTest(TEST_PKG, ".CompatChangesTest", "isChangeEnabled_changeEnabled",
- /*enabledChanges*/ImmutableSet.of(1L),
+ /*enabledChanges*/ImmutableSet.of(CTS_SYSTEM_API_CHANGEID),
/*disabledChanges*/ ImmutableSet.of());
}
public void testIsChangeEnabledPackageName() throws Exception {
runDeviceCompatTest(TEST_PKG, ".CompatChangesTest",
"isChangeEnabledPackageName_changeEnabled",
- /*enabledChanges*/ImmutableSet.of(1L),
+ /*enabledChanges*/ImmutableSet.of(CTS_SYSTEM_API_CHANGEID),
/*disabledChanges*/ ImmutableSet.of());
}
public void testIsChangeEnabledUid() throws Exception {
runDeviceCompatTest(TEST_PKG, ".CompatChangesTest", "isChangeEnabledUid_changeEnabled",
- /*enabledChanges*/ImmutableSet.of(1L),
+ /*enabledChanges*/ImmutableSet.of(CTS_SYSTEM_API_CHANGEID),
/*disabledChanges*/ ImmutableSet.of());
}
public void testIsChangeDisabled() throws Exception {
runDeviceCompatTest(TEST_PKG, ".CompatChangesTest", "isChangeEnabled_changeDisabled",
/*enabledChanges*/ImmutableSet.of(),
- /*disabledChanges*/ ImmutableSet.of(1L));
+ /*disabledChanges*/ ImmutableSet.of(CTS_SYSTEM_API_CHANGEID));
}
public void testIsChangeDisabledPackageName() throws Exception {
runDeviceCompatTest(TEST_PKG, ".CompatChangesTest",
"isChangeEnabledPackageName_changeDisabled",
/*enabledChanges*/ImmutableSet.of(),
- /*disabledChanges*/ ImmutableSet.of(1L));
+ /*disabledChanges*/ ImmutableSet.of(CTS_SYSTEM_API_CHANGEID));
}
public void testIsChangeDisabledUid() throws Exception {
runDeviceCompatTest(TEST_PKG, ".CompatChangesTest", "isChangeEnabledUid_changeDisabled",
/*enabledChanges*/ImmutableSet.of(),
- /*disabledChanges*/ ImmutableSet.of(1L));
+ /*disabledChanges*/ ImmutableSet.of(CTS_SYSTEM_API_CHANGEID));
}
}
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/CecDevice.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/CecDevice.java
index 3dac5d5..68c270a 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/CecDevice.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/CecDevice.java
@@ -21,12 +21,20 @@
public enum CecDevice {
TV(0x0),
- RECORDING_1(0x1),
+ RECORDER_1(0x1),
+ RECORDER_2(0x2),
TUNER_1(0x3),
PLAYBACK_1(0x4),
AUDIO_SYSTEM(0x5),
+ TUNER_2(0x6),
+ TUNER_3(0x7),
PLAYBACK_2(0x8),
+ RECORDER_3(0x9),
+ TUNER_4(0xa),
PLAYBACK_3(0xb),
+ RESERVED_1(0xc),
+ RESERVED_2(0xd),
+ SPECIFIC_USE(0xe),
BROADCAST(0xf);
private final int playerId;
@@ -53,8 +61,15 @@
return Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_TV);
case AUDIO_SYSTEM:
return Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_AUDIO_SYSTEM);
- case RECORDING_1:
- return Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_RECORDING_DEVICE);
+ case RECORDER_1:
+ case RECORDER_2:
+ case RECORDER_3:
+ return Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_RECORDER);
+ case TUNER_1:
+ case TUNER_2:
+ case TUNER_3:
+ case TUNER_4:
+ return Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_TUNER);
default:
return Integer.toString(HdmiCecConstants.CEC_DEVICE_TYPE_RESERVED);
}
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecClientWrapper.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecClientWrapper.java
index 4bbf0ec..a4bacf4 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecClientWrapper.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecClientWrapper.java
@@ -171,6 +171,21 @@
*/
public void sendUserControlPressAndRelease(CecDevice source, CecDevice destination,
int keycode, boolean holdKey) throws Exception {
+ sendUserControlPress(source, destination, keycode, holdKey);
+ /* Sleep less than 200ms between press and release */
+ TimeUnit.MILLISECONDS.sleep(100);
+ mOutputConsole.write("tx " + source + destination + ":" +
+ CecMessage.USER_CONTROL_RELEASED);
+ mOutputConsole.flush();
+ }
+
+ /**
+ * Sends a <UCP> message from source to destination through the output console of the
+ * cec-communication channel with the mentioned keycode. If holdKey is true, the method will
+ * send multiple <UCP> messages to simulate a long press. No <UCR> will be sent.
+ */
+ public void sendUserControlPress(CecDevice source, CecDevice destination,
+ int keycode, boolean holdKey) throws Exception {
checkCecClient();
String key = String.format("%02x", keycode);
String command = "tx " + source + destination + ":" +
@@ -182,6 +197,7 @@
int repeat = 16;
for (int i = 0; i < repeat; i++) {
mOutputConsole.write(command);
+ mOutputConsole.newLine();
mOutputConsole.flush();
TimeUnit.MILLISECONDS.sleep(300);
}
@@ -189,10 +205,6 @@
mOutputConsole.write(command);
mOutputConsole.newLine();
- /* Sleep less than 200ms between press and release */
- TimeUnit.MILLISECONDS.sleep(100);
- mOutputConsole.write("tx " + source + destination + ":" +
- CecMessage.USER_CONTROL_RELEASED);
mOutputConsole.flush();
}
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecConstants.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecConstants.java
index 6383a4a..0565eae 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecConstants.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/HdmiCecConstants.java
@@ -41,7 +41,7 @@
public static final int UNRECOGNIZED_OPCODE = 0x0;
public static final int CEC_DEVICE_TYPE_TV = 0;
- public static final int CEC_DEVICE_TYPE_RECORDING_DEVICE = 1;
+ public static final int CEC_DEVICE_TYPE_RECORDER = 1;
public static final int CEC_DEVICE_TYPE_RESERVED = 2;
public static final int CEC_DEVICE_TYPE_TUNER = 3;
public static final int CEC_DEVICE_TYPE_PLAYBACK_DEVICE = 4;
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/audio/HdmiCecRemoteControlPassThroughTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/audio/HdmiCecRemoteControlPassThroughTest.java
index 182a3cb..a90b09f 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/audio/HdmiCecRemoteControlPassThroughTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/audio/HdmiCecRemoteControlPassThroughTest.java
@@ -140,4 +140,38 @@
HdmiCecConstants.CEC_CONTROL_BACK, true);
lookForLog("Long press KEYCODE_BACK");
}
+
+ /**
+ * Test 11.2.13-3
+ * Tests that the device responds correctly to a <User Control Pressed> message for press and
+ * hold operations when no <User Control Released> is sent.
+ */
+ @Test
+ public void cect_11_2_13_3_UserControlPressAndHoldWithNoRelease() throws Exception {
+ ITestDevice device = getDevice();
+ // Clear activity
+ device.executeShellCommand(CLEAR_COMMAND);
+ // Clear logcat.
+ device.executeAdbCommand("logcat", "-c");
+ // Start the APK and wait for it to complete.
+ device.executeShellCommand(START_COMMAND);
+ hdmiCecClient.sendUserControlPress(CecDevice.TV, CecDevice.AUDIO_SYSTEM,
+ HdmiCecConstants.CEC_CONTROL_UP, true);
+ lookForLog("Long press KEYCODE_DPAD_UP");
+ hdmiCecClient.sendUserControlPress(CecDevice.TV, CecDevice.AUDIO_SYSTEM,
+ HdmiCecConstants.CEC_CONTROL_DOWN, true);
+ lookForLog("Long press KEYCODE_DPAD_DOWN");
+ hdmiCecClient.sendUserControlPress(CecDevice.TV, CecDevice.AUDIO_SYSTEM,
+ HdmiCecConstants.CEC_CONTROL_LEFT, true);
+ lookForLog("Long press KEYCODE_DPAD_LEFT");
+ hdmiCecClient.sendUserControlPress(CecDevice.TV, CecDevice.AUDIO_SYSTEM,
+ HdmiCecConstants.CEC_CONTROL_RIGHT, true);
+ lookForLog("Long press KEYCODE_DPAD_RIGHT");
+ hdmiCecClient.sendUserControlPress(CecDevice.TV, CecDevice.AUDIO_SYSTEM,
+ HdmiCecConstants.CEC_CONTROL_SELECT, true);
+ lookForLog("Long press KEYCODE_DPAD_CENTER");
+ hdmiCecClient.sendUserControlPress(CecDevice.TV, CecDevice.AUDIO_SYSTEM,
+ HdmiCecConstants.CEC_CONTROL_BACK, true);
+ lookForLog("Long press KEYCODE_BACK");
+ }
}
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemInformationTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemInformationTest.java
index e5ab1d9..c6df9f7 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemInformationTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemInformationTest.java
@@ -172,7 +172,7 @@
final String originalLanguage = extractLanguage(locale);
final String language = originalLanguage.equals("spa") ? "eng" : "spa";
try {
- hdmiCecClient.sendCecMessage(CecDevice.RECORDING_1, CecDevice.BROADCAST,
+ hdmiCecClient.sendCecMessage(CecDevice.RECORDER_1, CecDevice.BROADCAST,
CecMessage.SET_MENU_LANGUAGE, hdmiCecClient.convertStringToHexParams(language));
assertEquals(originalLanguage, extractLanguage(getSystemLocale()));
} finally {
diff --git a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemStandbyTest.java b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemStandbyTest.java
index 3f51843..1aa8fe4 100644
--- a/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemStandbyTest.java
+++ b/hostsidetests/hdmicec/src/android/hdmicec/cts/playback/HdmiCecSystemStandbyTest.java
@@ -87,7 +87,7 @@
checkDeviceAsleepAfterStandbySent(CecDevice.TV, CecDevice.BROADCAST);
/* Wake up the TV */
hdmiCecClient.sendConsoleMessage("on " + CecDevice.TV);
- checkDeviceAsleepAfterStandbySent(CecDevice.RECORDING_1, CecDevice.BROADCAST);
+ checkDeviceAsleepAfterStandbySent(CecDevice.RECORDER_1, CecDevice.BROADCAST);
/* Wake up the TV */
hdmiCecClient.sendConsoleMessage("on " + CecDevice.TV);
checkDeviceAsleepAfterStandbySent(CecDevice.AUDIO_SYSTEM, CecDevice.BROADCAST);
@@ -109,7 +109,7 @@
getDevice().executeShellCommand("reboot");
getDevice().waitForBootComplete(HdmiCecConstants.REBOOT_TIMEOUT);
checkDeviceAsleepAfterStandbySent(CecDevice.TV, CecDevice.PLAYBACK_1);
- checkDeviceAsleepAfterStandbySent(CecDevice.RECORDING_1, CecDevice.PLAYBACK_1);
+ checkDeviceAsleepAfterStandbySent(CecDevice.RECORDER_1, CecDevice.PLAYBACK_1);
checkDeviceAsleepAfterStandbySent(CecDevice.AUDIO_SYSTEM, CecDevice.PLAYBACK_1);
checkDeviceAsleepAfterStandbySent(CecDevice.PLAYBACK_2, CecDevice.PLAYBACK_1);
checkDeviceAsleepAfterStandbySent(CecDevice.BROADCAST, CecDevice.PLAYBACK_1);
diff --git a/tests/camera/libctscamera2jni/native-camera-jni.cpp b/tests/camera/libctscamera2jni/native-camera-jni.cpp
index 3cf318c..5daccb7 100644
--- a/tests/camera/libctscamera2jni/native-camera-jni.cpp
+++ b/tests/camera/libctscamera2jni/native-camera-jni.cpp
@@ -2721,10 +2721,12 @@
goto cleanup;
}
+ StaticInfo staticInfo(chars);
ACameraMetadata_const_entry sessionParamKeys{};
ret = ACameraMetadata_getConstEntry(chars, ACAMERA_REQUEST_AVAILABLE_SESSION_KEYS,
&sessionParamKeys);
- if ((ret != ACAMERA_OK) || (sessionParamKeys.count == 0)) {
+ if ((ret != ACAMERA_OK) || (sessionParamKeys.count == 0) ||
+ !staticInfo.isColorOutputSupported()) {
ACameraMetadata_free(chars);
chars = nullptr;
continue;
diff --git a/tests/media/src/android/mediav2/cts/ExtractorUnitTest.java b/tests/media/src/android/mediav2/cts/ExtractorUnitTest.java
new file mode 100644
index 0000000..84122cd
--- /dev/null
+++ b/tests/media/src/android/mediav2/cts/ExtractorUnitTest.java
@@ -0,0 +1,793 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.mediav2.cts;
+
+import android.content.res.AssetFileDescriptor;
+import android.media.MediaDataSource;
+import android.media.MediaExtractor;
+import android.os.ParcelFileDescriptor;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.experimental.runners.Enclosed;
+import org.junit.rules.TestName;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+@RunWith(Enclosed.class)
+public class ExtractorUnitTest {
+ private static final int MAX_SAMPLE_SIZE = 4 * 1024 * 1024;
+ private static final String mInpPrefix = WorkDir.getMediaDirString();
+ private static final String mInpMedia = "ForBiggerEscapes.mp4";
+
+ @SmallTest
+ public static class TestApi {
+ @Rule
+ public TestName testName = new TestName();
+
+ @Test
+ public void testGetTrackCountBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid trackCount before setDataSource",
+ extractor.getTrackCount() <= 0);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetTrackCountAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getTrackCount();
+ fail("getTrackCount succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testSelectTrackBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.selectTrack(0);
+ fail("selectTrack succeeds before setDataSource");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testSelectTrackForInvalidIndex() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ try {
+ extractor.selectTrack(-1);
+ fail("selectTrack succeeds for track index: -1");
+ } catch (Exception e) {
+ // expected
+ }
+ try {
+ extractor.selectTrack(extractor.getTrackCount());
+ fail("selectTrack succeeds for out of bounds track index: " +
+ extractor.getTrackCount());
+ } catch (Exception e) {
+ // expected
+ }
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIdempotentSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ extractor.selectTrack(0);
+ extractor.selectTrack(0);
+ } catch (Exception e) {
+ fail("multiple selection of same track has failed");
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testSelectTrackAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.selectTrack(0);
+ fail("selectTrack succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testUnselectTrackBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.unselectTrack(0);
+ fail("unselectTrack succeeds before setDataSource");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testUnselectTrackForInvalidIndex() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ try {
+ extractor.unselectTrack(-1);
+ fail("unselectTrack succeeds for track index: -1");
+ } catch (Exception e) {
+ // expected
+ }
+ try {
+ extractor.unselectTrack(extractor.getTrackCount());
+ fail("unselectTrack succeeds for out of bounds track index: " +
+ extractor.getTrackCount());
+ } catch (Exception e) {
+ // expected
+ }
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testUnselectTrackForUnSelectedTrackIndex() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ extractor.unselectTrack(0);
+ } catch (Exception e) {
+ fail("un-selection of non-selected track has failed");
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIdempotentUnselectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ extractor.selectTrack(0);
+ extractor.unselectTrack(0);
+ extractor.unselectTrack(0);
+ } catch (Exception e) {
+ fail("multiple un-selection of selected track has failed");
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testUnselectTrackAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.unselectTrack(0);
+ fail("unselectTrack succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testSeekToBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.seekTo(33000, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
+ if (extractor.getSampleTime() != -1 || extractor.getSampleSize() != -1 ||
+ extractor.getSampleFlags() != -1) {
+ fail("seekTo() succeeds before setting data source, returns non-negative " +
+ "sampleTime / sampleSize / sampleFlags");
+ }
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testSeekToBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ extractor.seekTo(33000, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
+ if (extractor.getSampleTime() != -1 || extractor.getSampleSize() != -1 ||
+ extractor.getSampleFlags() != -1) {
+ fail("seekTo() succeeds before selectTrack, returns non-negative " +
+ "sampleTime / sampleSize / sampleFlags");
+ }
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testSeekToForInvalidMode() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ extractor.selectTrack(0);
+ long pts = 33000;
+ try {
+ extractor.seekTo(pts, (int) pts);
+ fail("seekTo() succeeds for invalid mode: " + pts);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testSeekToAfterRelease() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ extractor.release();
+ try {
+ extractor.seekTo(33000, MediaExtractor.SEEK_TO_CLOSEST_SYNC);
+ fail("seekTo() succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ @Ignore("TODO(b/148205432)")
+ public void testGetCachedDurationBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid cachedDuration before setDataSource",
+ extractor.getCachedDuration() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetCachedDurationAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getCachedDuration();
+ fail("cachedDuration succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ @Ignore("TODO(b/148204634)")
+ public void testHasCacheReachedEOSBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("unexpected value received from hasCacheReachedEndOfStream before" +
+ " setDataSource", !extractor.hasCacheReachedEndOfStream());
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testHasCacheReachedEOSAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.hasCacheReachedEndOfStream();
+ fail("hasCacheReachedEndOfStream succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testGetMetricsBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid metrics before setDataSource",
+ extractor.getMetrics() == null);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetMetricsAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getMetrics();
+ fail("getMetrics() succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testIdempotentRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.release();
+ extractor.release();
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testAdvanceBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("advance succeeds before setDataSource", !extractor.advance());
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testAdvanceBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ assertTrue("advance succeeds without any active tracks", !extractor.advance());
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testAdvanceAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.advance();
+ fail("advance succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testGetSampleFlagsBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid sampleFlag before setDataSource",
+ extractor.getSampleFlags() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleFlagsBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ assertTrue("received valid sampleFlag without any active tracks",
+ extractor.getSampleFlags() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleFlagsAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getSampleFlags();
+ fail("getSampleFlags succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testGetSampleTimeBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid sampleTime before setDataSource",
+ extractor.getSampleTime() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleTimeBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ assertTrue("received valid sampleTime without any active tracks",
+ extractor.getSampleTime() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleTimeAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getSampleTime();
+ fail("getSampleTime succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testGetSampleSizeBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid sampleSize before setDataSource",
+ extractor.getSampleSize() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleSizeBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ assertTrue("received valid sampleSize without any active tracks",
+ extractor.getSampleSize() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleSizeAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getSampleSize();
+ fail("getSampleSize succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testGetSampleTrackIndexBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ assertTrue("received valid sampleTrackIndex before setDataSource",
+ extractor.getSampleTrackIndex() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleTrackIndexBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ assertTrue("received valid sampleTrackIndex without any active tracks",
+ extractor.getSampleTrackIndex() == -1);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetSampleTrackIndexAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getSampleTrackIndex();
+ fail("getSampleTrackIndex succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testGetTrackFormatBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.getTrackFormat(0);
+ fail("getTrackFormat succeeds before setDataSource");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetTrackFormatForInvalidIndex() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ try {
+ extractor.getTrackFormat(-1);
+ fail("getTrackFormat succeeds for track index: -1");
+ } catch (Exception e) {
+ // expected
+ }
+ try {
+ extractor.getTrackFormat(extractor.getTrackCount());
+ fail("getTrackFormat succeeds for out of bounds track index: " +
+ extractor.getTrackCount());
+ } catch (Exception e) {
+ // expected
+ }
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testGetTrackFormatAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ extractor.release();
+ try {
+ extractor.getTrackFormat(0);
+ fail("getTrackFormat succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testReadSampleDataBeforeSetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ ByteBuffer byteBuffer = ByteBuffer.allocate(MAX_SAMPLE_SIZE);
+ try {
+ assertTrue("readSampleData returns val >= 0 before setDataSource",
+ extractor.readSampleData(byteBuffer, 0) < 0);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testReadSampleDataBeforeSelectTrack() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ ByteBuffer byteBuffer = ByteBuffer.allocate(MAX_SAMPLE_SIZE);
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ try {
+ assertTrue("readSampleData returns val >= 0 without any active tracks",
+ extractor.readSampleData(byteBuffer, 0) < 0);
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIfInvalidOffsetIsRejectedByReadSampleData() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ ByteBuffer byteBuffer = ByteBuffer.allocate(MAX_SAMPLE_SIZE);
+ extractor.setDataSource(mInpPrefix + mInpMedia);
+ extractor.selectTrack(0);
+ try {
+ // readSampleData with negative offset
+ try {
+ extractor.readSampleData(byteBuffer, -1);
+ fail("readSampleData succeeds with negative offset");
+ } catch (Exception e) {
+ // expected
+ }
+
+ // readSampleData with byteBuffer's capacity - offset < frame size
+ int sampleSize = (int) extractor.getSampleSize();
+ try {
+ extractor.readSampleData(byteBuffer, MAX_SAMPLE_SIZE - sampleSize + 1);
+ fail("readSampleData succeeds when available size of byteBuffer is less than " +
+ "frame size");
+ } catch (Exception e) {
+ // expected
+ }
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testReadSampleDataAfterRelease() {
+ MediaExtractor extractor = new MediaExtractor();
+ ByteBuffer byteBuffer = ByteBuffer.allocate(MAX_SAMPLE_SIZE);
+ extractor.release();
+ try {
+ extractor.readSampleData(byteBuffer, 0);
+ fail("readSampleData succeeds after release");
+ } catch (Exception e) {
+ // expected
+ }
+ }
+
+ @Test
+ public void testIfInvalidDataSourceIsRejectedBySetDataSource() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ TestMediaDataSource dataSource =
+ TestMediaDataSource.fromString(mInpPrefix + mInpMedia, true, false);
+ try {
+ try {
+ extractor.setDataSource(dataSource);
+ fail("setDataSource succeeds with malformed media data source");
+ } catch (Exception e) {
+ // expected
+ }
+ assertTrue(dataSource.isClosed());
+ dataSource = TestMediaDataSource.fromString(mInpPrefix + mInpMedia, false, true);
+
+ try {
+ extractor.setDataSource(dataSource);
+ fail("setDataSource succeeds with malformed media data source");
+ } catch (Exception e) {
+ // expected
+ }
+ } finally {
+ assertTrue(dataSource.isClosed());
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIfNullFDIsRejectedBySetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.setDataSource((FileDescriptor) null);
+ fail("setDataSource succeeds with null fd");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIfWriteOnlyAssetFDIsRejectedBySetDataSource() throws IOException {
+ File inpFile = File.createTempFile("ExtractorTestApisetDSAFD", ".in");
+ MediaExtractor extractor = new MediaExtractor();
+ try (ParcelFileDescriptor parcelFD = ParcelFileDescriptor
+ .open(inpFile, ParcelFileDescriptor.MODE_WRITE_ONLY);
+ AssetFileDescriptor afd = new AssetFileDescriptor(parcelFD, 0,
+ AssetFileDescriptor.UNKNOWN_LENGTH)) {
+ extractor.setDataSource(afd);
+ fail("setDataSource succeeds write only afd");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ inpFile.delete();
+ }
+
+ @Test
+ public void testIfWriteOnlyFDIsRejectedBySetDataSource() throws IOException {
+ MediaExtractor extractor = new MediaExtractor();
+ File inpFile = File.createTempFile("ExtractorTestApisetDSFD", ".in");
+ try (FileOutputStream fOut = new FileOutputStream(inpFile)) {
+ extractor.setDataSource(fOut.getFD());
+ fail("setDataSource succeeds write only fd");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ inpFile.delete();
+ }
+
+ @Test
+ public void testIfNullMediaDataSourceIsRejectedBySetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.setDataSource((MediaDataSource) null);
+ fail("setDataSource succeeds with null data source");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIfNullFileIsRejectedBySetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.setDataSource((String) null);
+ fail("setDataSource succeeds with null file path");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+
+ @Test
+ public void testIfNullAssetFDIsRejectedBySetDataSource() {
+ MediaExtractor extractor = new MediaExtractor();
+ try {
+ extractor.setDataSource((AssetFileDescriptor) null);
+ fail("setDataSource succeeds with null asset fd");
+ } catch (Exception e) {
+ // expected
+ } finally {
+ extractor.release();
+ }
+ }
+ }
+}
diff --git a/tests/tests/media/res/raw/a_4_haptic.ogg b/tests/tests/media/res/raw/a_4_haptic.ogg
index e8287a8..3c94c8d 100644
--- a/tests/tests/media/res/raw/a_4_haptic.ogg
+++ b/tests/tests/media/res/raw/a_4_haptic.ogg
Binary files differ
diff --git a/tests/tests/media/res/raw/b_5_haptic.ogg b/tests/tests/media/res/raw/b_5_haptic.ogg
index cb4df5a..90ab939 100644
--- a/tests/tests/media/res/raw/b_5_haptic.ogg
+++ b/tests/tests/media/res/raw/b_5_haptic.ogg
Binary files differ
diff --git a/tests/tests/media/res/raw/c_sharp_5_haptic.ogg b/tests/tests/media/res/raw/c_sharp_5_haptic.ogg
index 7950552..57c46ea 100644
--- a/tests/tests/media/res/raw/c_sharp_5_haptic.ogg
+++ b/tests/tests/media/res/raw/c_sharp_5_haptic.ogg
Binary files differ
diff --git a/tests/tests/media/res/raw/e_5_haptic.ogg b/tests/tests/media/res/raw/e_5_haptic.ogg
index 7c7f4cd..98289dc 100644
--- a/tests/tests/media/res/raw/e_5_haptic.ogg
+++ b/tests/tests/media/res/raw/e_5_haptic.ogg
Binary files differ
diff --git a/tests/tests/media/res/raw/g_sharp_5_haptic.ogg b/tests/tests/media/res/raw/g_sharp_5_haptic.ogg
index ecf9439..6fb7388 100644
--- a/tests/tests/media/res/raw/g_sharp_5_haptic.ogg
+++ b/tests/tests/media/res/raw/g_sharp_5_haptic.ogg
Binary files differ
diff --git a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
index 6a10e40..1b4d4e2 100644
--- a/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaPlayerTest.java
@@ -1255,49 +1255,6 @@
mMediaPlayer.stop();
}
- public void testMkvWithoutCueSeek() throws Exception {
- if (!checkLoadResource(
- R.raw.video_1280x720_mkv_h265_500kbps_25fps_aac_stereo_128kbps_44100hz_withoutcues)) {
- return; // skip
- }
-
- mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
- @Override
- public void onSeekComplete(MediaPlayer mp) {
- mOnSeekCompleteCalled.signal();
- }
- });
- mMediaPlayer.setDisplay(mActivity.getSurfaceHolder());
- mMediaPlayer.prepare();
- mOnSeekCompleteCalled.reset();
- mMediaPlayer.start();
-
- final int seekPosMs = 3000;
- final int syncTime2Ms = 5960;
-
- int cp = runSeekMode(MediaPlayer.SEEK_CLOSEST, seekPosMs);
- Log.d(LOG_TAG, "runSeekMode SEEK_CLOSEST cp: " + cp);
- assertTrue("MediaPlayer seek fail with SEEK_CLOSEST mode.",
- cp > seekPosMs && cp < syncTime2Ms);
-
- cp = runSeekMode(MediaPlayer.SEEK_PREVIOUS_SYNC, seekPosMs);
- Log.d(LOG_TAG, "runSeekMode SEEK_PREVIOUS_SYNC cp: " + cp);
- assertTrue("MediaPlayer seek fail with SEEK_PREVIOUS_SYNC mode.",
- cp >= syncTime2Ms);
-
- cp = runSeekMode(MediaPlayer.SEEK_NEXT_SYNC, seekPosMs);
- Log.d(LOG_TAG, "runSeekMode SEEK_NEXT_SYNC cp: " + cp);
- assertTrue("MediaPlayer seek fail with SEEK_NEXT_SYNC mode.",
- cp >= syncTime2Ms);
-
- cp = runSeekMode(MediaPlayer.SEEK_CLOSEST_SYNC, seekPosMs);
- Log.d(LOG_TAG, "runSeekMode SEEK_CLOSEST_SYNC cp: " + cp);
- assertTrue("MediaPlayer seek fail with SEEK_CLOSEST_SYNC mode.",
- cp >= syncTime2Ms);
-
- mMediaPlayer.stop();
- }
-
public void testSeekModes() throws Exception {
// This clip has 2 I frames at 66687us and 4299687us.
if (!checkLoadResource(
diff --git a/tests/tests/telecom/src/android/telecom/cts/CallDetailsTest.java b/tests/tests/telecom/src/android/telecom/cts/CallDetailsTest.java
index 6b1444a..a6fe2bf 100644
--- a/tests/tests/telecom/src/android/telecom/cts/CallDetailsTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/CallDetailsTest.java
@@ -283,8 +283,8 @@
mConnection.setConnectionProperties(Connection.PROPERTY_IS_RTT);
assertCallProperties(mCall, Call.Details.PROPERTY_RTT);
- mConnection.setConnectionProperties(Connection.PROPERTY_ASSISTED_DIALING_USED);
- assertCallProperties(mCall, Call.Details.PROPERTY_ASSISTED_DIALING_USED);
+ mConnection.setConnectionProperties(Connection.PROPERTY_ASSISTED_DIALING);
+ assertCallProperties(mCall, Call.Details.PROPERTY_ASSISTED_DIALING);
mConnection.setConnectionProperties(Connection.PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL);
assertCallProperties(mCall, Call.Details.PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL);
diff --git a/tests/tests/telecom/src/android/telecom/cts/ConferenceTest.java b/tests/tests/telecom/src/android/telecom/cts/ConferenceTest.java
index 771f09bc..cb0d769 100644
--- a/tests/tests/telecom/src/android/telecom/cts/ConferenceTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/ConferenceTest.java
@@ -199,7 +199,7 @@
// Consumed internally in Telecom; no verifiable manner to see the end point of this data
// through public APIs.
mConferenceObject.setConnectionTime(0);
- mConferenceObject.setConnectionStartElapsedRealTime(0);
+ mConferenceObject.setConnectionStartElapsedRealtimeMillis(0);
Bundle extras = new Bundle();
extras.putString(TelecomManager.EXTRA_CALL_DISCONNECT_MESSAGE, "Test");
diff --git a/tests/tests/telecom/src/android/telecom/cts/ConnectionServiceTest.java b/tests/tests/telecom/src/android/telecom/cts/ConnectionServiceTest.java
index e0bb29e..08931eb 100755
--- a/tests/tests/telecom/src/android/telecom/cts/ConnectionServiceTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/ConnectionServiceTest.java
@@ -272,8 +272,8 @@
connection.setCallDirection(Call.Details.DIRECTION_OUTGOING);
connection.setConnectTimeMillis(1000L);
assertEquals(1000L, connection.getConnectTimeMillis());
- connection.setConnectionStartElapsedRealTime(100L);
- assertEquals(100L, connection.getConnectElapsedTimeMillis());
+ connection.setConnectionStartElapsedRealtimeMillis(100L);
+ assertEquals(100L, connection.getConnectionStartElapsedRealtimeMillis());
CtsConnectionService.addExistingConnectionToTelecom(TEST_PHONE_ACCOUNT_HANDLE, connection);
assertNumCalls(mInCallCallbacks.getService(), 2);
diff --git a/tests/tests/telecom/src/android/telecom/cts/DefaultDialerOperationsTest.java b/tests/tests/telecom/src/android/telecom/cts/DefaultDialerOperationsTest.java
index ec0a280..9bdf6f7 100644
--- a/tests/tests/telecom/src/android/telecom/cts/DefaultDialerOperationsTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/DefaultDialerOperationsTest.java
@@ -97,7 +97,7 @@
assertEquals(TestUtils.PACKAGE, mTelecomManager.getDefaultDialerPackage());
assertEquals(mTelecomManager.getDefaultDialerPackage(),
ShellIdentityUtils.invokeMethodWithShellPermissions(mTelecomManager,
- tm -> tm.getDefaultDialerPackage(Process.myUserHandle().getIdentifier())));
+ tm -> tm.getDefaultDialerPackage(Process.myUserHandle())));
}
/** Default dialer should be the default package handling ACTION_DIAL. */
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java b/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java
index ab6937f..e1589b2 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/CellInfoTest.java
@@ -324,8 +324,9 @@
assertTrue("Invalid timestamp in CellInfo: " + info.getTimeStamp(),
info.getTimeStamp() > 0 && info.getTimeStamp() < Long.MAX_VALUE);
- assertTrue("Invalid timestamp in CellInfo: " + info.getTimestampNanos(),
- info.getTimestampNanos() > 0 && info.getTimestampNanos() < Long.MAX_VALUE);
+ long curTime = SystemClock.elapsedRealtime();
+ assertTrue("Invalid timestamp in CellInfo: " + info.getTimestampMillis(),
+ info.getTimestampMillis() > 0 && info.getTimestampMillis() <= curTime);
if (mRadioHalVersion >= RADIO_HAL_VERSION_1_2) {
// In HAL 1.2 or greater, the connection status must be reported
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/NetworkRegistrationInfoTest.java b/tests/tests/telephony/current/src/android/telephony/cts/NetworkRegistrationInfoTest.java
index 427ede3..a5e75c5 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/NetworkRegistrationInfoTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/NetworkRegistrationInfoTest.java
@@ -15,17 +15,18 @@
*/
package android.telephony.cts;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotSame;
-
import android.telephony.AccessNetworkConstants;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.TelephonyManager;
-import java.util.Arrays;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
import org.junit.Test;
+import java.util.Arrays;
+
public class NetworkRegistrationInfoTest {
@Test
@@ -87,6 +88,30 @@
}
@Test
+ public void testGetEmergencyServices() {
+ NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
+ .setAvailableServices(Arrays.asList(NetworkRegistrationInfo.SERVICE_TYPE_EMERGENCY,
+ NetworkRegistrationInfo.SERVICE_TYPE_VOICE))
+ .build();
+ assertEquals(Arrays.asList(NetworkRegistrationInfo.SERVICE_TYPE_EMERGENCY,
+ NetworkRegistrationInfo.SERVICE_TYPE_VOICE), nri.getAvailableServices());
+ }
+
+ /**
+ * Basic test to ensure {@link NetworkRegistrationInfo#isSearching()} does not throw any
+ * exception.
+ */
+ @Test
+ public void testNetworkRegistrationInfoIsSearching() {
+ NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
+ .setRegistrationState(
+ NetworkRegistrationInfo.REGISTRATION_STATE_NOT_REGISTERED_SEARCHING)
+ .build();
+ assertTrue(nri.isSearching());
+ }
+
+
+ @Test
public void testGetDomain() {
NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
.setDomain(NetworkRegistrationInfo.DOMAIN_CS)
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/SignalStrengthTest.java b/tests/tests/telephony/current/src/android/telephony/cts/SignalStrengthTest.java
index 3077bbb..0849b64 100644
--- a/tests/tests/telephony/current/src/android/telephony/cts/SignalStrengthTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/SignalStrengthTest.java
@@ -38,13 +38,13 @@
import android.telephony.TelephonyManager;
import android.util.Log;
+import org.junit.Before;
+import org.junit.Test;
+
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.junit.Before;
-import org.junit.Test;
-
/**
* Test SignalStrength to ensure that valid data is being reported and that invalid data is
* not reported.
@@ -81,10 +81,10 @@
SignalStrength ss = mTm.getSignalStrength();
assertNotNull("TelephonyManager.getSignalStrength() returned NULL!", ss);
- long curTime = SystemClock.elapsedRealtimeNanos();
- assertTrue("Invalid timestamp in SignalStrength: " + ss.getTimestampNanos(),
- ss.getTimestampNanos() > 0 && ss.getTimestampNanos() < curTime);
- Log.d(TAG, "Timestamp of SignalStrength: " + Long.toString(ss.getTimestampNanos()));
+ long curTime = SystemClock.elapsedRealtime();
+ assertTrue("Invalid timestamp in SignalStrength: " + ss.getTimestampMillis(),
+ ss.getTimestampMillis() > 0 && ss.getTimestampMillis() <= curTime);
+ Log.d(TAG, "Timestamp of SignalStrength: " + Long.toString(ss.getTimestampMillis()));
List<CellSignalStrength> signalStrengths = ss.getCellSignalStrengths();