1 package org.robolectric.shadows; 2 3 import static com.google.common.truth.Truth.assertThat; 4 import static org.junit.Assert.assertSame; 5 import static org.robolectric.Shadows.shadowOf; 6 7 import android.view.Gravity; 8 import android.widget.LinearLayout; 9 import androidx.test.core.app.ApplicationProvider; 10 import androidx.test.ext.junit.runners.AndroidJUnit4; 11 import org.junit.Before; 12 import org.junit.Test; 13 import org.junit.runner.RunWith; 14 15 @RunWith(AndroidJUnit4.class) 16 public class ShadowLinearLayoutTest { 17 private LinearLayout linearLayout; 18 private ShadowLinearLayout shadow; 19 20 @Before setup()21 public void setup() { 22 linearLayout = new LinearLayout(ApplicationProvider.getApplicationContext()); 23 shadow = shadowOf(linearLayout); 24 } 25 26 @Test getLayoutParams_shouldReturnTheSameLinearLayoutParamsFromTheSetter()27 public void getLayoutParams_shouldReturnTheSameLinearLayoutParamsFromTheSetter() { 28 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(1, 2); 29 linearLayout.setLayoutParams(params); 30 31 assertSame(params, linearLayout.getLayoutParams()); 32 } 33 34 @Test canAnswerOrientation()35 public void canAnswerOrientation() { 36 assertThat(linearLayout.getOrientation()).isEqualTo(LinearLayout.HORIZONTAL); 37 linearLayout.setOrientation(LinearLayout.VERTICAL); 38 assertThat(linearLayout.getOrientation()).isEqualTo(LinearLayout.VERTICAL); 39 linearLayout.setOrientation(LinearLayout.HORIZONTAL); 40 assertThat(linearLayout.getOrientation()).isEqualTo(LinearLayout.HORIZONTAL); 41 } 42 43 @Test canAnswerGravity()44 public void canAnswerGravity() { 45 assertThat(shadow.getGravity()).isEqualTo(Gravity.TOP | Gravity.START); 46 linearLayout.setGravity(Gravity.CENTER_VERTICAL); // Only affects horizontal. 47 assertThat(shadow.getGravity()).isEqualTo(Gravity.CENTER_VERTICAL | Gravity.START); 48 linearLayout.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); // Affects both directions. 49 assertThat(shadow.getGravity()).isEqualTo(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); 50 } 51 } 52