diff --git a/mobile/android/base/tests/AboutHomeTest.java b/mobile/android/base/tests/AboutHomeTest.java index 1a055e090f5b..30ee3be50c14 100644 --- a/mobile/android/base/tests/AboutHomeTest.java +++ b/mobile/android/base/tests/AboutHomeTest.java @@ -70,9 +70,9 @@ abstract class AboutHomeTest extends PixelTest { // Returns true if the bookmark is displayed in the bookmarks tab, false otherwise - does not check in folders protected void isBookmarkDisplayed(final String url) { - boolean isCorrect = waitForTest(new BooleanTest() { + boolean isCorrect = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { View bookmark = getDisplayedBookmark(url); return bookmark != null; } diff --git a/mobile/android/base/tests/BaseTest.java b/mobile/android/base/tests/BaseTest.java index 41f9a1b46757..3a56531af175 100644 --- a/mobile/android/base/tests/BaseTest.java +++ b/mobile/android/base/tests/BaseTest.java @@ -317,27 +317,6 @@ abstract class BaseTest extends BaseRobocopTest { return result; } - /** - * @deprecated use {@link #waitForCondition(Condition, int)} instead - */ - @Deprecated - protected final boolean waitForTest(final BooleanTest t, final int timeout) { - final boolean isSatisfied = mSolo.waitForCondition(new Condition() { - @Override - public boolean isSatisfied() { - return t.test(); - } - }, timeout); - - if (!isSatisfied) { - // log out wait failure for diagnostic purposes only; - // a failed wait may be normal and does not necessarily - // warrant a test assertion/failure - mAsserter.dumpLog("waitForTest timeout after " + timeout + " ms"); - } - return isSatisfied; - } - protected interface BooleanTest { public boolean test(); } diff --git a/mobile/android/base/tests/ContentContextMenuTest.java b/mobile/android/base/tests/ContentContextMenuTest.java index 0d2a365b574e..ced950c5b30e 100644 --- a/mobile/android/base/tests/ContentContextMenuTest.java +++ b/mobile/android/base/tests/ContentContextMenuTest.java @@ -9,6 +9,7 @@ import org.mozilla.gecko.util.Clipboard; import android.util.DisplayMetrics; +import com.jayway.android.robotium.solo.Condition; /** * This class covers interactions with the context menu opened from web content @@ -75,9 +76,9 @@ abstract class ContentContextMenuTest extends PixelTest { openWebContentContextMenu(copyOption); // Open the context menu if it is not already } mSolo.clickOnText(copyOption); - boolean correctText = waitForTest(new BooleanTest() { + boolean correctText = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { final String clipboardText = Clipboard.getText(); mAsserter.dumpLog("Clipboard text = " + clipboardText + " , expected text = " + copiedText); return clipboardText.contains(copiedText); diff --git a/mobile/android/base/tests/testAddSearchEngine.java b/mobile/android/base/tests/testAddSearchEngine.java index 987ec874293b..28e5672c96f1 100644 --- a/mobile/android/base/tests/testAddSearchEngine.java +++ b/mobile/android/base/tests/testAddSearchEngine.java @@ -18,6 +18,8 @@ import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.ListView; +import com.jayway.android.robotium.solo.Condition; + /** * Test adding a search engine from an input field context menu. * 1. Get the number of existing search engines from the SearchEngine:Data event and as displayed in about:home. @@ -140,9 +142,9 @@ public class testAddSearchEngine extends AboutHomeTest { public void verifyDisplayedSearchEnginesCount(final int expectedCount) { mSolo.clearEditText(0); mActions.sendKeys(SEARCH_TEXT); - boolean correctNumSearchEnginesDisplayed = waitForTest(new BooleanTest() { + boolean correctNumSearchEnginesDisplayed = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { ListView list = findListViewWithTag(HomePager.LIST_TAG_BROWSER_SEARCH); if (list == null) { return false; diff --git a/mobile/android/base/tests/testBookmark.java b/mobile/android/base/tests/testBookmark.java index c6ab761d3f3e..cb655f8f5507 100644 --- a/mobile/android/base/tests/testBookmark.java +++ b/mobile/android/base/tests/testBookmark.java @@ -4,6 +4,7 @@ package org.mozilla.gecko.tests; +import com.jayway.android.robotium.solo.Condition; public class testBookmark extends AboutHomeTest { private static String BOOKMARK_URL; @@ -42,9 +43,9 @@ public class testBookmark extends AboutHomeTest { } private void waitForBookmarked(final boolean isBookmarked) { - boolean bookmarked = waitForTest(new BooleanTest() { + boolean bookmarked = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { return (isBookmarked) ? mDatabaseHelper.isBookmark(BOOKMARK_URL) : !mDatabaseHelper.isBookmark(BOOKMARK_URL); diff --git a/mobile/android/base/tests/testBookmarklets.java b/mobile/android/base/tests/testBookmarklets.java index 2c1b2f4e5654..f264113ea801 100644 --- a/mobile/android/base/tests/testBookmarklets.java +++ b/mobile/android/base/tests/testBookmarklets.java @@ -10,6 +10,8 @@ import org.mozilla.gecko.home.HomePager; import android.database.Cursor; import android.widget.ListView; +import com.jayway.android.robotium.solo.Condition; + public class testBookmarklets extends AboutHomeTest { public void testBookmarklets() { @@ -28,9 +30,9 @@ public class testBookmarklets extends AboutHomeTest { // verify that user-entered bookmarklets do *not* work enterUrl(js); mActions.sendSpecialKey(Actions.SpecialKey.ENTER); - alerted = waitForTest(new BooleanTest() { + alerted = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { return mSolo.searchButton("OK", true) || mSolo.searchText("12.34", true); } }, 3000); @@ -68,9 +70,9 @@ public class testBookmarklets extends AboutHomeTest { mAsserter.is(found, true, "Found the bookmark: " + js + " and clicked on it"); } - alerted = waitForTest(new BooleanTest() { + alerted = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { return mSolo.searchButton("OK", true) && mSolo.searchText("12.34", true); } }, 3000); diff --git a/mobile/android/base/tests/testBrowserSearchVisibility.java b/mobile/android/base/tests/testBrowserSearchVisibility.java index 9f66839a4495..b5417562bdf4 100644 --- a/mobile/android/base/tests/testBrowserSearchVisibility.java +++ b/mobile/android/base/tests/testBrowserSearchVisibility.java @@ -8,6 +8,8 @@ import android.support.v4.app.Fragment; import android.view.KeyEvent; import android.view.View; +import com.jayway.android.robotium.solo.Condition; + /** * Test for browser search visibility. * Sends queries from url bar input and verifies that browser search @@ -44,9 +46,9 @@ public class testBrowserSearchVisibility extends BaseTest { } private void assertBrowserSearchVisibility(final boolean isVisible) { - waitForTest(new BooleanTest() { + waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { final Fragment browserSearch = getBrowserSearch(); // The fragment should not be present at all. Testing if the diff --git a/mobile/android/base/tests/testFindInPage.java b/mobile/android/base/tests/testFindInPage.java index 1974fb9a1f99..c650f4478062 100644 --- a/mobile/android/base/tests/testFindInPage.java +++ b/mobile/android/base/tests/testFindInPage.java @@ -16,8 +16,10 @@ import org.mozilla.gecko.util.EventCallback; import org.mozilla.gecko.util.NativeEventListener; import org.mozilla.gecko.util.NativeJSObject; +import com.jayway.android.robotium.solo.Condition; + public class testFindInPage extends JavascriptTest implements NativeEventListener { - private static final int WAIT_FOR_TEST = 3000; + private static final int WAIT_FOR_CONDITION_MS = 3000; protected Element next, close; public testFindInPage() { @@ -69,9 +71,9 @@ public class testFindInPage extends JavascriptTest implements NativeEventListene public void findText(String text, int nrOfMatches){ selectMenuItem(StringHelper.FIND_IN_PAGE_LABEL); close = mDriver.findElement(getActivity(), R.id.find_close); - boolean success = waitForTest ( new BooleanTest() { + boolean success = waitForCondition ( new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { next = mDriver.findElement(getActivity(), R.id.find_next); if (next != null) { return true; @@ -79,7 +81,7 @@ public class testFindInPage extends JavascriptTest implements NativeEventListene return false; } } - }, WAIT_FOR_TEST); + }, WAIT_FOR_CONDITION_MS); mAsserter.ok(success, "Looking for the next search match button in the Find in Page UI", "Found the next match button"); // TODO: Find a better way to wait and then enter the text @@ -91,17 +93,17 @@ public class testFindInPage extends JavascriptTest implements NativeEventListene // Advance a few matches to scroll the page for (int i=1;i < nrOfMatches;i++) { - success = waitForTest ( new BooleanTest() { + success = waitForCondition ( new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { if (next.click()) { return true; } else { return false; } } - }, WAIT_FOR_TEST); - mSolo.sleep(500); // TODO: Find a better way to wait here because waitForTest is not enough + }, WAIT_FOR_CONDITION_MS); + mSolo.sleep(500); // TODO: Find a better way to wait here because waitForCondition is not enough mAsserter.ok(success, "Checking if the next button was clicked", "button was clicked"); } } diff --git a/mobile/android/base/tests/testHistory.java b/mobile/android/base/tests/testHistory.java index c073dda0beb5..afa38f07682f 100644 --- a/mobile/android/base/tests/testHistory.java +++ b/mobile/android/base/tests/testHistory.java @@ -10,6 +10,8 @@ import android.widget.ListView; import org.mozilla.gecko.home.HomePager; +import com.jayway.android.robotium.solo.Condition; + public class testHistory extends AboutHomeTest { private View mFirstChild; @@ -35,9 +37,9 @@ public class testHistory extends AboutHomeTest { // Click on the history item and wait for the page to load // wait for the history list to be populated mFirstChild = null; - boolean success = waitForTest(new BooleanTest() { + boolean success = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { mFirstChild = hList.getChildAt(1); if (mFirstChild == null) { return false; diff --git a/mobile/android/base/tests/testImportFromAndroid.java b/mobile/android/base/tests/testImportFromAndroid.java index f73e6f729baa..320d7188e038 100644 --- a/mobile/android/base/tests/testImportFromAndroid.java +++ b/mobile/android/base/tests/testImportFromAndroid.java @@ -16,6 +16,8 @@ import android.database.Cursor; import android.net.Uri; import android.provider.Browser; +import com.jayway.android.robotium.solo.Condition; + /** * This test covers the Import from Android feature * The test will save the existing bookmarks and history then will do an Import @@ -56,9 +58,9 @@ public class testImportFromAndroid extends AboutHomeTest { * Add a delay to make sure the imported items are added to the array lists * if there are a lot of history items in the Android Browser database */ - boolean success = waitForTest(new BooleanTest() { + boolean success = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { if (androidData.size() <= firefoxHistory.size()) { return true; } else { @@ -142,9 +144,9 @@ public class testImportFromAndroid extends AboutHomeTest { mSolo.clickOnButton("Import"); // Wait until the import pop-up is dismissed. This depending on the number of items in the android history can take up to a few seconds - boolean importComplete = waitForTest(new BooleanTest() { + boolean importComplete = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { return !mSolo.searchText("Please wait..."); } }, MAX_WAIT_TIMEOUT); diff --git a/mobile/android/base/tests/testShareLink.java b/mobile/android/base/tests/testShareLink.java index fee1b0b6064e..e172f28cb0a7 100644 --- a/mobile/android/base/tests/testShareLink.java +++ b/mobile/android/base/tests/testShareLink.java @@ -243,9 +243,9 @@ public class testShareLink extends AboutHomeTest { private AbsListView getDisplayedShareList() { mViewGroup = null; - boolean success = waitForTest(new BooleanTest() { + boolean success = waitForCondition(new Condition() { @Override - public boolean test() { + public boolean isSatisfied() { ArrayList views = mSolo.getCurrentViews(); for (View view : views) { // List may be displayed in different view formats. diff --git a/mobile/android/base/tests/testThumbnails.java b/mobile/android/base/tests/testThumbnails.java index 89f62a0feb1f..8e6e11c00f70 100644 --- a/mobile/android/base/tests/testThumbnails.java +++ b/mobile/android/base/tests/testThumbnails.java @@ -5,6 +5,8 @@ import org.mozilla.gecko.db.BrowserDB; import android.content.ContentResolver; import android.graphics.Color; +import com.jayway.android.robotium.solo.Condition; + /** * Test for thumbnail updates. * - loads 2 pages, each of which yield an HTTP 200 @@ -33,9 +35,9 @@ public class testThumbnails extends BaseTest { inputAndLoadUrl(site2Url); mSolo.sleep(thumbnailDelay); inputAndLoadUrl(StringHelper.ABOUT_HOME_URL); - waitForTest(new ThumbnailTest(site1Title, Color.GREEN), 5000); + waitForCondition(new ThumbnailTest(site1Title, Color.GREEN), 5000); mAsserter.is(getTopSiteThumbnailColor(site1Title), Color.GREEN, "Top site thumbnail updated for HTTP 200"); - waitForTest(new ThumbnailTest(site2Title, Color.GREEN), 5000); + waitForCondition(new ThumbnailTest(site2Title, Color.GREEN), 5000); mAsserter.is(getTopSiteThumbnailColor(site2Title), Color.GREEN, "Top site thumbnail updated for HTTP 200"); // load sites again; both will have red background, and do404 will return HTTP 404 @@ -44,9 +46,9 @@ public class testThumbnails extends BaseTest { inputAndLoadUrl(site2Url); mSolo.sleep(thumbnailDelay); inputAndLoadUrl(StringHelper.ABOUT_HOME_URL); - waitForTest(new ThumbnailTest(site1Title, Color.RED), 5000); + waitForCondition(new ThumbnailTest(site1Title, Color.RED), 5000); mAsserter.is(getTopSiteThumbnailColor(site1Title), Color.RED, "Top site thumbnail updated for HTTP 200"); - waitForTest(new ThumbnailTest(site2Title, Color.GREEN), 5000); + waitForCondition(new ThumbnailTest(site2Title, Color.GREEN), 5000); mAsserter.is(getTopSiteThumbnailColor(site2Title), Color.GREEN, "Top site thumbnail not updated for HTTP 404"); // test dropping thumbnails @@ -64,7 +66,7 @@ public class testThumbnails extends BaseTest { mAsserter.ok(thumbnailData == null || thumbnailData.length == 0, "Checking for thumbnail data", "Thumbnail data found"); } - private class ThumbnailTest implements BooleanTest { + private class ThumbnailTest implements Condition { private final String mTitle; private final int mColor; @@ -74,7 +76,7 @@ public class testThumbnails extends BaseTest { } @Override - public boolean test() { + public boolean isSatisfied() { return getTopSiteThumbnailColor(mTitle) == mColor; } }