ImmoSearch test
git-svn-id: svn://10.0.0.236/trunk@228751 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
48936af290
commit
82767a0cde
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: ImmoSearchTest.java,v 1.1 2007-06-26 07:17:25 edburns%acm.org Exp $
|
||||
* $Id: ImmoSearchTest.java,v 1.2 2007-06-26 11:29:27 edburns%acm.org Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -64,6 +64,8 @@ public class ImmoSearchTest extends WebclientTestCase {
|
||||
enum TestFeature {
|
||||
RECEIVED_END_AJAX_EVENT,
|
||||
HAS_MAP,
|
||||
HAS_VALID_FIRST_AUTOCOMPLETE_RESPONSE,
|
||||
HAS_VALID_SECOND_AUTOCOMPLETE_RESPONSE,
|
||||
HAS_VALID_RESPONSE_TEXT,
|
||||
HAS_VALID_RESPONSE_XML,
|
||||
HAS_VALID_READYSTATE,
|
||||
@ -80,13 +82,53 @@ public class ImmoSearchTest extends WebclientTestCase {
|
||||
final BitSet bitSet = new BitSet();
|
||||
AjaxListener listener = new AjaxListener() {
|
||||
public void endAjax(Map eventMap) {
|
||||
bitSet.flip(TestFeature.RECEIVED_END_AJAX_EVENT.ordinal());
|
||||
bitSet.set(TestFeature.RECEIVED_END_AJAX_EVENT.ordinal(),
|
||||
true);
|
||||
if (null != eventMap) {
|
||||
bitSet.flip(TestFeature.HAS_MAP.ordinal());
|
||||
bitSet.set(TestFeature.HAS_MAP.ordinal(), true);
|
||||
}
|
||||
String readyState = (String) eventMap.get("readyState");
|
||||
bitSet.set(TestFeature.HAS_VALID_READYSTATE.ordinal(),
|
||||
null != readyState && readyState.equals("4"));
|
||||
|
||||
String responseText = (String) eventMap.get("responseText");
|
||||
|
||||
// Test the first autocomplete response:
|
||||
if (-1 != responseText.indexOf("8400 Winterthur") &&
|
||||
-1 != responseText.indexOf("8200 Schaffhausen") &&
|
||||
-1 != responseText.indexOf("8500 Frauenfeld") &&
|
||||
-1 != responseText.indexOf("8610 Uster") &&
|
||||
-1 != responseText.indexOf("8280 Kreuzlingen") &&
|
||||
-1 != responseText.indexOf("8050 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8645 Jona") &&
|
||||
-1 != responseText.indexOf("8600 D\u00fcbendorf") &&
|
||||
-1 != responseText.indexOf("8810 Horgen") &&
|
||||
-1 != responseText.indexOf("8700 K\u00fcsnacht ZH")) {
|
||||
bitSet.flip(TestFeature.HAS_VALID_FIRST_AUTOCOMPLETE_RESPONSE.ordinal());
|
||||
}
|
||||
if (-1 != responseText.indexOf("8050 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8032 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8049 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8048 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8006 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8057 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8004 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8008 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8046 Z\u00fcrich") &&
|
||||
-1 != responseText.indexOf("8051 Z\u00fcrich")) {
|
||||
bitSet.flip(TestFeature.HAS_VALID_SECOND_AUTOCOMPLETE_RESPONSE.ordinal());
|
||||
|
||||
|
||||
}
|
||||
if (bitSet.get(TestFeature.HAS_VALID_FIRST_AUTOCOMPLETE_RESPONSE.ordinal()) ||
|
||||
bitSet.get(TestFeature.HAS_VALID_SECOND_AUTOCOMPLETE_RESPONSE.ordinal())) {
|
||||
bitSet.set(TestFeature.STOP_WAITING.ordinal(),true);
|
||||
}
|
||||
LOGGER.info("Received Ajax ResponseText: " + responseText);
|
||||
}
|
||||
};
|
||||
mcp.addAjaxListener(listener);
|
||||
|
||||
final Thread mainThread = Thread.currentThread();
|
||||
|
||||
TimeoutHandler timeoutHandler = new TimeoutHandler() {
|
||||
@ -107,14 +149,42 @@ public class ImmoSearchTest extends WebclientTestCase {
|
||||
// Get the Postleitzahl text field
|
||||
Element plzInput = mcp.findElement("basefield");
|
||||
assertNotNull(plzInput);
|
||||
mcp.setCurrentElementText("80");
|
||||
|
||||
boolean keepWaiting = true;
|
||||
while (keepWaiting) {
|
||||
Thread.currentThread().sleep(1000);
|
||||
}
|
||||
mcp.focusElement(plzInput);
|
||||
|
||||
// Append "8" into the text field
|
||||
bitSet.clear();
|
||||
mcp.appendToCurrentElementText("8");
|
||||
|
||||
makeAjaxAssertions(bitSet);
|
||||
|
||||
// Append "0" into the text field.
|
||||
bitSet.clear();
|
||||
mcp.appendToCurrentElementText("0");
|
||||
|
||||
makeAjaxAssertions(bitSet);
|
||||
|
||||
mcp.deleteBrowserControl();
|
||||
}
|
||||
|
||||
private void makeAjaxAssertions(BitSet bitSet) throws Exception {
|
||||
// Artifically wait for the ajax transaction to complete, or the timeout to be reached.
|
||||
int i = 0;
|
||||
while (true) {
|
||||
if (bitSet.get(TestFeature.STOP_WAITING.ordinal())) {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
Thread.currentThread().sleep(mcp.getTimeoutWaitInterval());
|
||||
}
|
||||
|
||||
// assert that the ajax transaction succeeded
|
||||
assertTrue(bitSet.get(TestFeature.RECEIVED_END_AJAX_EVENT.ordinal()));
|
||||
assertTrue(bitSet.get(TestFeature.HAS_MAP.ordinal()));
|
||||
assertTrue(bitSet.get(TestFeature.HAS_VALID_FIRST_AUTOCOMPLETE_RESPONSE.ordinal()) ^
|
||||
bitSet.get(TestFeature.HAS_VALID_SECOND_AUTOCOMPLETE_RESPONSE.ordinal()));
|
||||
assertTrue(bitSet.get(TestFeature.HAS_VALID_READYSTATE.ordinal()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: MCP.java,v 1.14 2007-06-26 07:17:26 edburns%acm.org Exp $
|
||||
* $Id: MCP.java,v 1.15 2007-06-26 11:29:27 edburns%acm.org Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -417,11 +417,7 @@ public class MCP {
|
||||
return currentElement;
|
||||
}
|
||||
|
||||
public void setCurrentElementText(String newValue) {
|
||||
if (null == currentElement) {
|
||||
throw new IllegalStateException("You must find an element before you can set its text.");
|
||||
}
|
||||
|
||||
public void focusElement(Element toFocus) {
|
||||
String
|
||||
screenX = currentElement.getAttribute("screenX"),
|
||||
screenY = currentElement.getAttribute("screenY");
|
||||
@ -440,17 +436,31 @@ public class MCP {
|
||||
robot.mouseMove(x, y);
|
||||
robot.mousePress(InputEvent.BUTTON1_MASK);
|
||||
robot.mouseRelease(InputEvent.BUTTON1_MASK);
|
||||
len = newValue.length();
|
||||
for (i = 0; i < len; i++) {
|
||||
}
|
||||
// PENDING(edburns): make it so each character in newValue
|
||||
// is translated into a keyCode.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void appendToCurrentElementText(String toAppend) {
|
||||
if (null == currentElement) {
|
||||
throw new IllegalStateException("You must find an element before you can set its text.");
|
||||
}
|
||||
|
||||
int i,len,x,y;
|
||||
Robot robot = getRobot();
|
||||
len = toAppend.length();
|
||||
for (i = 0; i < len; i++) {
|
||||
}
|
||||
|
||||
// PENDING(edburns): make it so each character in toAppend
|
||||
// is translated into a keyCode.
|
||||
if (toAppend.equals("8")) {
|
||||
robot.keyPress(KeyEvent.VK_8);
|
||||
robot.keyRelease(KeyEvent.VK_8);
|
||||
}
|
||||
if (toAppend.equals("0")) {
|
||||
robot.keyPress(KeyEvent.VK_0);
|
||||
robot.keyRelease(KeyEvent.VK_0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user