diff options
author | Farand Koo <farand@google.com> | 2013-09-06 17:15:16 -0700 |
---|---|---|
committer | Farand Koo <farand@google.com> | 2013-09-06 17:45:13 -0700 |
commit | ae96ffab1cf315ec04d4dfd2b0ab25337347ac85 (patch) | |
tree | 4f210d59fdaac7ddc9593da4b02f8107bf36444a | |
parent | 946a886bba500230c432c4193bc854f71c05d794 (diff) | |
download | robolectric-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.mk | 2 | ||||
-rw-r--r-- | pom.xml | 7 | ||||
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/shadows/ShadowView.java | 10 | ||||
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/tester/android/content/pm/StubPackageManager.java | 4 | ||||
-rw-r--r-- | src/test/java/com/xtremelabs/robolectric/R.java | 4 | ||||
-rw-r--r-- | src/test/java/com/xtremelabs/robolectric/shadows/ViewTest.java | 52 | ||||
-rw-r--r-- | src/test/resources/res/layout/views.xml | 24 |
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 \ @@ -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> |