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