1/*
2 * Copyright (C) 2011 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 */
16
17package android.view;
18
19import android.test.AndroidTestCase;
20import android.test.suitebuilder.annotation.SmallTest;
21
22public class GravityTest extends AndroidTestCase {
23
24    @SmallTest
25    public void testGetAbsoluteGravity() throws Exception {
26        assertOneGravity(Gravity.LEFT, Gravity.LEFT, false);
27        assertOneGravity(Gravity.LEFT, Gravity.LEFT, true);
28
29        assertOneGravity(Gravity.RIGHT, Gravity.RIGHT, false);
30        assertOneGravity(Gravity.RIGHT, Gravity.RIGHT, true);
31
32        assertOneGravity(Gravity.TOP, Gravity.TOP, false);
33        assertOneGravity(Gravity.TOP, Gravity.TOP, true);
34
35        assertOneGravity(Gravity.BOTTOM, Gravity.BOTTOM, false);
36        assertOneGravity(Gravity.BOTTOM, Gravity.BOTTOM, true);
37
38        assertOneGravity(Gravity.CENTER_VERTICAL, Gravity.CENTER_VERTICAL, false);
39        assertOneGravity(Gravity.CENTER_VERTICAL, Gravity.CENTER_VERTICAL, true);
40
41        assertOneGravity(Gravity.CENTER_HORIZONTAL, Gravity.CENTER_HORIZONTAL, false);
42        assertOneGravity(Gravity.CENTER_HORIZONTAL, Gravity.CENTER_HORIZONTAL, true);
43
44        assertOneGravity(Gravity.CENTER, Gravity.CENTER, false);
45        assertOneGravity(Gravity.CENTER, Gravity.CENTER, true);
46
47        assertOneGravity(Gravity.FILL_VERTICAL, Gravity.FILL_VERTICAL, false);
48        assertOneGravity(Gravity.FILL_VERTICAL, Gravity.FILL_VERTICAL, true);
49
50        assertOneGravity(Gravity.FILL_HORIZONTAL, Gravity.FILL_HORIZONTAL, false);
51        assertOneGravity(Gravity.FILL_HORIZONTAL, Gravity.FILL_HORIZONTAL, true);
52
53        assertOneGravity(Gravity.FILL, Gravity.FILL, false);
54        assertOneGravity(Gravity.FILL, Gravity.FILL, true);
55
56        assertOneGravity(Gravity.CLIP_HORIZONTAL, Gravity.CLIP_HORIZONTAL, false);
57        assertOneGravity(Gravity.CLIP_HORIZONTAL, Gravity.CLIP_HORIZONTAL, true);
58
59        assertOneGravity(Gravity.CLIP_VERTICAL, Gravity.CLIP_VERTICAL, false);
60        assertOneGravity(Gravity.CLIP_VERTICAL, Gravity.CLIP_VERTICAL, true);
61
62        assertOneGravity(Gravity.LEFT, Gravity.START, false);
63        assertOneGravity(Gravity.RIGHT, Gravity.START, true);
64
65        assertOneGravity(Gravity.RIGHT, Gravity.END, false);
66        assertOneGravity(Gravity.LEFT, Gravity.END, true);
67    }
68
69    private void assertOneGravity(int expected, int initial, boolean isRtl) {
70        final int layoutDirection = isRtl ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR;
71
72        assertEquals(expected, Gravity.getAbsoluteGravity(initial, layoutDirection));
73    }
74}
75