зеркало из https://github.com/mozilla/gecko-dev.git
Bug 982797 - Robocop: Switch tests from using waitForTest to waitForCondition. r=liuche
CLOSED TREE
This commit is contained in:
Родитель
deebe956da
Коммит
5b641e3fb5
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче