ViewBindingAdapterTest.java revision d0bb3f1e1a94747bb3dd8bd2fee315d8816f0f5d
1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package android.databinding.testapp;
17
18import android.content.res.ColorStateList;
19import android.databinding.testapp.databinding.ViewAdapterTestBinding;
20import android.databinding.testapp.vo.ViewBindingObject;
21import android.graphics.drawable.Drawable;
22import android.os.Build;
23import android.test.UiThreadTest;
24import android.view.View;
25
26public class ViewBindingAdapterTest extends BindingAdapterTestBase<ViewAdapterTestBinding, ViewBindingObject> {
27
28    public ViewBindingAdapterTest() {
29        super(ViewAdapterTestBinding.class, ViewBindingObject.class, R.layout.view_adapter_test);
30    }
31
32    @Override
33    protected void setUp() throws Exception {
34        super.setUp();
35    }
36
37    public void testPadding() throws Throwable {
38        View view = mBinder.padding;
39        assertEquals(mBindingObject.getPadding(), view.getPaddingBottom());
40        assertEquals(mBindingObject.getPadding(), view.getPaddingTop());
41        assertEquals(mBindingObject.getPadding(), view.getPaddingRight());
42        assertEquals(mBindingObject.getPadding(), view.getPaddingLeft());
43
44        changeValues();
45
46        assertEquals(mBindingObject.getPadding(), view.getPaddingBottom());
47        assertEquals(mBindingObject.getPadding(), view.getPaddingTop());
48        assertEquals(mBindingObject.getPadding(), view.getPaddingRight());
49        assertEquals(mBindingObject.getPadding(), view.getPaddingLeft());
50    }
51
52    public void testPaddingLeftRight() throws Throwable {
53        View view = mBinder.paddingLeftRight;
54        assertEquals(mBindingObject.getPaddingLeft(), view.getPaddingLeft());
55        assertEquals(mBindingObject.getPaddingRight(), view.getPaddingRight());
56
57        changeValues();
58
59        assertEquals(mBindingObject.getPaddingLeft(), view.getPaddingLeft());
60        assertEquals(mBindingObject.getPaddingRight(), view.getPaddingRight());
61    }
62
63    public void testPaddingStartEnd() throws Throwable {
64        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
65            View view = mBinder.paddingStartEnd;
66            assertEquals(mBindingObject.getPaddingStart(), view.getPaddingStart());
67            assertEquals(mBindingObject.getPaddingEnd(), view.getPaddingEnd());
68
69            changeValues();
70
71            assertEquals(mBindingObject.getPaddingStart(), view.getPaddingStart());
72            assertEquals(mBindingObject.getPaddingEnd(), view.getPaddingEnd());
73        }
74    }
75
76    public void testPaddingTopBottom() throws Throwable {
77        View view = mBinder.paddingTopBottom;
78        assertEquals(mBindingObject.getPaddingTop(), view.getPaddingTop());
79        assertEquals(mBindingObject.getPaddingBottom(), view.getPaddingBottom());
80
81        changeValues();
82
83        assertEquals(mBindingObject.getPaddingTop(), view.getPaddingTop());
84        assertEquals(mBindingObject.getPaddingBottom(), view.getPaddingBottom());
85    }
86
87    public void testBackgroundTint() throws Throwable {
88        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
89            View view = mBinder.backgroundTint;
90            assertNotNull(view.getBackgroundTintList());
91            ColorStateList colorStateList = view.getBackgroundTintList();
92            assertEquals(mBindingObject.getBackgroundTint(), colorStateList.getDefaultColor());
93
94            changeValues();
95
96            assertNotNull(view.getBackgroundTintList());
97            colorStateList = view.getBackgroundTintList();
98            assertEquals(mBindingObject.getBackgroundTint(), colorStateList.getDefaultColor());
99        }
100    }
101
102    public void testFadeScrollbars() throws Throwable {
103        View view = mBinder.fadeScrollbars;
104        assertEquals(mBindingObject.getFadeScrollbars(), view.isScrollbarFadingEnabled());
105
106        changeValues();
107
108        assertEquals(mBindingObject.getFadeScrollbars(), view.isScrollbarFadingEnabled());
109    }
110
111    public void testNextFocus() throws Throwable {
112        View view = mBinder.nextFocus;
113
114        assertEquals(mBindingObject.getNextFocusDown(), view.getNextFocusDownId());
115        assertEquals(mBindingObject.getNextFocusUp(), view.getNextFocusUpId());
116        assertEquals(mBindingObject.getNextFocusLeft(), view.getNextFocusLeftId());
117        assertEquals(mBindingObject.getNextFocusRight(), view.getNextFocusRightId());
118        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
119            assertEquals(mBindingObject.getNextFocusForward(), view.getNextFocusForwardId());
120        }
121
122        changeValues();
123
124        assertEquals(mBindingObject.getNextFocusDown(), view.getNextFocusDownId());
125        assertEquals(mBindingObject.getNextFocusUp(), view.getNextFocusUpId());
126        assertEquals(mBindingObject.getNextFocusLeft(), view.getNextFocusLeftId());
127        assertEquals(mBindingObject.getNextFocusRight(), view.getNextFocusRightId());
128        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
129            assertEquals(mBindingObject.getNextFocusForward(), view.getNextFocusForwardId());
130        }
131    }
132
133    public void testRequiresFadingEdge() throws Throwable {
134        View view = mBinder.requiresFadingEdge;
135
136        assertTrue(view.isVerticalFadingEdgeEnabled());
137        assertFalse(view.isHorizontalFadingEdgeEnabled());
138
139        changeValues();
140
141        assertFalse(view.isVerticalFadingEdgeEnabled());
142        assertTrue(view.isHorizontalFadingEdgeEnabled());
143    }
144
145    public void testScrollbar() throws Throwable {
146        View view = mBinder.scrollbar;
147
148        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
149            assertEquals(mBindingObject.getScrollbarDefaultDelayBeforeFade(),
150                    view.getScrollBarDefaultDelayBeforeFade());
151            assertEquals(mBindingObject.getScrollbarFadeDuration(), view.getScrollBarFadeDuration());
152            assertEquals(mBindingObject.getScrollbarSize(), view.getScrollBarSize());
153        }
154        assertEquals(mBindingObject.getScrollbarStyle(), view.getScrollBarStyle());
155
156        changeValues();
157
158        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
159            assertEquals(mBindingObject.getScrollbarDefaultDelayBeforeFade(),
160                    view.getScrollBarDefaultDelayBeforeFade());
161            assertEquals(mBindingObject.getScrollbarFadeDuration(), view.getScrollBarFadeDuration());
162            assertEquals(mBindingObject.getScrollbarSize(), view.getScrollBarSize());
163        }
164        assertEquals(mBindingObject.getScrollbarStyle(), view.getScrollBarStyle());
165    }
166
167    public void testTransformPivot() throws Throwable {
168        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
169            View view = mBinder.transformPivot;
170
171            assertEquals(mBindingObject.getTransformPivotX(), view.getPivotX());
172            assertEquals(mBindingObject.getTransformPivotY(), view.getPivotY());
173
174            changeValues();
175
176            assertEquals(mBindingObject.getTransformPivotX(), view.getPivotX());
177            assertEquals(mBindingObject.getTransformPivotY(), view.getPivotY());
178        }
179    }
180
181    @UiThreadTest
182    public void testBackgroundDrawableDrawable() throws Throwable {
183        View view = mBinder.backgroundDrawable;
184        Drawable drawable = view.getBackground();
185        assertNotNull(drawable);
186    }
187
188    @UiThreadTest
189    public void testBackgroundDrawableWithTheme() throws Throwable {
190        View view = mBinder.backgroundWithTheme;
191        assertNotNull(view.getBackground());
192    }
193}
194