• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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