SdkVersionTest.java revision f01c66d7aaafd713de64b499c568f5870855dcd5
1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *      http://www.apache.org/licenses/LICENSE-2.0
7 * Unless required by applicable law or agreed to in writing, software
8 * distributed under the License is distributed on an "AS IS" BASIS,
9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 * See the License for the specific language governing permissions and
11 * limitations under the License.
12 */
13
14package android.databinding.tool.reflection;
15
16import org.junit.Before;
17import org.junit.Test;
18
19import android.databinding.tool.reflection.java.JavaAnalyzer;
20
21import static org.junit.Assert.assertEquals;
22
23public class SdkVersionTest {
24
25    @Before
26    public void setUp() throws Exception {
27        JavaAnalyzer.initForTests();
28    }
29
30    @Test
31    public void testApiVersionsFromResources() {
32        SdkUtil.ApiChecker apiChecker = SdkUtil.sApiChecker;
33        int minSdk = SdkUtil.sMinSdk;
34        try {
35            SdkUtil.sApiChecker = new SdkUtil.ApiChecker(null);
36            ModelClass view = ModelAnalyzer.getInstance().findClass("android.widget.TextView", null);
37            ModelMethod isSuggestionsEnabled = view.getMethods("isSuggestionsEnabled", 0)[0];
38            assertEquals(14, SdkUtil.getMinApi(isSuggestionsEnabled));
39        } finally {
40            SdkUtil.sMinSdk = minSdk;
41            SdkUtil.sApiChecker = apiChecker;
42        }
43    }
44
45    @Test
46    public void testNewApiMethod() {
47        ModelClass view = ModelAnalyzer.getInstance().findClass("android.view.View", null);
48        ModelMethod setElevation = view.getMethods("setElevation", 1)[0];
49        assertEquals(21, SdkUtil.getMinApi(setElevation));
50    }
51
52    @Test
53    public void testCustomCode() {
54        ModelClass view = ModelAnalyzer.getInstance()
55                .findClass("android.databinding.tool.reflection.SdkVersionTest", null);
56        ModelMethod setElevation = view.getMethods("testCustomCode", 0)[0];
57        assertEquals(1, SdkUtil.getMinApi(setElevation));
58    }
59
60    @Test
61    public void testSetForeground() {
62        ModelClass view = ModelAnalyzer.getInstance()
63                .findClass("android.widget.FrameLayout", null);
64        ModelMethod setForeground = view.getMethods("setForeground", 1)[0];
65        assertEquals(1, SdkUtil.getMinApi(setForeground));
66    }
67}
68