17201118b5554426cea3fcd07e4fd96e999d3eea9George Mount/*
27201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * Copyright (C) 2015 The Android Open Source Project
37201118b5554426cea3fcd07e4fd96e999d3eea9George Mount *
47201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * Licensed under the Apache License, Version 2.0 (the "License");
57201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * you may not use this file except in compliance with the License.
67201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * You may obtain a copy of the License at
77201118b5554426cea3fcd07e4fd96e999d3eea9George Mount *
87201118b5554426cea3fcd07e4fd96e999d3eea9George Mount *      http://www.apache.org/licenses/LICENSE-2.0
97201118b5554426cea3fcd07e4fd96e999d3eea9George Mount *
107201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * Unless required by applicable law or agreed to in writing, software
117201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * distributed under the License is distributed on an "AS IS" BASIS,
127201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * See the License for the specific language governing permissions and
147201118b5554426cea3fcd07e4fd96e999d3eea9George Mount * limitations under the License.
157201118b5554426cea3fcd07e4fd96e999d3eea9George Mount */
16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp;
177201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
18975c05c00dae9193a636c4775df81d8665fc6749George Mountimport android.content.res.ColorStateList;
192e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.ViewAdapterTestBinding;
20fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.testapp.vo.ViewBindingObject;
21e562335722e3644c582cc8f7fb564bce2b869cb5George Mountimport android.graphics.drawable.Drawable;
227201118b5554426cea3fcd07e4fd96e999d3eea9George Mountimport android.os.Build;
23e562335722e3644c582cc8f7fb564bce2b869cb5George Mountimport android.test.UiThreadTest;
247201118b5554426cea3fcd07e4fd96e999d3eea9George Mountimport android.view.View;
257201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
264c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mountpublic class ViewBindingAdapterTest extends BindingAdapterTestBase<ViewAdapterTestBinding, ViewBindingObject> {
277201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
287201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public ViewBindingAdapterTest() {
294c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        super(ViewAdapterTestBinding.class, ViewBindingObject.class, R.layout.view_adapter_test);
307201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
317201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
327201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    @Override
337201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    protected void setUp() throws Exception {
347201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        super.setUp();
357201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
367201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
377201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testPadding() throws Throwable {
3834a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.padding;
3971eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingBottom());
4071eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingTop());
4171eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingRight());
4271eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingLeft());
437201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
447201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
457201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
4671eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingBottom());
4771eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingTop());
4871eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingRight());
4971eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPadding(), view.getPaddingLeft());
507201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
517201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
527201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testPaddingLeftRight() throws Throwable {
5334a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.paddingLeftRight;
5471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingLeft(), view.getPaddingLeft());
5571eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingRight(), view.getPaddingRight());
567201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
577201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
587201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
5971eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingLeft(), view.getPaddingLeft());
6071eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingRight(), view.getPaddingRight());
617201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
627201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
637201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testPaddingStartEnd() throws Throwable {
647201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
6534a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount            View view = mBinder.paddingStartEnd;
6671eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getPaddingStart(), view.getPaddingStart());
6771eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getPaddingEnd(), view.getPaddingEnd());
687201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
697201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            changeValues();
707201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
7171eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getPaddingStart(), view.getPaddingStart());
7271eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getPaddingEnd(), view.getPaddingEnd());
737201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
747201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
757201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
767201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testPaddingTopBottom() throws Throwable {
7734a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.paddingTopBottom;
7871eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingTop(), view.getPaddingTop());
7971eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingBottom(), view.getPaddingBottom());
807201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
817201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
827201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
8371eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingTop(), view.getPaddingTop());
8471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getPaddingBottom(), view.getPaddingBottom());
857201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
867201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
877201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testBackgroundTint() throws Throwable {
887201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
8934a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount            View view = mBinder.backgroundTint;
907201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            assertNotNull(view.getBackgroundTintList());
917201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            ColorStateList colorStateList = view.getBackgroundTintList();
9271eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getBackgroundTint(), colorStateList.getDefaultColor());
937201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
947201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            changeValues();
957201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
967201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            assertNotNull(view.getBackgroundTintList());
977201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            colorStateList = view.getBackgroundTintList();
9871eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getBackgroundTint(), colorStateList.getDefaultColor());
997201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
1007201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
1017201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1027201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testFadeScrollbars() throws Throwable {
10334a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.fadeScrollbars;
10471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getFadeScrollbars(), view.isScrollbarFadingEnabled());
1057201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1067201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
1077201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
10871eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getFadeScrollbars(), view.isScrollbarFadingEnabled());
1097201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
1107201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1117201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testNextFocus() throws Throwable {
11234a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.nextFocus;
1137201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
11471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusDown(), view.getNextFocusDownId());
11571eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusUp(), view.getNextFocusUpId());
11671eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusLeft(), view.getNextFocusLeftId());
11771eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusRight(), view.getNextFocusRightId());
1187201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
11971eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getNextFocusForward(), view.getNextFocusForwardId());
1207201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
1217201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1227201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
1237201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
12471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusDown(), view.getNextFocusDownId());
12571eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusUp(), view.getNextFocusUpId());
12671eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusLeft(), view.getNextFocusLeftId());
12771eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getNextFocusRight(), view.getNextFocusRightId());
1287201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
12971eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getNextFocusForward(), view.getNextFocusForwardId());
1307201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
1317201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
1327201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1337201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testRequiresFadingEdge() throws Throwable {
13434a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.requiresFadingEdge;
1357201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1367201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        assertTrue(view.isVerticalFadingEdgeEnabled());
1377201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        assertFalse(view.isHorizontalFadingEdgeEnabled());
1387201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1397201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
1407201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1417201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        assertFalse(view.isVerticalFadingEdgeEnabled());
1427201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        assertTrue(view.isHorizontalFadingEdgeEnabled());
1437201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
1447201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1457201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testScrollbar() throws Throwable {
14634a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        View view = mBinder.scrollbar;
1477201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1487201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
14971eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getScrollbarDefaultDelayBeforeFade(),
1507201118b5554426cea3fcd07e4fd96e999d3eea9George Mount                    view.getScrollBarDefaultDelayBeforeFade());
15171eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getScrollbarFadeDuration(), view.getScrollBarFadeDuration());
15271eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getScrollbarSize(), view.getScrollBarSize());
1537201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
15471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getScrollbarStyle(), view.getScrollBarStyle());
1557201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1567201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        changeValues();
1577201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1587201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
15971eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getScrollbarDefaultDelayBeforeFade(),
1607201118b5554426cea3fcd07e4fd96e999d3eea9George Mount                    view.getScrollBarDefaultDelayBeforeFade());
16171eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getScrollbarFadeDuration(), view.getScrollBarFadeDuration());
16271eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getScrollbarSize(), view.getScrollBarSize());
1637201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
16471eb6908f2689bd17000237eb645896c36da0138George Mount        assertEquals(mBindingObject.getScrollbarStyle(), view.getScrollBarStyle());
1657201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
1667201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1677201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    public void testTransformPivot() throws Throwable {
1687201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
16934a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount            View view = mBinder.transformPivot;
1707201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
17171eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getTransformPivotX(), view.getPivotX());
17271eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getTransformPivotY(), view.getPivotY());
1737201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
1747201118b5554426cea3fcd07e4fd96e999d3eea9George Mount            changeValues();
1757201118b5554426cea3fcd07e4fd96e999d3eea9George Mount
17671eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getTransformPivotX(), view.getPivotX());
17771eb6908f2689bd17000237eb645896c36da0138George Mount            assertEquals(mBindingObject.getTransformPivotY(), view.getPivotY());
1787201118b5554426cea3fcd07e4fd96e999d3eea9George Mount        }
1797201118b5554426cea3fcd07e4fd96e999d3eea9George Mount    }
180e562335722e3644c582cc8f7fb564bce2b869cb5George Mount
181e562335722e3644c582cc8f7fb564bce2b869cb5George Mount    @UiThreadTest
182e562335722e3644c582cc8f7fb564bce2b869cb5George Mount    public void testBackgroundDrawableDrawable() throws Throwable {
183e562335722e3644c582cc8f7fb564bce2b869cb5George Mount        View view = mBinder.backgroundDrawable;
184e562335722e3644c582cc8f7fb564bce2b869cb5George Mount        Drawable drawable = view.getBackground();
185e562335722e3644c582cc8f7fb564bce2b869cb5George Mount        assertNotNull(drawable);
186e562335722e3644c582cc8f7fb564bce2b869cb5George Mount    }
187d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5dGeorge Mount
188d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5dGeorge Mount    @UiThreadTest
189d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5dGeorge Mount    public void testBackgroundDrawableWithTheme() throws Throwable {
190d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5dGeorge Mount        View view = mBinder.backgroundWithTheme;
191d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5dGeorge Mount        assertNotNull(view.getBackground());
192d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5dGeorge Mount    }
1937201118b5554426cea3fcd07e4fd96e999d3eea9George Mount}
194