Search in sources :

Example 11 with Submit

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();
}
Also used : Heartbeat(org.apache.tapestry5.services.Heartbeat) Request(org.apache.tapestry5.http.services.Request) FormSupport(org.apache.tapestry5.services.FormSupport) HeartbeatImpl(org.apache.tapestry5.internal.services.HeartbeatImpl) ComponentResources(org.apache.tapestry5.ComponentResources) Test(org.testng.annotations.Test)

Example 12 with Submit

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();
}
Also used : Element(org.apache.tapestry5.dom.Element)

Example 13 with Submit

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);
}
Also used : Visitor(org.apache.tapestry5.dom.Visitor) Element(org.apache.tapestry5.dom.Element)

Example 14 with Submit

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");
}
Also used : Form(org.apache.tapestry5.corelib.components.Form) ExpectedConditions(org.openqa.selenium.support.ui.ExpectedConditions) Date(java.util.Date) By(org.openqa.selenium.By) ExpectedCondition(org.openqa.selenium.support.ui.ExpectedCondition) SimpleDateFormat(java.text.SimpleDateFormat) WebElement(org.openqa.selenium.WebElement) Test(org.testng.annotations.Test) WebElement(org.openqa.selenium.WebElement) Test(org.testng.annotations.Test)

Aggregations

Test (org.testng.annotations.Test)8 Request (org.apache.tapestry5.http.services.Request)5 ComponentResources (org.apache.tapestry5.ComponentResources)4 Element (org.apache.tapestry5.dom.Element)4 FormSupport (org.apache.tapestry5.services.FormSupport)4 ComponentActionSink (org.apache.tapestry5.corelib.internal.ComponentActionSink)2 Heartbeat (org.apache.tapestry5.services.Heartbeat)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 SimpleDateFormat (java.text.SimpleDateFormat)1 Date (java.util.Date)1 Asset (org.apache.tapestry5.Asset)1 Form (org.apache.tapestry5.corelib.components.Form)1 FormSupportAdapter (org.apache.tapestry5.corelib.internal.FormSupportAdapter)1 FormSupportImpl (org.apache.tapestry5.corelib.internal.FormSupportImpl)1 HiddenFieldPositioner (org.apache.tapestry5.corelib.internal.HiddenFieldPositioner)1 Document (org.apache.tapestry5.dom.Document)1 Visitor (org.apache.tapestry5.dom.Visitor)1 Link (org.apache.tapestry5.http.Link)1 BeanValidationContextImpl (org.apache.tapestry5.internal.BeanValidationContextImpl)1 HeartbeatImpl (org.apache.tapestry5.internal.services.HeartbeatImpl)1