14d8a62b819387c47a952e2643399d77d1ee15b1cChristian Williamspackage org.robolectric.util;
2dcd23c6a5874355bb9296fd44cf0fc092ad5326fMyeongseok Baek
3738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allisonimport android.app.Activity;
4738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allisonimport android.app.Fragment;
5cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orrimport android.app.FragmentManager;
63cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stottimport android.os.Bundle;
73cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stottimport android.widget.LinearLayout;
8851f2a9519be23c73a9e2929128179b405e2e7a6Christian Williamsimport org.robolectric.Robolectric;
90b7537ef8b3e3bed85459ff4c214af07de81c1cdMyeongseok Baek
108bd5ff0f93b1acfc1fff6e1fbe2969a1488e5925Christian Williams/**
118bd5ff0f93b1acfc1fff6e1fbe2969a1488e5925Christian Williams * @deprecated Please use {@link Robolectric#buildFragment(Class)} instead. This will be
128bd5ff0f93b1acfc1fff6e1fbe2969a1488e5925Christian Williams * removed in a forthcoming release,
138bd5ff0f93b1acfc1fff6e1fbe2969a1488e5925Christian Williams */
148bd5ff0f93b1acfc1fff6e1fbe2969a1488e5925Christian Williams@Deprecated
15738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allisonpublic final class FragmentTestUtil {
16738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allison
1729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  public static void startFragment(Fragment fragment) {
18cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr    buildFragmentManager(FragmentUtilActivity.class)
19cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr        .beginTransaction().add(fragment, null).commit();
20738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allison  }
21cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr
22cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr  public static void startFragment(Fragment fragment, Class<? extends Activity> activityClass) {
23e7fbfaa13f9230ce29eb9f159821b8e02e3068daJimmy Orr    buildFragmentManager(activityClass)
24e7fbfaa13f9230ce29eb9f159821b8e02e3068daJimmy Orr        .beginTransaction().add(fragment, null).commit();
25cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr  }
26cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr
273cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott  public static void startVisibleFragment(Fragment fragment) {
28cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr    buildFragmentManager(FragmentUtilActivity.class)
29cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr        .beginTransaction().add(1, fragment, null).commit();
303cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott  }
313cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott
325da42343afdd9b343e89344aecb53875a5134242Tony Cosentini  public static void startVisibleFragment(Fragment fragment,
335da42343afdd9b343e89344aecb53875a5134242Tony Cosentini      Class<? extends Activity> activityClass, int containerViewId) {
345da42343afdd9b343e89344aecb53875a5134242Tony Cosentini    buildFragmentManager(activityClass)
355da42343afdd9b343e89344aecb53875a5134242Tony Cosentini        .beginTransaction().add(containerViewId, fragment, null).commit();
365da42343afdd9b343e89344aecb53875a5134242Tony Cosentini  }
375da42343afdd9b343e89344aecb53875a5134242Tony Cosentini
38cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr  private static FragmentManager buildFragmentManager(Class<? extends Activity> activityClass) {
39cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr    Activity activity = Robolectric.setupActivity(activityClass);
40b0f9dff48e989aa551b47fd72c5825cbe3cd4170Callum Stott    return activity.getFragmentManager();
41b0f9dff48e989aa551b47fd72c5825cbe3cd4170Callum Stott  }
423cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott
43b7eb377f5caa86ab2cd106d3bd52a87755b766c5Ryan Spore  private static class FragmentUtilActivity extends Activity {
443cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott    @Override
453cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott    protected void onCreate(Bundle savedInstanceState) {
463cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott      super.onCreate(savedInstanceState);
473cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott      LinearLayout view = new LinearLayout(this);
483cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott      view.setId(1);
493cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott
503cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott      setContentView(view);
513cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott    }
5229a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams  }
53dcd23c6a5874355bb9296fd44cf0fc092ad5326fMyeongseok Baek}
54