mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
86 lines
3.3 KiB
Java
86 lines
3.3 KiB
Java
package org.mozilla.gecko.tests;
|
|
|
|
import org.mozilla.gecko.Actions;
|
|
import org.mozilla.gecko.Element;
|
|
import org.mozilla.gecko.PaintedSurface;
|
|
import org.mozilla.gecko.R;
|
|
|
|
public class testFindInPage extends PixelTest {
|
|
private static final int WAIT_FOR_TEST = 3000;
|
|
protected Element next, close;
|
|
int height,width;
|
|
|
|
public void testFindInPage() {
|
|
blockForGeckoReady();
|
|
String url = getAbsoluteUrl("/robocop/robocop_text_page.html");
|
|
loadAndPaint(url);
|
|
|
|
// Select the upper left corner of the screen
|
|
height = mDriver.getGeckoHeight()/8;
|
|
width = mDriver.getGeckoWidth()/8;
|
|
|
|
/* Disabled by bug 958111.
|
|
// Search that does not find the term and therefor should not pan the page
|
|
Actions.RepeatedEventExpecter paintExpecter = mActions.expectPaint();
|
|
findText("Robocoop", 3); // This will be close enough to existing text to test that search finds just what it should
|
|
PaintedSurface painted = waitForPaint(paintExpecter);
|
|
paintExpecter.unregisterListener();
|
|
try {
|
|
mAsserter.ispixel(painted.getPixelAt(width,height), 255, 0, 0, "Pixel at " + String.valueOf(width) + "," + String.valueOf(height));
|
|
} finally {
|
|
painted.close();
|
|
}
|
|
*/
|
|
|
|
// Search that finds matches and therefor pans the page
|
|
Actions.RepeatedEventExpecter paintExpecter = mActions.expectPaint();
|
|
findText("Robocop", 3);
|
|
PaintedSurface painted = waitForPaint(paintExpecter);
|
|
paintExpecter.unregisterListener();
|
|
try {
|
|
mAsserter.isnotpixel(painted.getPixelAt(width,height), 255, 0, 0, "Pixel at " + String.valueOf(width) + "," + String.valueOf(height));
|
|
} finally {
|
|
painted.close();
|
|
}
|
|
}
|
|
|
|
public void findText(String text, int nrOfMatches){
|
|
selectMenuItem("Find in Page");
|
|
close = mDriver.findElement(getActivity(), R.id.find_close);
|
|
boolean success = waitForTest ( new BooleanTest() {
|
|
public boolean test() {
|
|
next = mDriver.findElement(getActivity(), R.id.find_next);
|
|
if (next != null) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
}, WAIT_FOR_TEST);
|
|
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
|
|
// Without the sleep this seems to work but the actions are not updated in the UI
|
|
mSolo.sleep(500);
|
|
|
|
mActions.sendKeys(text);
|
|
mActions.sendSpecialKey(Actions.SpecialKey.ENTER);
|
|
|
|
// Advance a few matches to scroll the page
|
|
for (int i=1;i < nrOfMatches;i++) {
|
|
success = waitForTest ( new BooleanTest() {
|
|
public boolean test() {
|
|
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
|
|
mAsserter.ok(success, "Checking if the next button was clicked", "button was clicked");
|
|
}
|
|
close.click(); // Close find in page bar
|
|
}
|
|
}
|