DimensionConsistencyTest.java revision 46216d0e61318e7af168e9e903ef8d943bb49b2e
1/* 2 * Copyright (C) 2017 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 com.android.setupwizardlib.util; 18 19import static org.junit.Assert.assertEquals; 20import static org.robolectric.RuntimeEnvironment.application; 21 22import android.content.Context; 23import android.content.res.Resources; 24import android.util.DisplayMetrics; 25import android.util.TypedValue; 26import android.view.ContextThemeWrapper; 27 28import com.android.setupwizardlib.BuildConfig; 29import com.android.setupwizardlib.R; 30import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; 31 32import org.junit.Before; 33import org.junit.Test; 34import org.junit.runner.RunWith; 35import org.robolectric.annotation.Config; 36 37@RunWith(SuwLibRobolectricTestRunner.class) 38@Config(constants = BuildConfig.class, sdk = Config.ALL_SDKS) 39public class DimensionConsistencyTest { 40 41 // Visual height of the framework switch widget 42 private static final int SWTICH_HEIGHT_DP = 26; 43 44 private Context mContext; 45 46 @Before 47 public void setUp() { 48 mContext = new ContextThemeWrapper(application, R.style.SuwThemeGlif_Light); 49 } 50 51 @Test 52 public void testSwitchPaddingTop() { 53 final Resources res = mContext.getResources(); 54 55 assertEquals( 56 "Switch and divider should be aligned at center vertically: " 57 + "suw_switch_padding_top + SWITCH_HEIGHT / 2 = " 58 + "suw_switch_divider_padding_top + suw_switch_divider_height / 2", 59 res.getDimensionPixelSize(R.dimen.suw_switch_divider_padding_top) 60 + (res.getDimensionPixelSize(R.dimen.suw_switch_divider_height) / 2), 61 res.getDimensionPixelSize(R.dimen.suw_switch_padding_top) 62 + (dp2Px(SWTICH_HEIGHT_DP) / 2)); 63 } 64 65 private int dp2Px(float dp) { 66 DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics(); 67 return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, displayMetrics); 68 } 69} 70