IncludeTagTest.java revision 4d4979490e1fa374c0d7f3599fed0a9e83a579d0
1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * http://www.apache.org/licenses/LICENSE-2.0 7 * Unless required by applicable law or agreed to in writing, software 8 * distributed under the License is distributed on an "AS IS" BASIS, 9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 * See the License for the specific language governing permissions and 11 * limitations under the License. 12 */ 13 14package android.databinding.testapp; 15 16import android.databinding.testapp.databinding.LayoutWithIncludeBinding; 17import android.databinding.testapp.databinding.MergeContainingMergeBinding; 18import android.databinding.testapp.databinding.MergeLayoutBinding; 19import android.databinding.testapp.vo.NotBindableVo; 20 21import android.test.UiThreadTest; 22import android.widget.TextView; 23 24public class IncludeTagTest extends BaseDataBinderTest<LayoutWithIncludeBinding> { 25 26 public IncludeTagTest() { 27 super(LayoutWithIncludeBinding.class); 28 } 29 30 @UiThreadTest 31 public void testIncludeTag() { 32 initBinder(); 33 NotBindableVo vo = new NotBindableVo(3, "a"); 34 mBinder.setOuterObject(vo); 35 mBinder.executePendingBindings(); 36 final TextView outerText = (TextView) mBinder.getRoot().findViewById(R.id.outerTextView); 37 assertEquals("a", outerText.getText()); 38 final TextView innerText = (TextView) mBinder.getRoot().findViewById(R.id.innerTextView); 39 assertEquals("modified 3a", innerText.getText().toString()); 40 TextView textView1 = (TextView) mBinder.getRoot().findViewById(R.id.innerTextView1); 41 assertEquals(mBinder.getRoot(), textView1.getParent()); 42 TextView textView2 = (TextView) mBinder.getRoot().findViewById(R.id.innerTextView2); 43 assertEquals(mBinder.getRoot(), textView2.getParent()); 44 assertEquals("a hello 3a", textView1.getText().toString()); 45 assertEquals("b hello 3a", textView2.getText().toString()); 46 MergeLayoutBinding mergeLayoutBinding = mBinder.secondMerge; 47 assertNotSame(textView1, mergeLayoutBinding.innerTextView1); 48 assertNotSame(textView2, mergeLayoutBinding.innerTextView2); 49 assertEquals("a goodbye 3a", mergeLayoutBinding.innerTextView1.getText().toString()); 50 assertEquals("b goodbye 3a", mergeLayoutBinding.innerTextView2.getText().toString()); 51 MergeContainingMergeBinding mergeContainingMergeBinding = mBinder.thirdMerge; 52 MergeLayoutBinding merge1 = mergeContainingMergeBinding.merge1; 53 MergeLayoutBinding merge2 = mergeContainingMergeBinding.merge2; 54 assertEquals("a 1 third 3a", merge1.innerTextView1.getText().toString()); 55 assertEquals("b 1 third 3a", merge1.innerTextView2.getText().toString()); 56 assertEquals("a 2 third 3a", merge2.innerTextView1.getText().toString()); 57 assertEquals("b 2 third 3a", merge2.innerTextView2.getText().toString()); 58 59 vo.setIntValue(5); 60 vo.setStringValue("b"); 61 mBinder.invalidateAll(); 62 mBinder.executePendingBindings(); 63 assertEquals("b", outerText.getText()); 64 assertEquals("modified 5b", innerText.getText().toString()); 65 assertEquals("a hello 5b", textView1.getText().toString()); 66 assertEquals("b hello 5b", textView2.getText().toString()); 67 assertEquals("a goodbye 5b", mergeLayoutBinding.innerTextView1.getText().toString()); 68 assertEquals("b goodbye 5b", mergeLayoutBinding.innerTextView2.getText().toString()); 69 assertEquals("a 1 third 5b", merge1.innerTextView1.getText().toString()); 70 assertEquals("b 1 third 5b", merge1.innerTextView2.getText().toString()); 71 assertEquals("a 2 third 5b", merge2.innerTextView1.getText().toString()); 72 assertEquals("b 2 third 5b", merge2.innerTextView2.getText().toString()); 73 } 74} 75