1 package org.robolectric.android; 2 3 import static com.google.common.truth.Truth.assertThat; 4 import static org.robolectric.util.FragmentTestUtil.startFragment; 5 import static org.robolectric.util.FragmentTestUtil.startVisibleFragment; 6 7 import android.app.Activity; 8 import android.app.Fragment; 9 import android.os.Bundle; 10 import android.view.LayoutInflater; 11 import android.view.View; 12 import android.view.ViewGroup; 13 import android.widget.LinearLayout; 14 import android.widget.TextView; 15 import androidx.test.ext.junit.runners.AndroidJUnit4; 16 import org.junit.Test; 17 import org.junit.runner.RunWith; 18 import org.robolectric.R; 19 20 @RunWith(AndroidJUnit4.class) 21 public class FragmentTestUtilTest { 22 @Test startFragment_shouldStartFragment()23 public void startFragment_shouldStartFragment() { 24 final LoginFragment fragment = new LoginFragment(); 25 startFragment(fragment); 26 27 assertThat(fragment.getView()).isNotNull(); 28 assertThat(fragment.getActivity()).isNotNull(); 29 assertThat((TextView) fragment.getView().findViewById(R.id.tacos)).isNotNull(); 30 } 31 32 @Test startVisibleFragment_shouldStartFragment()33 public void startVisibleFragment_shouldStartFragment() { 34 final LoginFragment fragment = new LoginFragment(); 35 startVisibleFragment(fragment); 36 37 assertThat(fragment.getView()).isNotNull(); 38 assertThat(fragment.getActivity()).isNotNull(); 39 assertThat((TextView) fragment.getView().findViewById(R.id.tacos)).isNotNull(); 40 } 41 42 @Test startVisibleFragment_shouldAttachFragmentToActivity()43 public void startVisibleFragment_shouldAttachFragmentToActivity() { 44 final LoginFragment fragment = new LoginFragment(); 45 startVisibleFragment(fragment); 46 47 assertThat(fragment.getView().getWindowToken()).isNotNull(); 48 } 49 50 @Test startFragment_shouldStartFragmentWithSpecifiedActivityClass()51 public void startFragment_shouldStartFragmentWithSpecifiedActivityClass() { 52 final LoginFragment fragment = new LoginFragment(); 53 startFragment(fragment, LoginActivity.class); 54 55 assertThat(fragment.getView()).isNotNull(); 56 assertThat(fragment.getActivity()).isNotNull(); 57 assertThat((TextView) fragment.getView().findViewById(R.id.tacos)).isNotNull(); 58 assertThat(fragment.getActivity()).isInstanceOf(LoginActivity.class); 59 } 60 61 @Test startVisibleFragment_shouldStartFragmentWithSpecifiedActivityClass()62 public void startVisibleFragment_shouldStartFragmentWithSpecifiedActivityClass() { 63 final LoginFragment fragment = new LoginFragment(); 64 startVisibleFragment(fragment, LoginActivity.class, 1); 65 66 assertThat(fragment.getView()).isNotNull(); 67 assertThat(fragment.getActivity()).isNotNull(); 68 assertThat((TextView) fragment.getView().findViewById(R.id.tacos)).isNotNull(); 69 assertThat(fragment.getActivity()).isInstanceOf(LoginActivity.class); 70 } 71 72 @Test startVisibleFragment_shouldAttachFragmentToActivityWithSpecifiedActivityClass()73 public void startVisibleFragment_shouldAttachFragmentToActivityWithSpecifiedActivityClass() { 74 final LoginFragment fragment = new LoginFragment(); 75 startVisibleFragment(fragment, LoginActivity.class, 1); 76 77 assertThat(fragment.getView().getWindowToken()).isNotNull(); 78 assertThat(fragment.getActivity()).isInstanceOf(LoginActivity.class); 79 } 80 81 public static class LoginFragment extends Fragment { 82 @Override onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)83 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 84 return inflater.inflate(R.layout.fragment_contents, container, false); 85 } 86 } 87 88 private static class LoginActivity extends Activity { 89 @Override onCreate(Bundle savedInstanceState)90 protected void onCreate(Bundle savedInstanceState) { 91 super.onCreate(savedInstanceState); 92 LinearLayout view = new LinearLayout(this); 93 view.setId(1); 94 95 setContentView(view); 96 } 97 } 98 } 99 100