Bug 982797 - Robocop: Switch tests from using waitForTest to waitForCondition. r=liuche

CLOSED TREE
This commit is contained in:
Andy Pusch 2015-02-13 09:13:00 -05:00
Родитель deebe956da
Коммит 5b641e3fb5
12 изменённых файлов: 52 добавлений и 57 удалений

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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();
}

Просмотреть файл

@ -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);

Просмотреть файл

@ -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;

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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");
}
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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);

Просмотреть файл

@ -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<View> views = mSolo.getCurrentViews();
for (View view : views) {
// List may be displayed in different view formats.

Просмотреть файл

@ -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;
}
}