Merge "Crash theme host test immediately on custom density, font scale" into oreo-mr1-cts-dev
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index bcb5085..508c192 100755
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -3673,6 +3673,10 @@
<string name="uapButtonsBtnDLbl">Button D - voice assist</string>
<string name="uapButtonsRecognized">Recognized</string>
<string name="uapButtonsNotRecognized">Not Recognized</string>
+ <string name="uapButtonsDisableAssistantTitle">Disable Google Assistant</string>
+ <string name="uapButtonsDisableAssistant">For this test to succeed it may be necessary
+ to disable the Google Assistant (Settings / Google / Search / Google Assistant Settings /
+ Devices / <device name> / Google Assistant)</string>
<!-- Audio general text -->
<string name="audio_general_headset_port_exists">Does this device have a headset port?</string>
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralActivity.java
index 7fdf403..140757d 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralActivity.java
@@ -44,6 +44,8 @@
protected AudioDeviceInfo mOutputDevInfo;
protected AudioDeviceInfo mInputDevInfo;
+ protected final boolean mIsMandatedRequired;
+
// This will be overriden...
protected int mSystemSampleRate = 48000;
@@ -53,9 +55,12 @@
private TextView mPeripheralNameTx;
- public USBAudioPeripheralActivity() {
+ public USBAudioPeripheralActivity(boolean mandatedRequired) {
super();
+ // determine if to show "UNSUPPORTED" if the mandated peripheral is required.
+ mIsMandatedRequired = mandatedRequired;
+
mProfileManager.loadProfiles();
}
@@ -99,7 +104,7 @@
productName = mInputDevInfo.getProductName().toString();
}
String ctrlText;
- if (mSelectedProfile == null) {
+ if (mSelectedProfile == null && mIsMandatedRequired) {
ctrlText = productName + " - UNSUPPORTED";
} else {
ctrlText = productName;
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralAttributesActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralAttributesActivity.java
index 07a99da..ef67708 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralAttributesActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralAttributesActivity.java
@@ -32,6 +32,10 @@
private TextView mTestStatusTx;
+ public USBAudioPeripheralAttributesActivity() {
+ super(true); // Mandated peripheral is required
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralButtonsActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralButtonsActivity.java
index 2149ed7..57d823e 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralButtonsActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralButtonsActivity.java
@@ -16,6 +16,8 @@
package com.android.cts.verifier.audio;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Bundle;
@@ -45,6 +47,23 @@
private TextView mBtnBStatusTxt;
private TextView mBtnCStatusTxt;
+ public USBAudioPeripheralButtonsActivity() {
+ super(false); // Mandated peripheral is NOT required
+ }
+
+ private void showDisableAssistantDialog() {
+ AlertDialog.Builder builder =
+ new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog_Alert);
+ builder.setTitle(getResources().getString(R.string.uapButtonsDisableAssistantTitle));
+ builder.setMessage(getResources().getString(R.string.uapButtonsDisableAssistant));
+ builder.setPositiveButton(android.R.string.yes,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {}
+ });
+ builder.setIcon(android.R.drawable.ic_dialog_alert);
+ builder.show();
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -62,12 +81,12 @@
setPassFailButtonClickListeners();
setInfoResources(R.string.usbaudio_buttons_test, R.string.usbaudio_buttons_info, -1);
+
+ showDisableAssistantDialog();
}
private void showButtonsState() {
- int ctrlColor = mIsPeripheralAttached && mSelectedProfile != null
- ? Color.WHITE
- : Color.GRAY;
+ int ctrlColor = mIsPeripheralAttached ? Color.WHITE : Color.GRAY;
mBtnALabelTxt.setTextColor(ctrlColor);
mBtnAStatusTxt.setTextColor(ctrlColor);
mBtnBLabelTxt.setTextColor(ctrlColor);
@@ -81,26 +100,13 @@
mHasBtnB ? R.string.uapButtonsRecognized : R.string.uapButtonsNotRecognized));
mBtnCStatusTxt.setText(getString(
mHasBtnC ? R.string.uapButtonsRecognized : R.string.uapButtonsNotRecognized));
+
+ calculateMatch();
}
private void calculateMatch() {
- if (mIsPeripheralAttached && mSelectedProfile != null) {
- ProfileButtonAttributes mButtonAttributes = mSelectedProfile.getButtonAttributes();
- boolean match = mButtonAttributes != null;
- boolean interceptedVolume = getResources().getBoolean(Resources.getSystem()
- .getIdentifier("config_handleVolumeKeysInWindowManager", "bool", "android"));
- if (match && mButtonAttributes.mHasBtnA != mHasBtnA) {
- match = false;
- }
- if (!interceptedVolume) {
- if (match && mButtonAttributes.mHasBtnB != mHasBtnB) {
- match = false;
- }
- if (match && mButtonAttributes.mHasBtnC != mHasBtnC) {
- match = false;
- }
- }
- Log.i(TAG, "match:" + match);
+ if (mIsPeripheralAttached) {
+ boolean match = mHasBtnA && mHasBtnB && mHasBtnC;
getPassButton().setEnabled(match);
} else {
getPassButton().setEnabled(false);
@@ -109,29 +115,27 @@
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
- Log.i(TAG, "onKeyDown(" + keyCode + ")");
- if (mSelectedProfile != null) {
- switch (keyCode) {
- // Function A control event
- case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
- mHasBtnA = true;
- break;
-
- // Function B control event
- case KeyEvent.KEYCODE_VOLUME_UP:
- mHasBtnB = true;
- break;
-
- // Function C control event
- case KeyEvent.KEYCODE_VOLUME_DOWN:
- mHasBtnC = true;
- break;
- }
-
- showButtonsState();
- calculateMatch();
+ // Log.i(TAG, "onKeyDown(" + keyCode + ")");
+ switch (keyCode) {
+ // Function A control event
+ case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+ mHasBtnA = true;
+ break;
+
+ // Function B control event
+ case KeyEvent.KEYCODE_VOLUME_UP:
+ mHasBtnB = true;
+ break;
+
+ // Function C control event
+ case KeyEvent.KEYCODE_VOLUME_DOWN:
+ mHasBtnC = true;
+ break;
}
+ showButtonsState();
+ calculateMatch();
+
return super.onKeyDown(keyCode, event);
}
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayActivity.java
index 640d489..de9016a 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayActivity.java
@@ -31,6 +31,10 @@
private Button mPlayBtn;
private LocalClickListener mButtonClickListener = new LocalClickListener();
+ public USBAudioPeripheralPlayActivity() {
+ super(false); // Mandated peripheral is NOT required
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -52,8 +56,8 @@
// USBAudioPeripheralActivity
// Headset not publicly available, violates CTS Verifier additional equipment guidelines.
public void updateConnectStatus() {
- mPlayBtn.setEnabled(mIsPeripheralAttached && mSelectedProfile != null);
- getPassButton().setEnabled(mSelectedProfile != null && mOutputDevInfo != null);
+ mPlayBtn.setEnabled(mIsPeripheralAttached);
+ getPassButton().setEnabled(mIsPeripheralAttached);
}
public class LocalClickListener implements View.OnClickListener {
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayerActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayerActivity.java
index 33417d1..fc666aa 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayerActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralPlayerActivity.java
@@ -41,6 +41,10 @@
private static final int WAVBUFF_SIZE_IN_SAMPLES = 2048;
+ public USBAudioPeripheralPlayerActivity(boolean requiresMandatePeripheral) {
+ super(requiresMandatePeripheral); // Mandated peripheral is NOT required
+ }
+
protected void setupPlayer() {
mSystemBufferSize =
StreamPlayer.calcNumBurstFrames((AudioManager)getSystemService(Context.AUDIO_SERVICE));
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java
index 5772461..22a2678 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/USBAudioPeripheralRecordActivity.java
@@ -49,6 +49,10 @@
private WaveScopeView mWaveView = null;
+ public USBAudioPeripheralRecordActivity() {
+ super(false); // Mandated peripheral is NOT required
+ }
+
private void connectWaveView() {
// Log.i(TAG, "connectWaveView() rec:" + (mRecorder != null));
if (mRecorder != null) {
@@ -136,9 +140,9 @@
// USBAudioPeripheralActivity
//
public void updateConnectStatus() {
- mRecordBtn.setEnabled(mIsPeripheralAttached && mSelectedProfile != null);
- mRecordLoopbackBtn.setEnabled(mIsPeripheralAttached && mSelectedProfile != null);
- getPassButton().setEnabled(mSelectedProfile != null && mOutputDevInfo != null);
+ mRecordBtn.setEnabled(mIsPeripheralAttached);
+ mRecordLoopbackBtn.setEnabled(mIsPeripheralAttached);
+ getPassButton().setEnabled(mIsPeripheralAttached);
}
public class LocalClickListener implements View.OnClickListener {
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/peripheralprofile/ProfileManager.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/peripheralprofile/ProfileManager.java
index 7d3017c..1b58f40 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/peripheralprofile/ProfileManager.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/peripheralprofile/ProfileManager.java
@@ -46,7 +46,11 @@
private static final String mBuiltInprofiles =
"<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>" +
- "<ProfileList Version=\"1.0.0\">" +
+ "<ProfileList Version=\"1.0.0\">" +
+ "<PeripheralProfile ProfileName=\"AudioBox USB 96\" ProfileDescription=\"PreSonus AudioBox USB 96\" ProductName=\"USB-Audio - AudioBox USB 96\">" +
+ "<OutputDevInfo ChanCounts=\"2\" ChanPosMasks=\"12\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000\"/>" +
+ "<InputDevInfo ChanCounts=\"2\" ChanPosMasks=\"12\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000\"/>" +
+ "</PeripheralProfile>" +
"<PeripheralProfile ProfileName=\"Audio Interface\" ProfileDescription=\"Presonus AudioVox 44VSL\" ProductName=\"USB-Audio - AudioBox 44 VSL\">" +
"<OutputDevInfo ChanCounts=\"2,4\" ChanPosMasks=\"12\" ChanIndexMasks=\"15\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000\" />" +
"<InputDevInfo ChanCounts=\"1,2,4\" ChanPosMasks=\"12,16\" ChanIndexMasks=\"15\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000\" />" +
@@ -59,6 +63,18 @@
"<OutputDevInfo ChanCounts=\"2\" ChanPosMasks=\"12\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000\" />" +
"<InputDevInfo ChanCounts=\"1,2\" ChanPosMasks=\"12,16\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000\" />" +
"</PeripheralProfile>" +
+ "<PeripheralProfile ProfileName=\"Focusrite 2i4\" ProfileDescription=\"Focusrite Scarlett 2i4\" ProductName=\"USB-Audio - Scarlett 2i4 USB\">" +
+ "<OutputDevInfo ChanCounts=\"2,3,4\" ChanPosMasks=\"12\" ChanIndexMasks=\"3,7,15\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000\"/>" +
+ "<InputDevInfo ChanCounts=\"1,2\" ChanPosMasks=\"12,16\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000\"/>" +
+ "</PeripheralProfile>" +
+ "<PeripheralProfile ProfileName=\"Behringer UMC204HD\" ProfileDescription=\"Behringer UMC204HD\" ProductName=\"USB-Audio - UMC204HD 192k\">" +
+ "<OutputDevInfo ChanCounts=\"2,4\" ChanPosMasks=\"12\" ChanIndexMasks=\"15\" Encodings=\"2,4\" SampleRates=\"44100,48000,88200,96000,176400,192000\"/>" +
+ "<InputDevInfo ChanCounts=\"2\" ChanPosMasks=\"12\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000,88200,96000,176400,192000\"/>" +
+ "</PeripheralProfile>" +
+ "<PeripheralProfile ProfileName=\"Roland Rubix24\" ProfileDescription=\"Roland Rubix24\" ProductName=\"USB-Audio - Rubix24\">" +
+ "<OutputDevInfo ChanCounts=\"2,4\" ChanPosMasks=\"12\" ChanIndexMasks=\"15\" Encodings=\"4\" SampleRates=\"44100,48000,96000,192000\"/>" +
+ "<InputDevInfo ChanCounts=\"2\" ChanPosMasks=\"12\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"44100,48000,96000,192000\"/>" +
+ "</PeripheralProfile>" +
"<PeripheralProfile ProfileName=\"Pixel USB-C Dongle + Wired Analog Headset\" ProfileDescription=\"Reference USB Dongle\" ProductName=\"USB-Audio - USB-C to 3.5mm-Headphone Adapte\">" +
"<OutputDevInfo ChanCounts=\"2\" ChanPosMasks=\"12\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"48000\" />" +
"<InputDevInfo ChanCounts=\"1,2\" ChanPosMasks=\"12,16\" ChanIndexMasks=\"3\" Encodings=\"4\" SampleRates=\"48000\" />" +
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/PermissionsHostTest.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/PermissionsHostTest.java
index caabeb5..620e881 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/PermissionsHostTest.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/PermissionsHostTest.java
@@ -17,6 +17,7 @@
package android.appsecurity.cts;
import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
+import com.android.compatibility.common.util.CddTest;
import com.android.tradefed.build.IBuildInfo;
import com.android.tradefed.device.DeviceNotAvailableException;
import com.android.tradefed.testtype.DeviceTestCase;
@@ -167,6 +168,7 @@
"testGranted");
}
+ @CddTest(requirement="9.1/C-0-3")
public void testInteractiveGrant23() throws Exception {
assertNull(getDevice().installPackage(mBuildHelper.getTestFile(APK_23), false, false));
runDeviceTests(USES_PERMISSION_PKG, "com.android.cts.usepermission.UsePermissionTest23",
diff --git a/hostsidetests/appsecurity/test-apps/EncryptionApp/src/com/android/cts/encryptionapp/EncryptionAppTest.java b/hostsidetests/appsecurity/test-apps/EncryptionApp/src/com/android/cts/encryptionapp/EncryptionAppTest.java
index 2eccba5..a7d7c8d 100644
--- a/hostsidetests/appsecurity/test-apps/EncryptionApp/src/com/android/cts/encryptionapp/EncryptionAppTest.java
+++ b/hostsidetests/appsecurity/test-apps/EncryptionApp/src/com/android/cts/encryptionapp/EncryptionAppTest.java
@@ -177,6 +177,9 @@
mDevice.pressMenu();
mDevice.waitForIdle();
enterTestPin();
+ mDevice.waitForIdle();
+ mDevice.pressHome();
+ mDevice.waitForIdle();
}
public void assertLocked() throws Exception {
diff --git a/tests/ProcessTest/Android.mk b/tests/ProcessTest/Android.mk
index 2feff2e..63ee043 100644
--- a/tests/ProcessTest/Android.mk
+++ b/tests/ProcessTest/Android.mk
@@ -24,7 +24,7 @@
LOCAL_SRC_FILES := $(call all-subdir-java-files)
-LOCAL_STATIC_JAVA_LIBRARIES := legacy-android-test junit
+LOCAL_STATIC_JAVA_LIBRARIES := legacy-android-test junit compatibility-device-util
LOCAL_PACKAGE_NAME := ProcessTests
diff --git a/tests/signature/intent-check/DynamicConfig.xml b/tests/signature/intent-check/DynamicConfig.xml
index 5f0fcac..3424d73 100644
--- a/tests/signature/intent-check/DynamicConfig.xml
+++ b/tests/signature/intent-check/DynamicConfig.xml
@@ -19,6 +19,8 @@
Bug: 36977779 android.intent.action.MASTER_CLEAR
Bug: 38182465 android.intent.action.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED
Bug: 70315695 android.intent.action.HDMI_PLUGGED
+ Bug: 115848568 android.intent.action.ACTION_AIRPLANE_MODE_CHANGED
+ Will be removed after v17 of CS.apk is released.
-->
<dynamicConfig>
<entry key ="intent_whitelist">
@@ -26,5 +28,6 @@
<value>android.intent.action.QUICKBOOT_POWERON</value>
<value>android.intent.action.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED</value>
<value>android.intent.action.HDMI_PLUGGED</value>
+ <value>android.intent.action.ACTION_AIRPLANE_MODE_CHANGED</value>
</entry>
</dynamicConfig>
diff --git a/tests/tests/jni/src/android/jni/cts/JniStaticTest.java b/tests/tests/jni/src/android/jni/cts/JniStaticTest.java
index e351d93..2fde363 100644
--- a/tests/tests/jni/src/android/jni/cts/JniStaticTest.java
+++ b/tests/tests/jni/src/android/jni/cts/JniStaticTest.java
@@ -38,6 +38,7 @@
* Test library accessibility. Internal platform libraries should not
* be accessible from the jni code.
*/
+ @CddTest(requirement="3.3.1/C-0-7,C-0-9,C-0-10")
public void test_linker_namespaces() throws IOException {
String error = LinkerNamespacesHelper.runAccessibilityTest();
if (error != null) {
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
index 87239b4..90540f4 100644
--- a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
@@ -838,10 +838,9 @@
TestLocalOnlyHotspotCallback callback = startLocalOnlyHotspot();
- // at this point, wifi should be off
- assertFalse(mWifiManager.isWifiEnabled());
-
stopLocalOnlyHotspot(callback, wifiEnabled);
+
+ // wifi should either stay on, or come back on
assertEquals(wifiEnabled, mWifiManager.isWifiEnabled());
}
@@ -853,7 +852,7 @@
* tethering is started.
* Note: Location mode must be enabled for this test.
*/
- public void testSetWifiEnabledByAppDoesNotStopHotspot() {
+ public void testSetWifiEnabledByAppDoesNotStopHotspot() throws Exception {
if (!WifiFeature.isWifiSupported(getContext())) {
// skip the test if WiFi is not supported
return;
@@ -865,15 +864,18 @@
boolean wifiEnabled = mWifiManager.isWifiEnabled();
+ if (wifiEnabled) {
+ // disable wifi so we have something to turn on (some devices may be able to run
+ // simultaneous modes)
+ setWifiEnabled(false);
+ }
+
TestLocalOnlyHotspotCallback callback = startLocalOnlyHotspot();
- // at this point, wifi should be off
- assertFalse(mWifiManager.isWifiEnabled());
// now we should fail to turn on wifi
assertFalse(mWifiManager.setWifiEnabled(true));
stopLocalOnlyHotspot(callback, wifiEnabled);
- assertEquals(wifiEnabled, mWifiManager.isWifiEnabled());
}
/**
@@ -897,9 +899,6 @@
TestLocalOnlyHotspotCallback callback = startLocalOnlyHotspot();
- // at this point, wifi should be off
- assertFalse(mWifiManager.isWifiEnabled());
-
// now make a second request - this should fail.
TestLocalOnlyHotspotCallback callback2 = new TestLocalOnlyHotspotCallback(mLOHSLock);
try {
@@ -908,9 +907,12 @@
Log.d(TAG, "Caught the IllegalStateException we expected: called startLOHS twice");
caughtException = true;
}
+ if (!caughtException) {
+ // second start did not fail, should clean up the hotspot.
+ stopLocalOnlyHotspot(callback2, wifiEnabled);
+ }
assertTrue(caughtException);
stopLocalOnlyHotspot(callback, wifiEnabled);
- assertEquals(wifiEnabled, mWifiManager.isWifiEnabled());
}
}
diff --git a/tests/tests/os/src/android/os/cts/FileAccessPermissionTest.java b/tests/tests/os/src/android/os/cts/FileAccessPermissionTest.java
index cd89e3d..98df29b 100644
--- a/tests/tests/os/src/android/os/cts/FileAccessPermissionTest.java
+++ b/tests/tests/os/src/android/os/cts/FileAccessPermissionTest.java
@@ -19,6 +19,8 @@
import android.os.Environment;
import android.test.AndroidTestCase;
+import com.android.compatibility.common.util.CddTest;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
@@ -44,6 +46,7 @@
*
* TODO: Combine this file with {@link android.permission.cts.FileSystemPermissionTest}
*/
+@CddTest(requirement="9.3/C-0-1")
public class FileAccessPermissionTest extends AndroidTestCase {
/**
diff --git a/tests/tests/permission/Android.mk b/tests/tests/permission/Android.mk
index b24774f..e86a56d 100644
--- a/tests/tests/permission/Android.mk
+++ b/tests/tests/permission/Android.mk
@@ -33,7 +33,8 @@
ctstestrunner \
guava \
android-ex-camera2 \
- legacy-android-test
+ legacy-android-test \
+ compatibility-device-util
LOCAL_JNI_SHARED_LIBRARIES := libctspermission_jni libnativehelper_compat_libc++
diff --git a/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java b/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java
index e40d7cb..140557f 100644
--- a/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java
@@ -27,6 +27,8 @@
import android.test.AndroidTestCase;
import android.util.Log;
+import com.android.compatibility.common.util.CddTest;
+
import com.android.ex.camera2.blocking.BlockingCameraManager;
import com.android.ex.camera2.blocking.BlockingStateCallback;
@@ -34,6 +36,7 @@
* Tests for Camera2 API related Permissions. Currently, this means
* android.permission.CAMERA.
*/
+@CddTest(requirement="3.2.1/C-0-1,9.1/C-0-1")
public class Camera2PermissionTest extends AndroidTestCase {
private static final String TAG = "CameraDeviceTest";
private static final boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
diff --git a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
index bb9f868..25c686b 100644
--- a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
@@ -28,6 +28,8 @@
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.LargeTest;
+import com.android.compatibility.common.util.CddTest;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileDescriptor;
@@ -63,6 +65,7 @@
*
* TODO: Combine this file with {@link android.os.cts.FileAccessPermissionTest}
*/
+@CddTest(requirement="9.3/C-0-1")
public class FileSystemPermissionTest extends AndroidTestCase {
@MediumTest
diff --git a/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java b/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java
index f3c5ae8..b695840 100644
--- a/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NoAudioPermissionTest.java
@@ -21,9 +21,12 @@
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import com.android.compatibility.common.util.CddTest;
+
/**
* Verify the audio related operations require specific permissions.
*/
+@CddTest(requirement="3.2.1/C-0-1,9.1/C-0-1")
public class NoAudioPermissionTest extends AndroidTestCase {
private AudioManager mAudioManager;
private static final int MODE_COUNT = 3;
diff --git a/tests/tests/permission/src/android/permission/cts/NoBroadcastPackageRemovedPermissionTest.java b/tests/tests/permission/src/android/permission/cts/NoBroadcastPackageRemovedPermissionTest.java
index 5630c5b..b0223a8 100644
--- a/tests/tests/permission/src/android/permission/cts/NoBroadcastPackageRemovedPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NoBroadcastPackageRemovedPermissionTest.java
@@ -21,9 +21,12 @@
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import com.android.compatibility.common.util.CddTest;
+
/**
* Verify Context related methods without specific BROADCAST series permissions.
*/
+@CddTest(requirement="3.2.1/C-0-1,9.1/C-0-1")
public class NoBroadcastPackageRemovedPermissionTest extends AndroidTestCase {
private static final String TEST_RECEIVER_PERMISSION = "receiverPermission";
diff --git a/tests/tests/permission/src/android/permission/cts/NoLocationPermissionTest.java b/tests/tests/permission/src/android/permission/cts/NoLocationPermissionTest.java
index 8fd4a59..9b2ec15 100644
--- a/tests/tests/permission/src/android/permission/cts/NoLocationPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NoLocationPermissionTest.java
@@ -31,11 +31,14 @@
import android.test.suitebuilder.annotation.SmallTest;
import android.test.UiThreadTest;
+import com.android.compatibility.common.util.CddTest;
+
import java.util.List;
/**
* Verify the location access without specific permissions.
*/
+@CddTest(requirement="3.2.1/C-0-1,9/C-0-1,9.1/C-0-1")
public class NoLocationPermissionTest extends InstrumentationTestCase {
private static final String TEST_PROVIDER_NAME = "testProvider";
@@ -127,7 +130,7 @@
/**
* Helper method to verify that calling requestLocationUpdates with given
* provider throws SecurityException.
- *
+ *
* @param provider the String provider name.
*/
private void checkRequestLocationUpdates(String provider) {
@@ -198,7 +201,7 @@
/**
* Helper method to verify that calling getLastKnownLocation with given
* provider throws SecurityException.
- *
+ *
* @param provider the String provider name.
*/
private void checkGetLastKnownLocation(String provider) {
@@ -241,7 +244,7 @@
/**
* Helper method to verify that calling getProvider with given provider
* throws SecurityException.
- *
+ *
* @param provider the String provider name.
*/
private void checkGetProvider(String provider) {
diff --git a/tests/tests/permission/src/android/permission/cts/NoReadLogsPermissionTest.java b/tests/tests/permission/src/android/permission/cts/NoReadLogsPermissionTest.java
index 7b3799d..0ab61f5 100644
--- a/tests/tests/permission/src/android/permission/cts/NoReadLogsPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NoReadLogsPermissionTest.java
@@ -24,6 +24,8 @@
import android.test.suitebuilder.annotation.MediumTest;
import android.util.Log;
+import com.android.compatibility.common.util.CddTest;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
@@ -32,6 +34,7 @@
/**
* Verify the read system log require specific permissions.
*/
+@CddTest(requirement="3.2.1/C-0-1,9/C-0-1,9.1/C-0-1")
public class NoReadLogsPermissionTest extends AndroidTestCase {
/**
* Verify that we'll only get our logs without the READ_LOGS permission.
diff --git a/tests/tests/permission/src/android/permission/cts/NoWifiStatePermissionTest.java b/tests/tests/permission/src/android/permission/cts/NoWifiStatePermissionTest.java
index 3c7b80e..122ed0f 100644
--- a/tests/tests/permission/src/android/permission/cts/NoWifiStatePermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/NoWifiStatePermissionTest.java
@@ -22,9 +22,12 @@
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import com.android.compatibility.common.util.CddTest;
+
/**
* Verify WifiManager related methods without specific Wifi state permissions.
*/
+@CddTest(requirement="3.2.1/C-0-1,9/C-0-1,9.1/C-0-1")
@SmallTest
public class NoWifiStatePermissionTest extends AndroidTestCase {
private static final int TEST_NET_ID = 1;
diff --git a/tests/tests/permission/src/android/permission/cts/PackageManagerRequiringPermissionsTest.java b/tests/tests/permission/src/android/permission/cts/PackageManagerRequiringPermissionsTest.java
index 2bfef62..764513c 100644
--- a/tests/tests/permission/src/android/permission/cts/PackageManagerRequiringPermissionsTest.java
+++ b/tests/tests/permission/src/android/permission/cts/PackageManagerRequiringPermissionsTest.java
@@ -22,9 +22,12 @@
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import com.android.compatibility.common.util.CddTest;
+
/**
* Verify the PackageManager related operations require specific permissions.
*/
+@CddTest(requirement="3.2.1/C-0-1,9/C-0-1,9.1/C-0-1")
@SmallTest
public class PackageManagerRequiringPermissionsTest extends AndroidTestCase {
// Must be a known-present application package other than the one hosting this class
diff --git a/tests/tests/permission/src/android/permission/cts/TvPermissionTest.java b/tests/tests/permission/src/android/permission/cts/TvPermissionTest.java
index 4139059..4cd0257 100644
--- a/tests/tests/permission/src/android/permission/cts/TvPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/TvPermissionTest.java
@@ -22,9 +22,12 @@
import android.net.Uri;
import android.test.AndroidTestCase;
+import com.android.compatibility.common.util.CddTest;
+
/**
* Tests for TV API related permissions.
*/
+@CddTest(requirement="3.2/1/C-0-1,9/C-0-1,9.1/C-0-1")
public class TvPermissionTest extends AndroidTestCase {
private static final String DUMMY_INPUT_ID = "dummy";
diff --git a/tests/tests/permission2/src/android/permission2/cts/PermissionPolicyTest.java b/tests/tests/permission2/src/android/permission2/cts/PermissionPolicyTest.java
index 50a5bce..1852e99 100644
--- a/tests/tests/permission2/src/android/permission2/cts/PermissionPolicyTest.java
+++ b/tests/tests/permission2/src/android/permission2/cts/PermissionPolicyTest.java
@@ -31,6 +31,8 @@
import android.util.Log;
import android.util.Xml;
+import com.android.compatibility.common.util.CddTest;
+
import org.xmlpull.v1.XmlPullParser;
import java.io.InputStream;
@@ -64,6 +66,7 @@
private static final String ATTR_PERMISSION_GROUP = "permissionGroup";
private static final String ATTR_PROTECTION_LEVEL = "protectionLevel";
+ @CddTest(requirement="9.1/C-0-1")
public void testPlatformPermissionPolicyUnaltered() throws Exception {
Map<String, PermissionInfo> declaredPermissionsMap =
getPermissionsForPackage(getContext(), PLATFORM_PACKAGE_NAME);
diff --git a/tests/tests/permission2/src/android/permission2/cts/PrivappPermissionsTest.java b/tests/tests/permission2/src/android/permission2/cts/PrivappPermissionsTest.java
index ae26008..44436e9 100644
--- a/tests/tests/permission2/src/android/permission2/cts/PrivappPermissionsTest.java
+++ b/tests/tests/permission2/src/android/permission2/cts/PrivappPermissionsTest.java
@@ -17,6 +17,7 @@
package android.permission2.cts;
import com.android.compatibility.common.util.SystemUtil;
+import com.android.compatibility.common.util.CddTest;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
@@ -51,6 +52,7 @@
private static final String PLATFORM_PACKAGE_NAME = "android";
+ @CddTest(requirement="9.1/C-0-2")
public void testPrivappPermissionsEnforcement() throws Exception {
Set<String> platformPrivPermissions = new HashSet<>();
PackageManager pm = getContext().getPackageManager();
diff --git a/tests/tests/security/src/android/security/cts/CertificateTest.java b/tests/tests/security/src/android/security/cts/CertificateTest.java
index 07e9714..8805072 100644
--- a/tests/tests/security/src/android/security/cts/CertificateTest.java
+++ b/tests/tests/security/src/android/security/cts/CertificateTest.java
@@ -65,7 +65,7 @@
*
* <p>For questions, comments, and code reviews please contact security@android.com.
*/
- @CddTest(requirement="9.8.4/C-0-1")
+ @CddTest(requirement="9.8.4/C-0-1,C-0-2")
public void testNoAddedCertificates() throws Exception {
Set<String> expectedCertificates = new HashSet<String>(
Arrays.asList(CertificateData.CERTIFICATE_DATA));
@@ -74,6 +74,7 @@
assertEquals("Unknown CA certificates", Collections.EMPTY_SET, deviceCertificates);
}
+ @CddTest(requirement="9.8.4/C-0-1")
public void testBlockCertificates() throws Exception {
Set<String> blockCertificates = new HashSet<String>();
blockCertificates.add("C0:60:ED:44:CB:D8:81:BD:0E:F8:6C:0B:A2:87:DD:CF:81:67:47:8C");
diff --git a/tests/tests/security/src/android/security/cts/EncryptionTest.java b/tests/tests/security/src/android/security/cts/EncryptionTest.java
index 07b39de..f7b279a 100644
--- a/tests/tests/security/src/android/security/cts/EncryptionTest.java
+++ b/tests/tests/security/src/android/security/cts/EncryptionTest.java
@@ -16,6 +16,7 @@
package android.security.cts;
+import com.android.compatibility.common.util.CddTest;
import com.android.compatibility.common.util.PropertyUtil;
import android.platform.test.annotations.SecurityTest;
@@ -49,6 +50,7 @@
return PropertyUtil.getFirstApiLevel() >= MIN_API_LEVEL;
}
+ @CddTest(requirement="9.9/C-2-1")
public void testEncryption() throws Exception {
if (!isRequired() || deviceIsEncrypted()) {
return;
diff --git a/tests/tests/security/src/android/security/cts/ListeningPortsTest.java b/tests/tests/security/src/android/security/cts/ListeningPortsTest.java
index 8903aec..378f0a6 100644
--- a/tests/tests/security/src/android/security/cts/ListeningPortsTest.java
+++ b/tests/tests/security/src/android/security/cts/ListeningPortsTest.java
@@ -17,7 +17,6 @@
package android.security.cts;
import android.content.pm.PackageManager;
-import android.platform.test.annotations.SecurityTest;
import android.test.AndroidTestCase;
import android.util.Log;
import junit.framework.AssertionFailedError;
@@ -40,7 +39,6 @@
* into computer systems remotely, and minimizing the number of open ports
* is considered a security best practice.
*/
-@SecurityTest
public class ListeningPortsTest extends AndroidTestCase {
private static final String TAG = "ListeningPortsTest";
diff --git a/tests/tests/toast/Android.mk b/tests/tests/toast/Android.mk
index 1ba7d79..e4e889d 100644
--- a/tests/tests/toast/Android.mk
+++ b/tests/tests/toast/Android.mk
@@ -23,7 +23,7 @@
LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
-LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner android-support-test
+LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner android-support-test compatibility-device-util
LOCAL_SRC_FILES := $(call all-java-files-under, src)
diff --git a/tests/tests/toast/src/android/widget/toast/cts/LegacyToastTest.java b/tests/tests/toast/src/android/widget/toast/cts/LegacyToastTest.java
index 4ac88b3..c6865b7 100644
--- a/tests/tests/toast/src/android/widget/toast/cts/LegacyToastTest.java
+++ b/tests/tests/toast/src/android/widget/toast/cts/LegacyToastTest.java
@@ -18,6 +18,9 @@
import android.support.test.runner.AndroidJUnit4;
import android.view.WindowManager;
+
+import com.android.compatibility.common.util.CddTest;
+
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,6 +31,7 @@
* like this app the only way to add toast windows is via the dedicated
* toast APIs.
*/
+@CddTest(requirement="3.8.5/C-1-2")
@RunWith(AndroidJUnit4.class)
public class LegacyToastTest extends BaseToastTest {
@Test