diff options
author | George Mount <mount@google.com> | 2015-09-04 10:49:26 -0700 |
---|---|---|
committer | George Mount <mount@google.com> | 2015-09-08 15:40:55 -0700 |
commit | c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1 (patch) | |
tree | 5232590bc205ea1f285cd8d6b4dde0179b163a0e /integration-tests | |
parent | 7efb3a652996f599251aa258e484a7be0a4610d0 (diff) | |
download | data-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')
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> |