Reputation: 38882
I use Robotium as the library for Junit test for my Android application. I wrote some tests which works well. But when I try to write a test for native ActionBar's Up/Home button click, it failed.
My test code is very simple:
Solo solo = new Solo(getInstrumentation(), getActivity());
...
solo.clickOnActionBarHomeButton(); // I expected it will click the Up/Home button of ActionBar
I expected the above code will click the Up/Home button of native ActionBar, but it is failed, nothing was happening on action bar. Why??
P.S. I am using an Android 4.2.1 device.
Upvotes: 4
Views: 2124
Reputation: 21
You can click the Up/Home button (that is the first ImageButton element in the activity) by using the following code:
solo.clickOnImageButton(0);
instrumentation.waitForIdleSync();
Upvotes: 0
Reputation: 9112
In our application Home
button eventually calls NavUtils.navigateUpFromSameTask
. When using
solo.clickOnActionBarHomeButton();
to click Home
button, it doesn't work. However, I have noticed that solo.clickOnScreen
clicks on Home
button reliably. So we use this method instead of solo.clickOnActionBarHomeButton
:
protected void clickOnHome() {
solo.clickOnScreen(50, 50); //usually hits Home button
}
Upvotes: 1
Reputation: 2797
I use this function:
public void clickOnActionBarHomeButton(Solo solo) {
View homeView = solo.getView(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.id.home : R.id.home);
solo.clickOnView(homeView);
}
Maybe it's not a perfect decision, but it works.
Upvotes: 5