Merge "Add a sleep in testSetDismissMessage(), to allow enough time for the dialog to be dismissed. No failure in 20+ tests." into klp-modular-dev
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/streamquality/StreamingVideoActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/streamquality/StreamingVideoActivity.java
index d575e5f..66168a1 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/streamquality/StreamingVideoActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/streamquality/StreamingVideoActivity.java
@@ -91,35 +91,38 @@
+ "cid=0x271de9756065677e&fmt=13&user=android-device-test"),
new Stream("MPEG4 SP Video, AAC Audio", "rtsp_mpeg4_aac",
"rtsp://v2.cache7.c.youtube.com/video.3gp?"
- + "cid=0x271de9756065677e&fmt=13&user=android-device-test"),
+ + "cid=0x271de9756065677e&fmt=17&user=android-device-test"),
new Stream("H264 Base Video, AAC Audio", "rtsp_h264_aac",
"rtsp://v2.cache7.c.youtube.com/video.3gp?"
- + "cid=0x271de9756065677e&fmt=13&user=android-device-test"),
+ + "cid=0x271de9756065677e&fmt=18&user=android-device-test"),
};
private static final Stream[] HTTP_STREAMS = {
- new Stream("H263 Video, AMR Audio", "http_h263_amr", "http://v20.lscache8.c.youtube.com/"
+ new Stream("H263 Video, AMR Audio", "http_h263_amr", "http://redirector.c.play.google.com/"
+ "videoplayback?id=271de9756065677e"
+ "&itag=13&ip=0.0.0.0&ipbits=0&expire=999999999999999999"
+ "&sparams=ip,ipbits,expire,ip,ipbits,expire,id,itag"
+ "&signature=372FA4C532AA49D14EAF049BCDA66460EEE161E9"
+ ".6D8BF096B73B7A68A7032CA8685053CFB498D30A"
+ + "&source=youtube"
+ "&key=test_key1&user=android-device-test"),
new Stream("MPEG4 SP Video, AAC Audio", "http_mpeg4_aac",
- "http://v20.lscache8.c.youtube.com/"
+ "http://redirector.c.play.google.com/"
+ "videoplayback?id=271de9756065677e"
+ "&itag=17&ip=0.0.0.0&ipbits=0&expire=999999999999999999"
+ "&sparams=ip,ipbits,expire,ip,ipbits,expire,id,itag"
+ "&signature=3DCD3F79E045F95B6AF661765F046FB0440FF016"
+ ".06A42661B3AF6BAF046F012549CC9BA34EBC80A9"
+ + "&source=youtube"
+ "&key=test_key1&user=android-device-test"),
new Stream("H264 Base Video, AAC Audio", "http_h264_aac",
- "http://v20.lscache8.c.youtube.com/"
+ "http://redirector.c.play.google.com/"
+ "videoplayback?id=271de9756065677e"
+ "&itag=18&ip=0.0.0.0&ipbits=0&expire=999999999999999999"
+ "&sparams=ip,ipbits,expire,ip,ipbits,expire,id,itag"
+ "&signature=1219C2B07AF0638C27916307A6093C0E43CB894E"
+ ".126B6B916BD57157782738AA7C03E59F21DBC168"
+ + "&source=youtube"
+ "&key=test_key1&user=android-device-test"),
};
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 1d7b051..29caf33 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -669,7 +669,8 @@
</activity>
<activity android:name="android.app.cts.InstrumentationTestActivity"
- android:label="InstrumentationTestActivity">
+ android:theme="@style/Theme_NoSwipeDismiss"
+ android:label="InstrumentationTestActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -861,7 +862,8 @@
</activity>
<activity android:name="android.app.cts.DialogStubActivity"
- android:label="DialogStubActivity">
+ android:theme="@style/Theme_NoSwipeDismiss"
+ android:label="DialogStubActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
diff --git a/tests/expectations/knownfailures.txt b/tests/expectations/knownfailures.txt
index 781182d..7a80295 100644
--- a/tests/expectations/knownfailures.txt
+++ b/tests/expectations/knownfailures.txt
@@ -115,10 +115,6 @@
bug: 15087784
},
{
- name: "android.app.cts.DialogTest#testSetFeatureDrawableResource",
- bug: 15135607
-},
-{
name: "android.media.cts.MediaCodecListTest#testIsAVCBaselineProfileSupported",
name: "android.media.cts.MediaCodecListTest#testIsH263BaselineProfileSupported",
name: "android.media.cts.MediaCodecListTest#testIsM4VSimpleProfileSupported",
diff --git a/tests/res/values/styles.xml b/tests/res/values/styles.xml
index f8b56fd..e0110cc 100644
--- a/tests/res/values/styles.xml
+++ b/tests/res/values/styles.xml
@@ -138,4 +138,8 @@
<item name="android:panelColorBackground">#ffffffff</item>
</style>
+ <style name="Theme_NoSwipeDismiss">
+ <item name="android:windowSwipeToDismiss">false</item>
+ </style>
+
</resources>
diff --git a/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java b/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java
index f452f50..f2f859a 100644
--- a/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java
+++ b/tests/tests/display/src/android/display/cts/VirtualDisplayTest.java
@@ -29,6 +29,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.os.HandlerThread;
import android.os.SystemClock;
import android.test.AndroidTestCase;
import android.util.DisplayMetrics;
@@ -72,6 +73,8 @@
private ImageReader mImageReader;
private Surface mSurface;
private ImageListener mImageListener;
+ private HandlerThread mCheckThread;
+ private Handler mCheckHandler;
@Override
protected void setUp() throws Exception {
@@ -80,11 +83,15 @@
mDisplayManager = (DisplayManager)mContext.getSystemService(Context.DISPLAY_SERVICE);
mHandler = new Handler(Looper.getMainLooper());
mImageListener = new ImageListener();
+ // thread for image checking
+ mCheckThread = new HandlerThread("TestHandler");
+ mCheckThread.start();
+ mCheckHandler = new Handler(mCheckThread.getLooper());
mImageReaderLock.lock();
try {
mImageReader = ImageReader.newInstance(WIDTH, HEIGHT, PixelFormat.RGBA_8888, 2);
- mImageReader.setOnImageAvailableListener(mImageListener, mHandler);
+ mImageReader.setOnImageAvailableListener(mImageListener, mCheckHandler);
mSurface = mImageReader.getSurface();
} finally {
mImageReaderLock.unlock();
@@ -94,7 +101,6 @@
@Override
protected void tearDown() throws Exception {
super.tearDown();
-
mImageReaderLock.lock();
try {
mImageReader.close();
@@ -103,6 +109,7 @@
} finally {
mImageReaderLock.unlock();
}
+ mCheckThread.quit();
}
/**
diff --git a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
index 9f6a976..b1691c3 100644
--- a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
@@ -243,15 +243,19 @@
}
};
// Consider only continuous mode sensors for testing registerListener.
- if (sensor.getMinDelay() > 0) {
+ // For on-change sensors, call registerListener() so that the listener is associated
+ // with the sensor and flush(listener) can be called on it.
+ if (sensor.getMinDelay() >= 0) {
Log.i(TAG, "testBatch " + sensor.getName());
boolean result = mSensorManager.registerListener(listener, sensor,
SensorManager.SENSOR_DELAY_NORMAL, 10000000, handler);
assertTrue("registerListener failed " + sensor.getName(), result);
- // Wait for 25 events or 40 seconds.
- boolean countZero = eventReceived.await(TIMEOUT_S, TimeUnit.SECONDS);
- if (!countZero) {
- fail("Timed out waiting for events from " + sensor.getName());
+ // Wait for 25 events or 40 seconds only for continuous mode sensors.
+ if (sensor.getMinDelay() > 0) {
+ boolean countZero = eventReceived.await(TIMEOUT_S, TimeUnit.SECONDS);
+ if (!countZero) {
+ fail("Timed out waiting for events from " + sensor.getName());
+ }
}
}
diff --git a/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayTest.java b/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayTest.java
index fce343e..39c7b77 100644
--- a/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayTest.java
+++ b/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayTest.java
@@ -19,6 +19,7 @@
import android.app.Presentation;
import android.media.MediaCodec;
import android.media.MediaCodecInfo;
+import android.media.MediaCodecList;
import android.media.MediaFormat;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
@@ -150,6 +151,25 @@
}
}
+ private static boolean hasCodec(String mimeType) {
+ int numCodecs = MediaCodecList.getCodecCount();
+ for (int i = 0; i < numCodecs; i++) {
+ MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
+
+ if (!codecInfo.isEncoder()) {
+ continue;
+ }
+
+ String[] types = codecInfo.getSupportedTypes();
+ for (int j = 0; j < types.length; j++) {
+ if (types[j].equalsIgnoreCase(mimeType)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
/**
* Prepares the encoder, decoder, and virtual display.
*/
@@ -159,6 +179,11 @@
OutputSurface outputSurface = null;
VirtualDisplay virtualDisplay = null;
+ // Don't run the test of the codec isn't present.
+ if (!hasCodec(MIME_TYPE)) {
+ return;
+ }
+
try {
// Encoded video resolution matches virtual display.
MediaFormat encoderFormat = MediaFormat.createVideoFormat(MIME_TYPE, WIDTH, HEIGHT);
diff --git a/tests/tests/provider/src/android/provider/cts/Contacts_PeopleTest.java b/tests/tests/provider/src/android/provider/cts/Contacts_PeopleTest.java
index d634d30..e5085b8 100644
--- a/tests/tests/provider/src/android/provider/cts/Contacts_PeopleTest.java
+++ b/tests/tests/provider/src/android/provider/cts/Contacts_PeopleTest.java
@@ -28,10 +28,12 @@
import android.net.Uri;
import android.os.RemoteException;
import android.provider.Contacts;
+import android.provider.Contacts.GroupMembership;
import android.provider.Contacts.Groups;
import android.provider.Contacts.GroupsColumns;
import android.provider.Contacts.People;
import android.test.InstrumentationTestCase;
+import android.util.Log;
import java.io.IOException;
import java.io.InputStream;
@@ -53,9 +55,6 @@
private static final int PEOPLE_ID_INDEX = 0;
private static final int PEOPLE_LAST_CONTACTED_INDEX = 1;
- private static final int MEMBERSHIP_PERSON_ID_INDEX = 1;
- private static final int MEMBERSHIP_GROUP_ID_INDEX = 5;
-
private static final String[] GROUPS_PROJECTION = new String[] {
Groups._ID,
Groups.NAME
@@ -127,13 +126,19 @@
mRowsAdded.add(People.addToMyContactsGroup(mContentResolver, personId));
cursor = mProvider.query(Groups.CONTENT_URI, GROUPS_PROJECTION,
Groups.SYSTEM_ID + "='" + Groups.GROUP_MY_CONTACTS + "'", null, null, null);
- cursor.moveToFirst();
+ assertTrue(cursor.moveToFirst());
int groupId = cursor.getInt(GROUPS_ID_INDEX);
cursor.close();
cursor = People.queryGroups(mContentResolver, personId);
- cursor.moveToFirst();
- assertEquals(personId, cursor.getInt(MEMBERSHIP_PERSON_ID_INDEX));
- assertEquals(groupId, cursor.getInt(MEMBERSHIP_GROUP_ID_INDEX));
+
+ int membershipGroupIdIndex =
+ cursor.getColumnIndex(android.provider.Contacts.GroupMembership.GROUP_ID);
+ int membershipPersonIdIndex =
+ cursor.getColumnIndex(android.provider.Contacts.GroupMembership.PERSON_ID);
+
+ assertTrue(cursor.moveToFirst());
+ assertEquals(personId, cursor.getInt(membershipPersonIdIndex));
+ assertEquals(groupId, cursor.getInt(membershipGroupIdIndex));
cursor.close();
// People: test_people_create, Group: Groups.GROUP_MY_CONTACTS
@@ -145,38 +150,38 @@
cursor = mProvider.query(People.CONTENT_URI, PEOPLE_PROJECTION,
People.NAME + " = 'test_people_create'", null, null, null);
- cursor.moveToFirst();
+ assertTrue(cursor.moveToFirst());
personId = cursor.getInt(PEOPLE_ID_INDEX);
mRowsAdded.add(ContentUris.withAppendedId(People.CONTENT_URI, personId));
cursor.close();
cursor = mProvider.query(Groups.CONTENT_URI, GROUPS_PROJECTION,
Groups.SYSTEM_ID + "='" + Groups.GROUP_MY_CONTACTS + "'", null, null, null);
- cursor.moveToFirst();
+ assertTrue(cursor.moveToFirst());
groupId = cursor.getInt(GROUPS_ID_INDEX);
cursor.close();
cursor = People.queryGroups(mContentResolver, personId);
- cursor.moveToFirst();
- assertEquals(personId, cursor.getInt(MEMBERSHIP_PERSON_ID_INDEX));
- assertEquals(groupId, cursor.getInt(MEMBERSHIP_GROUP_ID_INDEX));
+ assertTrue(cursor.moveToFirst());
+ assertEquals(personId, cursor.getInt(membershipPersonIdIndex));
+ assertEquals(groupId, cursor.getInt(membershipGroupIdIndex));
cursor.close();
// People: test_people_1, Group: test_group_0
cursor = mProvider.query(mPeopleRowsAdded.get(1), PEOPLE_PROJECTION,
null, null, null, null);
- cursor.moveToFirst();
+ assertTrue(cursor.moveToFirst());
personId = cursor.getInt(PEOPLE_ID_INDEX);
cursor.close();
cursor = mProvider.query(mGroupRowsAdded.get(0), GROUPS_PROJECTION,
null, null, null, null);
- cursor.moveToFirst();
+ assertTrue(cursor.moveToFirst());
groupId = cursor.getInt(GROUPS_ID_INDEX);
cursor.close();
mRowsAdded.add(People.addToGroup(mContentResolver, personId, groupId));
cursor = People.queryGroups(mContentResolver, personId);
boolean found = false;
while (cursor.moveToNext()) {
- assertEquals(personId, cursor.getInt(MEMBERSHIP_PERSON_ID_INDEX));
- if (cursor.getInt(MEMBERSHIP_GROUP_ID_INDEX) == groupId) {
+ assertEquals(personId, cursor.getInt(membershipPersonIdIndex));
+ if (cursor.getInt(membershipGroupIdIndex) == groupId) {
found = true;
break;
}
@@ -188,7 +193,7 @@
// People: test_people_2, Group: test_group_1
cursor = mProvider.query(mPeopleRowsAdded.get(2), PEOPLE_PROJECTION,
null, null, null, null);
- cursor.moveToFirst();
+ assertTrue(cursor.moveToFirst());
personId = cursor.getInt(PEOPLE_ID_INDEX);
cursor.close();
String groupName = "test_group_1";
@@ -196,8 +201,8 @@
cursor = People.queryGroups(mContentResolver, personId);
List<Integer> groupIds = new ArrayList<Integer>();
while (cursor.moveToNext()) {
- assertEquals(personId, cursor.getInt(MEMBERSHIP_PERSON_ID_INDEX));
- groupIds.add(cursor.getInt(MEMBERSHIP_GROUP_ID_INDEX));
+ assertEquals(personId, cursor.getInt(membershipPersonIdIndex));
+ groupIds.add(cursor.getInt(membershipGroupIdIndex));
}
cursor.close();
diff --git a/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java b/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java
index 1d8a032..00171f9 100644
--- a/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java
+++ b/tests/tests/text/src/android/text/method/cts/ArrowKeyMovementMethodTest.java
@@ -30,6 +30,7 @@
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
+import android.view.WindowManager;
import android.widget.TextView;
import android.widget.TextView.BufferType;
@@ -68,6 +69,9 @@
getInstrumentation().runOnMainSync(new Runnable() {
public void run() {
+ getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
+ WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
+
getActivity().setContentView(mTextView);
mTextView.setFocusable(true);
mTextView.requestFocus();
diff --git a/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java b/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java
index 4007f33..ef3d751 100644
--- a/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java
+++ b/tests/tests/text/src/android/text/method/cts/KeyListenerTestCase.java
@@ -23,6 +23,7 @@
import android.text.format.DateUtils;
import android.text.method.cts.KeyListenerStubActivity;
import android.text.method.KeyListener;
+import android.view.WindowManager;
import android.widget.TextView;
/**
@@ -63,6 +64,9 @@
mInstrumentation = getInstrumentation();
mTextView = (TextView) mActivity.findViewById(R.id.keylistener_textview);
+ mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
+ WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
+
assertTrue(mActivity.waitForWindowFocus(5 * DateUtils.SECOND_IN_MILLIS));
}