171eb6908f2689bd17000237eb645896c36da0138George Mount/* 271eb6908f2689bd17000237eb645896c36da0138George Mount * Copyright (C) 2015 The Android Open Source Project 371eb6908f2689bd17000237eb645896c36da0138George Mount * 471eb6908f2689bd17000237eb645896c36da0138George Mount * Licensed under the Apache License, Version 2.0 (the "License"); 571eb6908f2689bd17000237eb645896c36da0138George Mount * you may not use this file except in compliance with the License. 671eb6908f2689bd17000237eb645896c36da0138George Mount * You may obtain a copy of the License at 771eb6908f2689bd17000237eb645896c36da0138George Mount * 871eb6908f2689bd17000237eb645896c36da0138George Mount * http://www.apache.org/licenses/LICENSE-2.0 971eb6908f2689bd17000237eb645896c36da0138George Mount * 1071eb6908f2689bd17000237eb645896c36da0138George Mount * Unless required by applicable law or agreed to in writing, software 1171eb6908f2689bd17000237eb645896c36da0138George Mount * distributed under the License is distributed on an "AS IS" BASIS, 1271eb6908f2689bd17000237eb645896c36da0138George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1371eb6908f2689bd17000237eb645896c36da0138George Mount * See the License for the specific language governing permissions and 1471eb6908f2689bd17000237eb645896c36da0138George Mount * limitations under the License. 1571eb6908f2689bd17000237eb645896c36da0138George Mount */ 16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp; 1771eb6908f2689bd17000237eb645896c36da0138George Mount 18cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mountimport android.content.ContentResolver; 192e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.ImageViewAdapterTestBinding; 20fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.testapp.vo.ImageViewBindingObject; 2171eb6908f2689bd17000237eb645896c36da0138George Mount 22cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mountimport android.net.Uri; 23cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mountimport android.test.UiThreadTest; 2471eb6908f2689bd17000237eb645896c36da0138George Mountimport android.widget.ImageView; 2571eb6908f2689bd17000237eb645896c36da0138George Mount 2671eb6908f2689bd17000237eb645896c36da0138George Mountpublic class ImageViewBindingAdapterTest 274c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount extends BindingAdapterTestBase<ImageViewAdapterTestBinding, ImageViewBindingObject> { 2871eb6908f2689bd17000237eb645896c36da0138George Mount 2971eb6908f2689bd17000237eb645896c36da0138George Mount ImageView mView; 3071eb6908f2689bd17000237eb645896c36da0138George Mount 3171eb6908f2689bd17000237eb645896c36da0138George Mount public ImageViewBindingAdapterTest() { 324c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount super(ImageViewAdapterTestBinding.class, ImageViewBindingObject.class, 3371eb6908f2689bd17000237eb645896c36da0138George Mount R.layout.image_view_adapter_test); 3471eb6908f2689bd17000237eb645896c36da0138George Mount } 3571eb6908f2689bd17000237eb645896c36da0138George Mount 3671eb6908f2689bd17000237eb645896c36da0138George Mount @Override 3771eb6908f2689bd17000237eb645896c36da0138George Mount protected void setUp() throws Exception { 3871eb6908f2689bd17000237eb645896c36da0138George Mount super.setUp(); 3934a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount mView = mBinder.view; 4071eb6908f2689bd17000237eb645896c36da0138George Mount } 4171eb6908f2689bd17000237eb645896c36da0138George Mount 4271eb6908f2689bd17000237eb645896c36da0138George Mount public void testImageView() throws Throwable { 4371eb6908f2689bd17000237eb645896c36da0138George Mount assertEquals(mBindingObject.getSrc(), mView.getDrawable()); 4471eb6908f2689bd17000237eb645896c36da0138George Mount assertEquals(mBindingObject.getTint(), mView.getImageTintList().getDefaultColor()); 4571eb6908f2689bd17000237eb645896c36da0138George Mount assertEquals(mBindingObject.getTintMode(), mView.getImageTintMode()); 4671eb6908f2689bd17000237eb645896c36da0138George Mount 4771eb6908f2689bd17000237eb645896c36da0138George Mount changeValues(); 4871eb6908f2689bd17000237eb645896c36da0138George Mount 4971eb6908f2689bd17000237eb645896c36da0138George Mount assertEquals(mBindingObject.getSrc(), mView.getDrawable()); 5071eb6908f2689bd17000237eb645896c36da0138George Mount assertEquals(mBindingObject.getTint(), mView.getImageTintList().getDefaultColor()); 5171eb6908f2689bd17000237eb645896c36da0138George Mount assertEquals(mBindingObject.getTintMode(), mView.getImageTintMode()); 5271eb6908f2689bd17000237eb645896c36da0138George Mount } 53cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount 54cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount @UiThreadTest 55cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount public void testImageSource() throws Throwable { 56cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount assertNull(mBinder.view2.getDrawable()); 57cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount assertNull(mBinder.view3.getDrawable()); 58cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount 59cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount String uriString = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + 60cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount getActivity().getResources().getResourcePackageName(R.drawable.ic_launcher) + "/" + 61cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount R.drawable.ic_launcher; 62cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount mBinder.setUriString(uriString); 63cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount mBinder.setUri(Uri.parse(uriString)); 64cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount mBinder.executePendingBindings(); 65cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount 66cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount assertNotNull(mBinder.view2.getDrawable()); 67cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount assertNotNull(mBinder.view3.getDrawable()); 68cc0e609d998fa9f82d62050bea525afa3a6f92f3George Mount } 69d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount 70d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount @UiThreadTest 71d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount public void testConditionalSource() throws Throwable { 72d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount mBinder.setObj(null); 73d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount mBinder.executePendingBindings(); 74d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount assertNotNull(mBinder.view4.getDrawable()); 75d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount mBinder.setObj(new ImageViewBindingObject()); 76d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount mBinder.executePendingBindings(); 77d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount assertNull(mBinder.view4.getDrawable()); 78d6339f712b4b8ce04a1cb3eec9c2574f4d170990George Mount } 7971eb6908f2689bd17000237eb645896c36da0138George Mount} 80