Fix CTS test for LayerDrawable state changes
Change-Id: I602ea661616221ec450d0d54a530b78409722dfa
diff --git a/tests/res/drawable/statelist_testimage.jpg b/tests/res/drawable/statelist_testimage.jpg
new file mode 100644
index 0000000..754df0c
--- /dev/null
+++ b/tests/res/drawable/statelist_testimage.jpg
Binary files differ
diff --git a/tests/res/drawable/statelistdrawable.xml b/tests/res/drawable/statelistdrawable.xml
index 9d9aa3b0..b867904 100644
--- a/tests/res/drawable/statelistdrawable.xml
+++ b/tests/res/drawable/statelistdrawable.xml
@@ -16,7 +16,7 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="true" android:drawable="@drawable/testimage"/>
- <item android:state_enabled="false" android:drawable="@drawable/testimage"/>
+ <item android:state_focused="true" android:drawable="@drawable/statelist_testimage"/>
+ <item android:state_enabled="false" android:drawable="@drawable/statelist_testimage"/>
</selector>
diff --git a/tests/tests/graphics/src/android/graphics/drawable/cts/BitmapDrawableTest.java b/tests/tests/graphics/src/android/graphics/drawable/cts/BitmapDrawableTest.java
index c84510d..fc63e9b 100644
--- a/tests/tests/graphics/src/android/graphics/drawable/cts/BitmapDrawableTest.java
+++ b/tests/tests/graphics/src/android/graphics/drawable/cts/BitmapDrawableTest.java
@@ -343,6 +343,7 @@
attrs = DrawableTestUtils.getAttributeSet(
mContext.getResources().getXml(R.xml.bitmapdrawable), "bitmap_wrongsrc");
try {
+ bitmapDrawable = new BitmapDrawable();
bitmapDrawable.inflate(mContext.getResources(), parser, attrs);
fail("Should throw XmlPullParserException if the bitmap source can't be decoded.");
} catch (XmlPullParserException e) {
@@ -351,20 +352,23 @@
attrs = DrawableTestUtils.getAttributeSet(
mContext.getResources().getXml(R.xml.bitmapdrawable), "bitmap_nosrc");
try {
+ bitmapDrawable = new BitmapDrawable();
bitmapDrawable.inflate(mContext.getResources(), parser, attrs);
- fail("Should throw XmlPullParserException if the bitmap src doesn't be defined.");
+ fail("Should throw XmlPullParserException if the bitmap src is not defined.");
} catch (XmlPullParserException e) {
}
attrs = DrawableTestUtils.getAttributeSet(
mContext.getResources().getXml(R.xml.bitmapdrawable), "bitmap_allattrs");
try {
+ bitmapDrawable = new BitmapDrawable();
bitmapDrawable.inflate(null, parser, attrs);
fail("Should throw NullPointerException if resource is null");
} catch (NullPointerException e) {
}
try {
+ bitmapDrawable = new BitmapDrawable();
bitmapDrawable.inflate(mContext.getResources(), parser, null);
fail("Should throw NullPointerException if attribute set is null");
} catch (NullPointerException e) {
diff --git a/tests/tests/graphics/src/android/graphics/drawable/cts/LayerDrawableTest.java b/tests/tests/graphics/src/android/graphics/drawable/cts/LayerDrawableTest.java
index 4e4648f..86772cc 100644
--- a/tests/tests/graphics/src/android/graphics/drawable/cts/LayerDrawableTest.java
+++ b/tests/tests/graphics/src/android/graphics/drawable/cts/LayerDrawableTest.java
@@ -301,6 +301,7 @@
cb.reset();
layerDrawable.scheduleDrawable(new BitmapDrawable(), new Runnable() {
+ @Override
public void run() {
}
}, 1000L);
@@ -324,6 +325,7 @@
cb.reset();
layerDrawable.unscheduleDrawable(new BitmapDrawable(), new Runnable() {
+ @Override
public void run() {
}
});
@@ -340,14 +342,17 @@
private boolean mCalledSchedule;
private boolean mCalledUnschedule;
+ @Override
public void invalidateDrawable(Drawable who) {
mCalledInvalidate = true;
}
+ @Override
public void scheduleDrawable(Drawable who, Runnable what, long when) {
mCalledSchedule = true;
}
+ @Override
public void unscheduleDrawable(Drawable who, Runnable what) {
mCalledUnschedule = true;
}
@@ -542,7 +547,7 @@
LayerDrawable layerDrawable = new LayerDrawable(array);
assertFalse(layerDrawable.isStateful());
- array = new Drawable[] { new BitmapDrawable(), new MockDrawable() };
+ array = new Drawable[] { new BitmapDrawable(), new MockDrawable(false) };
layerDrawable = new LayerDrawable(array);
assertFalse(layerDrawable.isStateful());
@@ -552,8 +557,8 @@
}
public void testOnStateChange() {
- MockDrawable mockDrawable1 = new MockDrawable();
- MockDrawable mockDrawable2 = new MockDrawable();
+ MockDrawable mockDrawable1 = new MockDrawable(true);
+ MockDrawable mockDrawable2 = new MockDrawable(true);
Drawable[] array = new Drawable[] { mockDrawable1, mockDrawable2 };
MockLayerDrawable layerDrawable = new MockLayerDrawable(array);
@@ -730,10 +735,20 @@
private boolean mCalledDraw = false;
+ private boolean mIsStateful = false;
+
private int mOpacity = PixelFormat.OPAQUE;
Rect mPadding = null;
+ public MockDrawable() {
+ this(false);
+ }
+
+ public MockDrawable(boolean isStateful) {
+ mIsStateful = isStateful;
+ }
+
@Override
public void draw(Canvas canvas) {
mCalledDraw = true;
@@ -813,10 +828,16 @@
return true;
}
+ @Override
+ public boolean isStateful() {
+ return mIsStateful;
+ }
+
public boolean hasCalledSetState() {
return mCalledSetState;
}
+ @Override
public boolean setState(final int[] stateSet) {
increasePadding();
mCalledSetState = true;