Home | History | Annotate | Download | only in testapp
      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 
     14 package android.databinding.testapp;
     15 
     16 import android.databinding.testapp.databinding.LayoutWithIncludeBinding;
     17 import android.databinding.testapp.databinding.MergeContainingMergeBinding;
     18 import android.databinding.testapp.databinding.MergeLayoutBinding;
     19 import android.databinding.testapp.vo.NotBindableVo;
     20 
     21 import android.test.UiThreadTest;
     22 import android.widget.TextView;
     23 
     24 public 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().getParent());
     42         TextView textView2 = (TextView) mBinder.getRoot().findViewById(R.id.innerTextView2);
     43         assertEquals(mBinder.getRoot(), textView2.getParent().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