ImageViewBindingAdapterTest.java revision d6339f712b4b8ce04a1cb3eec9c2574f4d170990
18872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger/* 28872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * Copyright (C) 2015 The Android Open Source Project 38872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * 48872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * Licensed under the Apache License, Version 2.0 (the "License"); 58872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * you may not use this file except in compliance with the License. 68872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * You may obtain a copy of the License at 78872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * 88872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * http://www.apache.org/licenses/LICENSE-2.0 98872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * 108872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * Unless required by applicable law or agreed to in writing, software 118872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * distributed under the License is distributed on an "AS IS" BASIS, 128872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * See the License for the specific language governing permissions and 148872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger * limitations under the License. 158872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger */ 168872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenbergerpackage android.databinding.testapp; 178872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger 188872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenbergerimport android.content.ContentResolver; 19ed6b9dff563c5e22f040ff37e12c0d771e0478aeAndreas Gampeimport android.databinding.testapp.databinding.ImageViewAdapterTestBinding; 208872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenbergerimport android.databinding.testapp.vo.ImageViewBindingObject; 214c5efe9290543b723b76a8bd48518da1ae1dcb26Derek Sollenberger 22dccca44ffda4836b56a21da95a046c9708ffd49csergeyvimport android.net.Uri; 23dccca44ffda4836b56a21da95a046c9708ffd49csergeyvimport android.test.UiThreadTest; 24bad99183916ba2bac6659efc8a28273e344ba511sergeyvimport android.widget.ImageView; 25dccca44ffda4836b56a21da95a046c9708ffd49csergeyv 264c5efe9290543b723b76a8bd48518da1ae1dcb26Derek Sollenbergerpublic class ImageViewBindingAdapterTest 274c5efe9290543b723b76a8bd48518da1ae1dcb26Derek Sollenberger extends BindingAdapterTestBase<ImageViewAdapterTestBinding, ImageViewBindingObject> { 28acb4099deff72c2c631f7110a405a3331d3e8b27Derek Sollenberger 298872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger ImageView mView; 308872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger 318872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger public ImageViewBindingAdapterTest() { 328872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger super(ImageViewAdapterTestBinding.class, ImageViewBindingObject.class, 338872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger R.layout.image_view_adapter_test); 348872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger } 358872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger 368872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger @Override 378872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger protected void setUp() throws Exception { 388872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger super.setUp(); 39775873a66a946fae2b0535abb51df9817bd1b20cRichard Uhler mView = mBinder.view; 40775873a66a946fae2b0535abb51df9817bd1b20cRichard Uhler } 41775873a66a946fae2b0535abb51df9817bd1b20cRichard Uhler 42775873a66a946fae2b0535abb51df9817bd1b20cRichard Uhler public void testImageView() throws Throwable { 43775873a66a946fae2b0535abb51df9817bd1b20cRichard Uhler assertEquals(mBindingObject.getSrc(), mView.getDrawable()); 44775873a66a946fae2b0535abb51df9817bd1b20cRichard Uhler assertEquals(mBindingObject.getTint(), mView.getImageTintList().getDefaultColor()); 458872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertEquals(mBindingObject.getTintMode(), mView.getImageTintMode()); 468872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger 478872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger changeValues(); 48c1b33d665c8caf5760f68c45c6ca0baa649b832aJohn Reck 493731dc220ed457e0f1e99d7ec2589e0a43872b59John Reck assertEquals(mBindingObject.getSrc(), mView.getDrawable()); 50c1b33d665c8caf5760f68c45c6ca0baa649b832aJohn Reck assertEquals(mBindingObject.getTint(), mView.getImageTintList().getDefaultColor()); 513731dc220ed457e0f1e99d7ec2589e0a43872b59John Reck assertEquals(mBindingObject.getTintMode(), mView.getImageTintMode()); 52c1b33d665c8caf5760f68c45c6ca0baa649b832aJohn Reck } 533731dc220ed457e0f1e99d7ec2589e0a43872b59John Reck 548872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger @UiThreadTest 558872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger public void testImageSource() throws Throwable { 568872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertNull(mBinder.view2.getDrawable()); 578872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertNull(mBinder.view3.getDrawable()); 58c1b33d665c8caf5760f68c45c6ca0baa649b832aJohn Reck 593731dc220ed457e0f1e99d7ec2589e0a43872b59John Reck String uriString = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + 60c1b33d665c8caf5760f68c45c6ca0baa649b832aJohn Reck getActivity().getResources().getResourcePackageName(R.drawable.ic_launcher) + "/" + 613731dc220ed457e0f1e99d7ec2589e0a43872b59John Reck R.drawable.ic_launcher; 62c1b33d665c8caf5760f68c45c6ca0baa649b832aJohn Reck mBinder.setUriString(uriString); 633731dc220ed457e0f1e99d7ec2589e0a43872b59John Reck mBinder.setUri(Uri.parse(uriString)); 648872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger mBinder.executePendingBindings(); 658872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger 668872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertNotNull(mBinder.view2.getDrawable()); 678872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertNotNull(mBinder.view3.getDrawable()); 688872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger } 698872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger 708872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger @UiThreadTest 718872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger public void testConditionalSource() throws Throwable { 728872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger mBinder.setObj(null); 738872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger mBinder.executePendingBindings(); 748872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertNotNull(mBinder.view4.getDrawable()); 758872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger mBinder.setObj(new ImageViewBindingObject()); 768872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger mBinder.executePendingBindings(); 778872b38ef403cc2c44aca07d392f5e9426fd7f54Derek Sollenberger assertNull(mBinder.view4.getDrawable()); 786578a989566e585eee053095dc80e2552e125db2Derek Sollenberger } 796578a989566e585eee053095dc80e2552e125db2Derek Sollenberger} 806578a989566e585eee053095dc80e2552e125db2Derek Sollenberger