use of org.apache.tapestry5.corelib.components.Submit in project tapestry-5 by apache.
the class SubmitTest method trigger_immediate.
@Test
public void trigger_immediate() {
FormSupport support = mockFormSupport();
ComponentResources resources = mockComponentResources();
Heartbeat heartbeat = new HeartbeatImpl();
Request request = mockRequest();
String elementName = "myname";
train_getParameter(request, Form.SUBMITTING_ELEMENT_ID, null);
train_getParameter(request, elementName, "login");
replay();
heartbeat.begin();
Submit submit = new Submit(request);
TestBase.set(submit, "resources", resources, "formSupport", support, "heartbeat", heartbeat, "defer", false);
submit.processSubmission("xyz", elementName);
verify();
expect(resources.triggerEvent(EventConstants.SELECTED, null, null)).andReturn(false);
replay();
heartbeat.end();
verify();
}
use of org.apache.tapestry5.corelib.components.Submit in project tapestry-5 by apache.
the class PageTester method clickSubmitAndReturnResponse.
/**
* Simulates a submission of the form by clicking the specified submit button. The caller can
* specify values for the
* form fields.
*
* @param submitButton
* the submit button to be clicked.
* @param fieldValues
* the field values keyed on field names.
* @return The response object to assert against.
* @since 5.2.3
*/
public TestableResponse clickSubmitAndReturnResponse(Element submitButton, Map<String, String> fieldValues) {
assert submitButton != null;
assertIsSubmit(submitButton);
Element form = getFormAncestor(submitButton);
request.clear().setPath(stripContextFromPath(extractNonBlank(form, "action")));
pushFieldValuesIntoRequest(form);
overrideParameters(fieldValues);
String value = submitButton.getAttribute("value");
if (value == null)
value = DEFAULT_SUBMIT_VALUE_ATTRIBUTE;
request.overrideParameter(extractNonBlank(submitButton, "name"), value);
return runComponentEventRequest();
}
use of org.apache.tapestry5.corelib.components.Submit in project tapestry-5 by apache.
the class PageTester method pushFieldValuesIntoRequest.
private void pushFieldValuesIntoRequest(Element form) {
Visitor visitor = new Visitor() {
public void visit(Element element) {
if (InternalUtils.isNonBlank(element.getAttribute("disabled")))
return;
String name = element.getName();
if (name.equals("input")) {
String type = extractNonBlank(element, "type");
if (type.equals("radio") || type.equals("checkbox")) {
if (InternalUtils.isBlank(element.getAttribute("checked")))
return;
}
if (type.equals("button") || type.equals("submit"))
return;
// Handle radio, checkbox, text, radio, hidden
String value = element.getAttribute("value");
if (InternalUtils.isNonBlank(value))
request.loadParameter(extractNonBlank(element, "name"), value);
return;
}
if (name.equals("option")) {
String value = element.getAttribute("value");
if (InternalUtils.isNonBlank(element.getAttribute("selected"))) {
String selectName = extractNonBlank(findAncestor(element, "select"), "name");
request.loadParameter(selectName, value);
}
return;
}
if (name.equals("textarea")) {
String content = element.getChildMarkup();
if (InternalUtils.isNonBlank(content))
request.loadParameter(extractNonBlank(element, "name"), content);
return;
}
}
};
form.visit(visitor);
}
use of org.apache.tapestry5.corelib.components.Submit in project tapestry-5 by apache.
the class FormTests method radio_button_and_group.
@Test
public void radio_button_and_group() {
openLinks("RadioDemo");
String update = SUBMIT;
webDriver.findElements(By.cssSelector("label")).stream().filter(element -> element.getText().contains("Accounting")).findFirst().get().click();
clickAndWait(update);
assertTextPresent("Selected department: ACCOUNTING");
WebElement salesAndMarketing = webDriver.findElements(By.cssSelector("label")).stream().filter(element -> element.getText().contains("Sales And Marketin")).findFirst().get();
scrollIntoView(salesAndMarketing);
salesAndMarketing.click();
clickAndWait(update);
assertTextPresent("Selected department: SALES_AND_MARKETING");
// not in a loop ...
WebElement temp = webDriver.findElements(By.cssSelector("label")).stream().filter(element -> element.getText().contains("Temp")).findFirst().get();
scrollIntoView(temp);
temp.click();
clickAndWait(update);
assertTextPresent("Selected position: TEMP");
WebElement lifer = webDriver.findElements(By.cssSelector("label")).stream().filter(element -> element.getText().contains("Lifer")).findFirst().get();
scrollIntoView(lifer);
lifer.click();
clickAndWait(update);
assertTextPresent("Selected position: LIFER");
}
Aggregations