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