GravityCompatTest.java revision 7899d6f64ae6585a79c7c1844d4a5e8f894bf2d7
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.support.v4.view;
17
18import android.os.Build;
19import android.support.v4.view.GravityCompat;
20import android.support.v4.view.ViewCompat;
21import android.test.AndroidTestCase;
22import android.test.suitebuilder.annotation.SmallTest;
23import android.view.Gravity;
24import android.view.View;
25
26public class GravityCompatTest extends AndroidTestCase {
27    @SmallTest
28    public void testConstants() {
29        // Compat constants must match core constants since they can be OR'd with
30        // other core constants.
31        assertEquals("Start constants", GravityCompat.START, Gravity.START);
32        assertEquals("End constants", GravityCompat.END, Gravity.END);
33    }
34
35    @SmallTest
36    public void testGetAbsoluteGravity() {
37        assertEquals("Left under LTR",
38                GravityCompat.getAbsoluteGravity(Gravity.LEFT, ViewCompat.LAYOUT_DIRECTION_LTR),
39                Gravity.LEFT);
40        assertEquals("Right under LTR",
41                GravityCompat.getAbsoluteGravity(Gravity.RIGHT, ViewCompat.LAYOUT_DIRECTION_LTR),
42                Gravity.RIGHT);
43        assertEquals("Left under RTL",
44                GravityCompat.getAbsoluteGravity(Gravity.LEFT, ViewCompat.LAYOUT_DIRECTION_RTL),
45                Gravity.LEFT);
46        assertEquals("Right under RTL",
47                GravityCompat.getAbsoluteGravity(Gravity.RIGHT, ViewCompat.LAYOUT_DIRECTION_RTL),
48                Gravity.RIGHT);
49
50        assertEquals("Start under LTR",
51                GravityCompat.getAbsoluteGravity(GravityCompat.START,
52                        ViewCompat.LAYOUT_DIRECTION_LTR),
53                Gravity.LEFT);
54        assertEquals("End under LTR",
55                GravityCompat.getAbsoluteGravity(GravityCompat.END,
56                        ViewCompat.LAYOUT_DIRECTION_LTR),
57                Gravity.RIGHT);
58
59        if (Build.VERSION.SDK_INT >= 17) {
60            // The following tests are only expected to pass on v17+ devices
61            assertEquals("Start under RTL",
62                    GravityCompat.getAbsoluteGravity(GravityCompat.START,
63                            ViewCompat.LAYOUT_DIRECTION_RTL),
64                    Gravity.RIGHT);
65            assertEquals("End under RTL",
66                    GravityCompat.getAbsoluteGravity(GravityCompat.END,
67                            ViewCompat.LAYOUT_DIRECTION_RTL),
68                    Gravity.LEFT);
69        } else {
70            // And on older devices START is always LEFT, END is always RIGHT
71            assertEquals("Start under RTL",
72                    GravityCompat.getAbsoluteGravity(GravityCompat.START,
73                            ViewCompat.LAYOUT_DIRECTION_RTL),
74                    Gravity.LEFT);
75            assertEquals("End under RTL",
76                    GravityCompat.getAbsoluteGravity(GravityCompat.END,
77                            ViewCompat.LAYOUT_DIRECTION_RTL),
78                    Gravity.RIGHT);
79        }
80    }
81}
82