summaryrefslogtreecommitdiff
path: root/integration-tests
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2015-09-04 10:49:26 -0700
committerGeorge Mount <mount@google.com>2015-09-08 15:40:55 -0700
commitc7cd9c61e55b43b712d20f855ca59d6fbc49e5b1 (patch)
tree5232590bc205ea1f285cd8d6b4dde0179b163a0e /integration-tests
parent7efb3a652996f599251aa258e484a7be0a4610d0 (diff)
downloaddata-binding-c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1.tar.gz
Improve some BindingAdapters.
Bug 23818442 Allow padding to accept dimen resource values. Allow spinner:entries to accept List values. Change-Id: I48367ce6c87388d1d9b89e6c835304e031ff50c7
Diffstat (limited to 'integration-tests')
-rw-r--r--integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/AbsSpinnerBindingAdapterTest.java26
-rw-r--r--integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/AbsSpinnerBindingObject.java15
-rw-r--r--integration-tests/TestApp/app/src/main/res/layout/abs_spinner_adapter_test.xml3
-rw-r--r--integration-tests/TestApp/app/src/main/res/layout/view_adapter_test.xml24
-rw-r--r--integration-tests/TestApp/app/src/main/res/values/dimens.xml16
5 files changed, 83 insertions, 1 deletions
diff --git a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/AbsSpinnerBindingAdapterTest.java b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/AbsSpinnerBindingAdapterTest.java
index d1d45f55..06f64772 100644
--- a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/AbsSpinnerBindingAdapterTest.java
+++ b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/AbsSpinnerBindingAdapterTest.java
@@ -17,11 +17,13 @@ package android.databinding.testapp;
import android.databinding.testapp.databinding.AbsSpinnerAdapterTestBinding;
import android.databinding.testapp.vo.AbsSpinnerBindingObject;
-
import android.os.Build;
+import android.test.UiThreadTest;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
+import java.util.List;
+
public class AbsSpinnerBindingAdapterTest
extends BindingAdapterTestBase<AbsSpinnerAdapterTestBinding, AbsSpinnerBindingObject> {
@@ -38,6 +40,7 @@ public class AbsSpinnerBindingAdapterTest
mView = mBinder.view;
}
+ @UiThreadTest
public void testEntries() throws Throwable {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
validateEntries();
@@ -48,6 +51,18 @@ public class AbsSpinnerBindingAdapterTest
}
}
+ @UiThreadTest
+ public void testList() throws Throwable {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ validateList();
+
+ mBindingObject.getList().add(1, "Cruel");
+ mBinder.executePendingBindings();
+
+ validateList();
+ }
+ }
+
private void validateEntries() {
assertEquals(mBindingObject.getEntries().length, mView.getAdapter().getCount());
CharSequence[] entries = mBindingObject.getEntries();
@@ -56,4 +71,13 @@ public class AbsSpinnerBindingAdapterTest
assertEquals(adapter.getItem(i), entries[i]);
}
}
+
+ private void validateList() {
+ List<String> entries = mBindingObject.getList();
+ SpinnerAdapter adapter = mBinder.view2.getAdapter();
+ assertEquals(entries.size(), adapter.getCount());
+ for (int i = 0; i < entries.size(); i++) {
+ assertEquals(adapter.getItem(i), entries.get(i));
+ }
+ }
}
diff --git a/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/AbsSpinnerBindingObject.java b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/AbsSpinnerBindingObject.java
index 05d7ed7a..61b8a366 100644
--- a/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/AbsSpinnerBindingObject.java
+++ b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/AbsSpinnerBindingObject.java
@@ -16,6 +16,10 @@
package android.databinding.testapp.vo;
import android.databinding.Bindable;
+import android.databinding.ObservableArrayList;
+import android.databinding.ObservableList;
+
+import java.util.List;
public class AbsSpinnerBindingObject extends BindingAdapterBindingObject {
@Bindable
@@ -30,6 +34,13 @@ public class AbsSpinnerBindingObject extends BindingAdapterBindingObject {
"world"
};
+ private ObservableList<String> mList = new ObservableArrayList<String>();
+
+ public AbsSpinnerBindingObject() {
+ mList.add("Hello");
+ mList.add("World");
+ }
+
public CharSequence[] getEntries() {
return mEntries;
}
@@ -38,4 +49,8 @@ public class AbsSpinnerBindingObject extends BindingAdapterBindingObject {
mEntries = CHANGED_VALUES;
notifyChange();
}
+
+ public List<String> getList() {
+ return mList;
+ }
}
diff --git a/integration-tests/TestApp/app/src/main/res/layout/abs_spinner_adapter_test.xml b/integration-tests/TestApp/app/src/main/res/layout/abs_spinner_adapter_test.xml
index e24dfa3b..579d4fe5 100644
--- a/integration-tests/TestApp/app/src/main/res/layout/abs_spinner_adapter_test.xml
+++ b/integration-tests/TestApp/app/src/main/res/layout/abs_spinner_adapter_test.xml
@@ -22,5 +22,8 @@
<Spinner android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/view"
android:entries="@{obj.entries}"/>
+ <Spinner android:layout_width="match_parent" android:layout_height="match_parent"
+ android:id="@+id/view2"
+ android:entries="@{obj.list}"/>
</LinearLayout>
</layout>
diff --git a/integration-tests/TestApp/app/src/main/res/layout/view_adapter_test.xml b/integration-tests/TestApp/app/src/main/res/layout/view_adapter_test.xml
index a3d40ffa..94ee00d5 100644
--- a/integration-tests/TestApp/app/src/main/res/layout/view_adapter_test.xml
+++ b/integration-tests/TestApp/app/src/main/res/layout/view_adapter_test.xml
@@ -28,6 +28,12 @@
android:padding="@{obj.padding}"
/>
<View
+ android:id="@+id/paddingFloat"
+ android:layout_width="10dp"
+ android:layout_height="10dp"
+ android:padding="@{@dimen/testPadding}"
+ />
+ <View
android:id="@+id/paddingStartEnd"
android:layout_width="10dp"
android:layout_height="10dp"
@@ -35,6 +41,15 @@
android:paddingStart="@{obj.paddingStart}"
/>
<View
+ android:id="@+id/paddingStartEndFloat"
+ android:layout_width="10dp"
+ android:layout_height="10dp"
+ android:paddingTop="@{@dimen/testPadding}"
+ android:paddingBottom="@{@dimen/testPadding}"
+ android:paddingEnd="@{@dimen/testPadding}"
+ android:paddingStart="@{@dimen/testPadding}"
+ />
+ <View
android:id="@+id/paddingTopBottom"
android:layout_width="10dp"
android:layout_height="10dp"
@@ -49,6 +64,15 @@
android:paddingRight="@{obj.paddingRight}"
/>
<View
+ android:id="@+id/paddingLeftRightFloat"
+ android:layout_width="10dp"
+ android:layout_height="10dp"
+ android:paddingTop="@{@dimen/testPadding}"
+ android:paddingBottom="@{@dimen/testPadding}"
+ android:paddingLeft="@{@dimen/testPadding}"
+ android:paddingRight="@{@dimen/testPadding}"
+ />
+ <View
android:id="@+id/backgroundTint"
android:backgroundTint="@{obj.backgroundTint}"
android:layout_width="10dp"
diff --git a/integration-tests/TestApp/app/src/main/res/values/dimens.xml b/integration-tests/TestApp/app/src/main/res/values/dimens.xml
new file mode 100644
index 00000000..dbcada04
--- /dev/null
+++ b/integration-tests/TestApp/app/src/main/res/values/dimens.xml
@@ -0,0 +1,16 @@
+<!--
+ ~ Copyright (C) 2015 The Android Open Source Project
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources>
+ <dimen name="testPadding">10dp</dimen>
+</resources>