aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFarand Koo <farand@google.com>2013-09-06 17:15:16 -0700
committerFarand Koo <farand@google.com>2013-09-06 17:45:13 -0700
commitae96ffab1cf315ec04d4dfd2b0ab25337347ac85 (patch)
tree4f210d59fdaac7ddc9593da4b02f8107bf36444a
parent946a886bba500230c432c4193bc854f71c05d794 (diff)
downloadrobolectric-ae96ffab1cf315ec04d4dfd2b0ab25337347ac85.tar.gz
Update robolectric to api 18
Also add support for android:focusable and android:clickable from xml layouts Change-Id: Id94a20ca553b850c38bf7571909caf78975f9f12
-rw-r--r--Android.mk2
-rw-r--r--pom.xml7
-rw-r--r--src/main/java/com/xtremelabs/robolectric/shadows/ShadowView.java10
-rw-r--r--src/main/java/com/xtremelabs/robolectric/tester/android/content/pm/StubPackageManager.java4
-rw-r--r--src/test/java/com/xtremelabs/robolectric/R.java4
-rw-r--r--src/test/java/com/xtremelabs/robolectric/shadows/ViewTest.java52
-rw-r--r--src/test/resources/res/layout/views.xml24
7 files changed, 98 insertions, 5 deletions
diff --git a/Android.mk b/Android.mk
index c114e887c..ca83f3296 100644
--- a/Android.mk
+++ b/Android.mk
@@ -16,7 +16,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := robolectric
-LOCAL_SDK_VERSION := 17
+LOCAL_SDK_VERSION := 18
LOCAL_SRC_FILES := $(call all-java-files-under, src/main/java)
LOCAL_STATIC_JAVA_LIBRARIES := \
robolectric-android-support-v4 \
diff --git a/pom.xml b/pom.xml
index 2d8b74fa6..241e6f545 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,17 +75,16 @@
</dependency>
<dependency>
- <groupId>com.google.android</groupId>
+ <groupId>android</groupId>
<artifactId>android</artifactId>
- <version>4.1.1.4</version>
- <!-- <version>4.0.1.2</version> -->
+ <version>4.3_r1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.android.maps</groupId>
<artifactId>maps</artifactId>
- <version>10_r2</version>
+ <version>18_r2</version>
<scope>provided</scope>
</dependency>
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowView.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowView.java
index 76dfa78f7..c5aa97254 100644
--- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowView.java
+++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowView.java
@@ -107,6 +107,8 @@ public class ShadowView {
applyIdAttribute();
applyVisibilityAttribute();
applyFilterTouchesWhenObscuredAttribute();
+ applyClickableAttribute();
+ applyFocusableAttribute();
applyEnabledAttribute();
applyBackgroundAttribute();
applyTagAttribute();
@@ -810,6 +812,14 @@ public class ShadowView {
"android", "filterTouchesWhenObscured", false));
}
+ private void applyClickableAttribute() {
+ setClickable(attributeSet.getAttributeBooleanValue("android", "clickable", false));
+ }
+
+ private void applyFocusableAttribute() {
+ setFocusable(attributeSet.getAttributeBooleanValue("android", "focusable", false));
+ }
+
private void applyEnabledAttribute() {
setEnabled(attributeSet.getAttributeBooleanValue("android", "enabled", true));
}
diff --git a/src/main/java/com/xtremelabs/robolectric/tester/android/content/pm/StubPackageManager.java b/src/main/java/com/xtremelabs/robolectric/tester/android/content/pm/StubPackageManager.java
index b3a795d85..a4aca006d 100644
--- a/src/main/java/com/xtremelabs/robolectric/tester/android/content/pm/StubPackageManager.java
+++ b/src/main/java/com/xtremelabs/robolectric/tester/android/content/pm/StubPackageManager.java
@@ -298,4 +298,8 @@ public class StubPackageManager extends PackageManager {
@Override public void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay) {
}
+
+ @Override public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, int flags) {
+ return null;
+ }
}
diff --git a/src/test/java/com/xtremelabs/robolectric/R.java b/src/test/java/com/xtremelabs/robolectric/R.java
index 7a0916019..bfc8dd163 100644
--- a/src/test/java/com/xtremelabs/robolectric/R.java
+++ b/src/test/java/com/xtremelabs/robolectric/R.java
@@ -58,6 +58,10 @@ public final class R {
public static final int default_view = nextId++;
public static final int filter_touches_false_view = nextId++;
public static final int filter_touches_true_view = nextId++;
+ public static final int clickable_false_view = nextId++;
+ public static final int clickable_true_view = nextId++;
+ public static final int focusable_false_view = nextId++;
+ public static final int focusable_true_view = nextId++;
}
public static final class string {
diff --git a/src/test/java/com/xtremelabs/robolectric/shadows/ViewTest.java b/src/test/java/com/xtremelabs/robolectric/shadows/ViewTest.java
index 6a62b4c4e..c0f130179 100644
--- a/src/test/java/com/xtremelabs/robolectric/shadows/ViewTest.java
+++ b/src/test/java/com/xtremelabs/robolectric/shadows/ViewTest.java
@@ -405,6 +405,58 @@ public class ViewTest {
assertTrue(filterTrueView.getFilterTouchesWhenObscured());
}
+ @Test
+ public void testClickable() {
+ assertFalse(view.isClickable());
+
+ view.setClickable(true);
+ assertTrue(view.isClickable());
+
+ view.setClickable(false);
+ assertFalse(view.isClickable());
+ }
+
+ @Test
+ public void testClickableWhenLoadedFromXml() {
+ LinearLayout root = new LinearLayout(null);
+ ShadowView.inflate(new Activity(), R.layout.views, root);
+
+ View defaultView = root.findViewById(R.id.default_view);
+ assertFalse(defaultView.isClickable());
+
+ View clickableFalseView = root.findViewById(R.id.clickable_false_view);
+ assertFalse(clickableFalseView.isClickable());
+
+ View clickableTrueView = root.findViewById(R.id.clickable_true_view);
+ assertTrue(clickableTrueView.isClickable());
+ }
+
+ @Test
+ public void testFocusable() {
+ assertFalse(view.isFocusable());
+
+ view.setFocusable(true);
+ assertTrue(view.isFocusable());
+
+ view.setFocusable(false);
+ assertFalse(view.isFocusable());
+ }
+
+ @Test
+ public void testFocusableWhenLoadedFromXml() {
+ LinearLayout root = new LinearLayout(null);
+ ShadowView.inflate(new Activity(), R.layout.views, root);
+
+ View defaultView = root.findViewById(R.id.default_view);
+ assertFalse(defaultView.isFocusable());
+
+ View focusableFalseView = root.findViewById(R.id.focusable_false_view);
+ assertFalse(focusableFalseView.isFocusable());
+
+ View focusableTrueView = root.findViewById(R.id.focusable_true_view);
+ assertTrue(focusableTrueView.isFocusable());
+ }
+
private static class TestAnimation extends Animation {
}
diff --git a/src/test/resources/res/layout/views.xml b/src/test/resources/res/layout/views.xml
index 12f0a38ad..5d96d40f7 100644
--- a/src/test/resources/res/layout/views.xml
+++ b/src/test/resources/res/layout/views.xml
@@ -20,4 +20,28 @@
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true" />
+ <View
+ android:id="@+id/clickable_false_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:clickable="false" />
+
+ <View
+ android:id="@+id/clickable_true_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:clickable="true" />
+
+ <View
+ android:id="@+id/focusable_false_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:focusable="false" />
+
+ <View
+ android:id="@+id/focusable_true_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:focusable="true" />
+
</LinearLayout>