Bug 1144879 - Android 4.3 testSessionHistory | Menu is open. r=mcomella

This commit is contained in:
Melchiorre Alastra 2015-12-07 15:00:55 +01:00
parent 38583b929e
commit 546a796711
2 changed files with 22 additions and 8 deletions

View File

@ -138,8 +138,6 @@ skip-if = android_version == "10" || android_version == "18"
[src/org/mozilla/gecko/tests/testNativeCrypto.java]
[src/org/mozilla/gecko/tests/testReaderModeTitle.java]
[src/org/mozilla/gecko/tests/testSessionHistory.java]
# disabled on Android 4.3, bug 1144879
skip-if = android_version == "18"
[src/org/mozilla/gecko/tests/testStateWhileLoading.java]
[src/org/mozilla/gecko/tests/testAccessibleCarets.java]

View File

@ -22,6 +22,7 @@ import org.mozilla.gecko.tests.helpers.WaitHelper;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import android.widget.RelativeLayout;
import com.jayway.android.robotium.solo.Condition;
import com.jayway.android.robotium.solo.RobotiumUtils;
@ -184,8 +185,10 @@ public class AppMenuComponent extends BaseComponent {
for (TextView textView : textViewList) {
if (TextUtils.equals(textView.getText(), text)) {
View relativeLayout = (View) textView.getParent();
View listMenuItemView = (View)relativeLayout.getParent();
return listMenuItemView;
if (relativeLayout instanceof RelativeLayout) {
View listMenuItemView = (View)relativeLayout.getParent();
return listMenuItemView;
}
}
}
return null;
@ -196,17 +199,16 @@ public class AppMenuComponent extends BaseComponent {
*
* Robotium will also try to open the menu if there are no open dialog.
*
* @param menuItemText, The title of menu item to open.
* @param menuItemTitle, The title of menu item to open.
*/
private void pressLegacyMenuItem(final String menuItemTitle) {
mSolo.clickOnMenuItem(menuItemTitle, true);
}
private void pressMenuItem(final String menuItemTitle) {
fAssertTrue("Menu is open", isMenuOpen(menuItemTitle));
if (!hasLegacyMenu()) {
final View menuItemView = findAppMenuItemView(menuItemTitle);
fAssertTrue("Menu is open", isMenuOpen(menuItemView));
fAssertTrue(String.format("The menu item %s is enabled", menuItemTitle), menuItemView.isEnabled());
fAssertEquals(String.format("The menu item %s is visible", menuItemTitle), View.VISIBLE,
@ -214,6 +216,7 @@ public class AppMenuComponent extends BaseComponent {
mSolo.clickOnView(menuItemView);
} else {
fAssertTrue("Menu is open", isMenuOpen(menuItemTitle));
pressLegacyMenuItem(menuItemTitle);
}
}
@ -306,7 +309,20 @@ public class AppMenuComponent extends BaseComponent {
* @return true if app menu is open.
*/
private boolean isMenuOpen(String menuItemTitle) {
return mSolo.searchText(menuItemTitle, true);
final View menuItemView = findAppMenuItemView(menuItemTitle);
return isMenuOpen(menuItemView) ? true : mSolo.searchText(menuItemTitle, true);
}
/**
* If a ListMenuItemView with menuItemTitle is visible then the app menu is open .
*
* @param menuItemView, must be a ListMenuItemView with menuItemTitle.
* You must use findAppMenuItemView(menuItemTitle) to obtain it.
*
* @return true if app menu is open.
*/
private boolean isMenuOpen(View menuItemView) {
return (menuItemView != null) && (menuItemView.getVisibility() == View.VISIBLE);
}
private void waitForMenuOpen() {