197d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar/* 297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * Copyright (C) 2015 The Android Open Source Project 397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * you may not use this file except in compliance with the License. 597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * You may obtain a copy of the License at 697d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * Unless required by applicable law or agreed to in writing, software 897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 997d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * See the License for the specific language governing permissions and 1197d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar * limitations under the License. 1297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar */ 1397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 14fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp; 1597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.DataBinderTrojan; 172e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.NewApiLayoutBinding; 1897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 1997d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyarimport android.os.Build; 2097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyarimport android.test.UiThreadTest; 2197d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyarimport android.view.View; 2297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyarimport android.widget.TextView; 2397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 2497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyarimport java.util.ArrayList; 2597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 264c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mountpublic class NewApiTest extends BaseDataBinderTest<NewApiLayoutBinding> { 2797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public NewApiTest() { 284c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount super(NewApiLayoutBinding.class); 2997d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 3097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 313f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar @Override 323f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar protected void setUp() throws Exception { 333f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar super.setUp(); 343f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar } 353f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar 3697d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar @UiThreadTest 3797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public void testSetElevation() { 383f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar initBinder(); 3997d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setElevation(3); 4097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setName("foo"); 4197d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setChildren(new ArrayList<View>()); 424c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount mBinder.executePendingBindings(); 4334a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount assertEquals("foo", mBinder.textView.getText().toString()); 4434a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount assertEquals(3f, mBinder.textView.getElevation()); 4597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 4697d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 4797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar @UiThreadTest 4897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public void testSetElevationOlderAPI() { 493f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar initBinder(); 5097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar DataBinderTrojan.setBuildSdkInt(1); 5197d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar try { 5234a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount TextView textView = mBinder.textView; 5397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar float originalElevation = textView.getElevation(); 5497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setElevation(3); 5597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setName("foo2"); 564c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount mBinder.executePendingBindings(); 5797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar assertEquals("foo2", textView.getText().toString()); 5897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar assertEquals(originalElevation, textView.getElevation()); 5997d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } finally { 6097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar DataBinderTrojan.setBuildSdkInt(Build.VERSION.SDK_INT); 6197d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 6297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 6397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 6497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar @UiThreadTest 6597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public void testGeneric() { 663f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar initBinder(); 6797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar ArrayList<View> views = new ArrayList<>(); 6897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setChildren(views); 694c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount mBinder.executePendingBindings(); 7097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar assertEquals(1, views.size()); 7134a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount assertSame(mBinder.textView, views.get(0)); 7297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 7397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 7497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar @UiThreadTest 7597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public void testGenericOlderApi() { 763f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar initBinder(); 7797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar DataBinderTrojan.setBuildSdkInt(1); 7897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar try { 7997d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar ArrayList<View> views = new ArrayList<>(); 8097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mBinder.setChildren(views); 814c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount mBinder.executePendingBindings(); 8297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar // we should not call the api on older platforms. 8397d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar assertEquals(0, views.size()); 8497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } finally { 8597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar DataBinderTrojan.setBuildSdkInt(Build.VERSION.SDK_INT); 8697d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 8797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 8897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar} 89