1+ package com .vogella .android .robolectric ;
2+
3+ import android .content .Context ;
4+ import android .support .test .rule .ActivityTestRule ;
5+ import android .support .test .runner .AndroidJUnit4 ;
6+ import android .util .DisplayMetrics ;
7+ import android .widget .LinearLayout ;
8+ import android .widget .TextView ;
9+
10+ import org .junit .Rule ;
11+ import org .junit .Test ;
12+ import org .junit .runner .RunWith ;
13+
14+ import static org .junit .Assert .assertEquals ;
15+
16+ @ RunWith (AndroidJUnit4 .class )
17+ public class AndroidActivityTest {
18+
19+ @ Rule
20+ public ActivityTestRule <RobolectricActivity > rule = new ActivityTestRule <RobolectricActivity >(RobolectricActivity .class );
21+
22+ @ Test
23+ public void shouldHaveDefaultMargin () {
24+ RobolectricActivity activity = rule .getActivity ();
25+ TextView textView = (TextView ) activity .findViewById (R .id .hello_textview );
26+
27+ int bottomMargin = ((LinearLayout .LayoutParams ) textView .getLayoutParams ()).bottomMargin ;
28+ assertEquals (dpToPx (activity .getApplicationContext (),5 ), bottomMargin );
29+ int topMargin = ((LinearLayout .LayoutParams ) textView .getLayoutParams ()).topMargin ;
30+ assertEquals (dpToPx (activity .getApplicationContext (),5 ), topMargin );
31+ int rightMargin = ((LinearLayout .LayoutParams ) textView .getLayoutParams ()).rightMargin ;
32+ assertEquals (dpToPx (activity .getApplicationContext (),10 ), rightMargin );
33+ int leftMargin = ((LinearLayout .LayoutParams ) textView .getLayoutParams ()).leftMargin ;
34+ assertEquals (dpToPx (activity .getApplicationContext (),10 ) , leftMargin );
35+ }
36+
37+ public static int dpToPx (Context context , int dp ) {
38+ int px = Math .round (dp * getPixelScaleFactor (context ));
39+ return px ;
40+ }
41+ private static float getPixelScaleFactor (Context context ) {
42+ DisplayMetrics displayMetrics = context .getResources ().getDisplayMetrics ();
43+ return (displayMetrics .xdpi / DisplayMetrics .DENSITY_DEFAULT );
44+ }
45+
46+ }
0 commit comments