I want to test if a second activity is started upon a button click
public void testLanguaeSelect() {
startActivity(activityLanguageIntent, null, null);
TextView textViewTitleBarText = (TextView) getActivity().findViewById(R.id.titleBarText);
assertEquals(textViewTitleBarText.getText(), "Sprache");
final TextView textViewTextMiddle = (TextView) getActivity().findViewById(R.id.listItemTextMiddle);
assertEquals(textViewTextMiddle.getText(), "Deutsch");
((RelativeLayout) textViewTextMiddle.getParent()).performClick();
// check if intend is sent
Intent startedActivityIntent = getStartedActivityIntent();
assertNotNull(startedActivityIntent);
// wait for mainactivity to be started
ActivityMonitor mainActivityMonitor = new Instrumentation.ActivityMonitor(MainActivity.class.getName(), null, false);
getInstrumentation().addMonitor(mainActivityMonitor);
Activity activity = mainActivityMonitor.waitForActivityWithTimeout(10000);
assertNotNull("Activity was not started", activity);
}
the onlclick function
@Override
public void onClick(View v) {
v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.layout.animation_item_click));
Intent intent = new Intent(v.getContext(), MainActivity.class);
intent.putExtra("language", locale);
v.getContext().startActivity(intent);
}
The Intend is correct and the onclick function is called but waitForMonitorWithTimeout always runs in timeout and returns null.
my Android versions are
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="21" />