diff options
author | George Mount <mount@google.com> | 2015-09-04 14:05:26 -0700 |
---|---|---|
committer | George Mount <mount@google.com> | 2015-09-04 14:36:31 -0700 |
commit | 76b791f78542a2feb191482a2204de95eaf8ee72 (patch) | |
tree | 3ae5a4b771ada56d1efecd72d86f56f5a49af25d /integration-tests/TestApp/app | |
parent | 7efb3a652996f599251aa258e484a7be0a4610d0 (diff) | |
download | data-binding-76b791f78542a2feb191482a2204de95eaf8ee72.tar.gz |
Better handling of out of bounds exceptions on bracket expressions.
Bug 23820607
Handle out of bounds in bracket expressions by returning the
default value.
Change-Id: I8b3a5a5ced48acfd6683ee1df6264480526244d1
Diffstat (limited to 'integration-tests/TestApp/app')
-rw-r--r-- | integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BracketTest.java | 28 | ||||
-rw-r--r-- | integration-tests/TestApp/app/src/main/res/layout/bracket_test.xml | 24 |
2 files changed, 46 insertions, 6 deletions
diff --git a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BracketTest.java b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BracketTest.java index 37913948..136b7ccb 100644 --- a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BracketTest.java +++ b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BracketTest.java @@ -54,6 +54,7 @@ public class BracketTest extends BaseDataBinderTest<BracketTestBinding> { mBinder.setSparseBooleanArray(mSparseBooleanArray); mBinder.setSparseLongArray(mSparseLongArray); mBinder.setLongSparseArray(mLongSparseArray); + mBinder.setIndexObj((Integer) 0); mBinder.executePendingBindings(); } @@ -71,7 +72,34 @@ public class BracketTest extends BaseDataBinderTest<BracketTestBinding> { } @UiThreadTest + public void testBracketOutOfBounds() { + mBinder.setIndex(1); + mBinder.executePendingBindings(); + assertEquals("", mBinder.arrayText.getText().toString()); + assertEquals("", mBinder.sparseArrayText.getText().toString()); + assertEquals("", mBinder.longSparseArrayText.getText().toString()); + assertEquals("0", mBinder.sparseIntArrayText.getText().toString()); + assertEquals("false", mBinder.sparseBooleanArrayText.getText().toString()); + assertEquals("0", mBinder.sparseLongArrayText.getText().toString()); + mBinder.setIndex(-1); + mBinder.executePendingBindings(); + assertEquals("", mBinder.arrayText.getText().toString()); + assertEquals("", mBinder.sparseArrayText.getText().toString()); + assertEquals("", mBinder.longSparseArrayText.getText().toString()); + assertEquals("0", mBinder.sparseIntArrayText.getText().toString()); + assertEquals("false", mBinder.sparseBooleanArrayText.getText().toString()); + assertEquals("0", mBinder.sparseLongArrayText.getText().toString()); + } + + @UiThreadTest public void testBracketObj() { + mBinder.executePendingBindings(); + assertEquals("Hello World", mBinder.indexObj.getText().toString()); + assertEquals("Hello", mBinder.sparseArrayTextObj.getText().toString()); + } + + @UiThreadTest + public void testBracketMap() throws Throwable { assertEquals("", mBinder.bracketMap.getText().toString()); } } diff --git a/integration-tests/TestApp/app/src/main/res/layout/bracket_test.xml b/integration-tests/TestApp/app/src/main/res/layout/bracket_test.xml index 936b2094..e9a0e2f9 100644 --- a/integration-tests/TestApp/app/src/main/res/layout/bracket_test.xml +++ b/integration-tests/TestApp/app/src/main/res/layout/bracket_test.xml @@ -19,6 +19,8 @@ <variable name="sparseIntArray" type="android.util.SparseIntArray"/> <variable name="sparseLongArray" type="android.util.SparseLongArray"/> <variable name="longSparseArray" type="android.util.LongSparseArray<String>"/> + <variable name="index" type="int"/> + <variable name="indexObj" type="Object"/> <variable name="obj" type="android.databinding.testapp.vo.BracketObject"/> </data> <LinearLayout @@ -29,32 +31,42 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/arrayText" - android:text="@{array[0]}"/> + android:text="@{array[index]}"/> + + <TextView android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/indexObj" + android:text="@{array[indexObj]}"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sparseArrayText" - android:text='@{sparseArray[0]}'/> + android:text='@{sparseArray[index]}'/> + + <TextView android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/sparseArrayTextObj" + android:text='@{sparseArray[indexObj]}'/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sparseBooleanArrayText" - android:text='@{"" + sparseBooleanArray[0]}'/> + android:text='@{"" + sparseBooleanArray[index]}'/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sparseIntArrayText" - android:text='@{"" + sparseIntArray[0]}'/> + android:text='@{"" + sparseIntArray[index]}'/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sparseLongArrayText" - android:text='@{"" + sparseLongArray[0]}'/> + android:text='@{"" + sparseLongArray[index]}'/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/longSparseArrayText" - android:text='@{longSparseArray[0]}'/> + android:text='@{longSparseArray[index]}'/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" |