FragmentTestUtil.java revision 5da42343afdd9b343e89344aecb53875a5134242
1dcd23c6a5874355bb9296fd44cf0fc092ad5326fMyeongseok Baekpackage org.robolectric.util; 2dcd23c6a5874355bb9296fd44cf0fc092ad5326fMyeongseok Baek 3cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orrimport org.robolectric.Robolectric; 4cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr 5738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allisonimport android.app.Activity; 6738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allisonimport android.app.Fragment; 7cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orrimport android.app.FragmentManager; 83cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stottimport android.os.Bundle; 90b7537ef8b3e3bed85459ff4c214af07de81c1cdMyeongseok Baekimport android.support.v4.app.FragmentActivity; 103cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stottimport android.widget.LinearLayout; 110b7537ef8b3e3bed85459ff4c214af07de81c1cdMyeongseok Baek 12738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allisonpublic final class FragmentTestUtil { 13738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allison 1429a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams public static void startFragment(Fragment fragment) { 15cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr buildFragmentManager(FragmentUtilActivity.class) 16cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr .beginTransaction().add(fragment, null).commit(); 17738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allison } 18cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr 19cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr public static void startFragment(Fragment fragment, Class<? extends Activity> activityClass) { 20e7fbfaa13f9230ce29eb9f159821b8e02e3068daJimmy Orr buildFragmentManager(activityClass) 21e7fbfaa13f9230ce29eb9f159821b8e02e3068daJimmy Orr .beginTransaction().add(fragment, null).commit(); 22cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr } 23cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr 24738df879d116e324c7c2a6afc649d9b8c8fa12d2Dandre' Allison public static void startFragment(android.support.v4.app.Fragment fragment) { 25cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr buildSupportFragmentManager(FragmentUtilActivity.class) 26cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr .beginTransaction().add(fragment, null).commit(); 27cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr } 28cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr 29cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr public static void startFragment(android.support.v4.app.Fragment fragment, 30cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr Class<? extends FragmentActivity> fragmentActivityClass) { 31cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr buildSupportFragmentManager(fragmentActivityClass) 32cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr .beginTransaction().add(fragment, null).commit(); 3329a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams } 340b7537ef8b3e3bed85459ff4c214af07de81c1cdMyeongseok Baek 353cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott public static void startVisibleFragment(Fragment fragment) { 36cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr buildFragmentManager(FragmentUtilActivity.class) 37cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr .beginTransaction().add(1, fragment, null).commit(); 383cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott } 393cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott 405da42343afdd9b343e89344aecb53875a5134242Tony Cosentini public static void startVisibleFragment(Fragment fragment, 415da42343afdd9b343e89344aecb53875a5134242Tony Cosentini Class<? extends Activity> activityClass, int containerViewId) { 425da42343afdd9b343e89344aecb53875a5134242Tony Cosentini buildFragmentManager(activityClass) 435da42343afdd9b343e89344aecb53875a5134242Tony Cosentini .beginTransaction().add(containerViewId, fragment, null).commit(); 445da42343afdd9b343e89344aecb53875a5134242Tony Cosentini } 455da42343afdd9b343e89344aecb53875a5134242Tony Cosentini 463cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott public static void startVisibleFragment(android.support.v4.app.Fragment fragment) { 47cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr buildSupportFragmentManager(FragmentUtilActivity.class) 48cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr .beginTransaction().add(1, fragment, null).commit(); 493cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott } 503cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott 515da42343afdd9b343e89344aecb53875a5134242Tony Cosentini public static void startVisibleFragment(android.support.v4.app.Fragment fragment, 525da42343afdd9b343e89344aecb53875a5134242Tony Cosentini Class<?extends FragmentActivity> fragmentActivityClass, int containerViewId) { 535da42343afdd9b343e89344aecb53875a5134242Tony Cosentini buildSupportFragmentManager(fragmentActivityClass) 545da42343afdd9b343e89344aecb53875a5134242Tony Cosentini .beginTransaction().add(containerViewId, fragment, null).commit(); 555da42343afdd9b343e89344aecb53875a5134242Tony Cosentini } 565da42343afdd9b343e89344aecb53875a5134242Tony Cosentini 57cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr private static FragmentManager buildFragmentManager(Class<? extends Activity> activityClass) { 58cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr Activity activity = Robolectric.setupActivity(activityClass); 59b0f9dff48e989aa551b47fd72c5825cbe3cd4170Callum Stott return activity.getFragmentManager(); 60b0f9dff48e989aa551b47fd72c5825cbe3cd4170Callum Stott } 613cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott 62cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr private static android.support.v4.app.FragmentManager buildSupportFragmentManager( 63cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr Class<? extends FragmentActivity> fragmentActivityClass) { 64cc4de4d4e1c9737a138521388a57d387510aa34eJimmy Orr FragmentActivity activity = Robolectric.setupActivity(fragmentActivityClass); 65b0f9dff48e989aa551b47fd72c5825cbe3cd4170Callum Stott return activity.getSupportFragmentManager(); 663cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott } 673cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott 68b0f9dff48e989aa551b47fd72c5825cbe3cd4170Callum Stott private static class FragmentUtilActivity extends FragmentActivity { 693cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott @Override 703cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott protected void onCreate(Bundle savedInstanceState) { 713cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott super.onCreate(savedInstanceState); 723cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott LinearLayout view = new LinearLayout(this); 733cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott view.setId(1); 743cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott 753cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott setContentView(view); 763cf2701aa08d5b59c1ef4ab4a6d0580866762ba4Callum Stott } 7729a8359eaef1ee9f40c967d3c4b5c1117c8c2a43Christian Williams } 78dcd23c6a5874355bb9296fd44cf0fc092ad5326fMyeongseok Baek} 79