com.vaadin.testbench.TestBenchElement

Here are the examples of the java api com.vaadin.testbench.TestBenchElement taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

87 Examples 7

19 Source : UpdatableModelPropertiesIT.java
with MIT License
from mcollovati

private WebElement getElement(String id) {
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    return template.$(TestBenchElement.clreplaced).id(id);
}

19 Source : TwoWayPolymerBindingIT.java
with MIT License
from mcollovati

@Test
public void initialModelValueIsPresentAndModelUpdatesNormally() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    WebElement input = template.$(TestBenchElement.clreplaced).id("input");
    // The initial client-side value should be sent from the client to the
    // model
    waitUntil(driver -> "Value: foo".equals(getStatusMessage()));
    // now make explicit updates from the client side
    input.clear();
    input.sendKeys("a");
    replacedert.replacedertEquals("Value: a", getStatusMessage());
    input.sendKeys("b");
    replacedert.replacedertEquals("Value: ab", getStatusMessage());
    // Reset the model value from the server-side
    template.$(TestBenchElement.clreplaced).id("reset").click();
    replacedert.replacedertEquals("Value:", getStatusMessage());
    replacedert.replacedertEquals("", getValueProperty(input));
    input.sendKeys("c");
    replacedert.replacedertEquals("Value: c", getStatusMessage());
}

19 Source : TwoWayPolymerBindingIT.java
with MIT License
from mcollovati

private String getStatusMessage() {
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    return template.$(TestBenchElement.clreplaced).id("status").getText();
}

19 Source : TemplateWithConnectedCallbacksIT.java
with MIT License
from mcollovati

private void replacedertMessageIsWrittenFromServer() {
    waitForElementPresent(By.tagName("template-with-connected-callbacks"));
    TestBenchElement element = $("template-with-connected-callbacks").first();
    TestBenchElement messageElement = element.$(TestBenchElement.clreplaced).id("connectedMessage");
    replacedert.replacedertEquals("Connected (checked from server side)", messageElement.getText());
}

19 Source : TemplatesVisibilityIT.java
with MIT License
from mcollovati

@Test
public void grandParentVisibility_descendantsAreBound() {
    open();
    TestBenchElement grandParent = $("js-grand-parent").first();
    TestBenchElement subTemplate = grandParent.$("js-sub-template").first();
    // Check child and grand child property values. They shouldn't be set
    // since the elements are not bound
    TestBenchElement subTemplateProp = subTemplate.$(TestBenchElement.clreplaced).id("prop");
    TestBenchElement grandChild = subTemplate.$(TestBenchElement.clreplaced).id("js-grand-child");
    WebElement grandChildFooProp = grandChild.$(TestBenchElement.clreplaced).id("foo-prop");
    WebElement grandChildProp = replacedertInitialPropertyValues(subTemplateProp, grandChild, grandChildFooProp);
    // make parent visible
    findElement(By.id("grand-parent-visibility")).click();
    // now all descendants should be bound and JS is executed for the
    // grandchild
    replacedertBound(subTemplateProp, grandChildFooProp, grandChildProp);
}

19 Source : TemplatesVisibilityIT.java
with MIT License
from mcollovati

@Test
public void subTemplateVisibility_grandChildIsBound() {
    open();
    TestBenchElement grandParent = $("js-grand-parent").first();
    TestBenchElement subTemplate = grandParent.$("js-sub-template").first();
    // make sub template invisible
    findElement(By.id("sub-template-visibility")).click();
    // nothing has changed: parent is not bound -> descendants are still not
    // bound
    TestBenchElement subTemplateProp = subTemplate.$(TestBenchElement.clreplaced).id("prop");
    TestBenchElement grandChild = subTemplate.$(TestBenchElement.clreplaced).id("js-grand-child");
    WebElement grandChildFooProp = grandChild.$(TestBenchElement.clreplaced).id("foo-prop");
    replacedertInitialPropertyValues(subTemplateProp, grandChild, grandChildFooProp);
    // make parent visible
    findElement(By.id("grand-parent-visibility")).click();
    // sub template is invisible now, again: all properties have no values
    WebElement grandChildProp = replacedertInitialPropertyValues(subTemplateProp, grandChild, grandChildFooProp);
    // make sub template visible
    findElement(By.id("sub-template-visibility")).click();
    // now everything is bound
    replacedertBound(subTemplateProp, grandChildFooProp, grandChildProp);
}

19 Source : TemplateMappingDetectorIT.java
with MIT License
from mcollovati

private void replacedertMappedComponentsAreMarkedProperly(TestBenchElement container, boolean templateInTemplate) {
    TestBenchElement mappedComponent = container.$(TestBenchElement.clreplaced).id("detector1");
    replacedert.replacedertEquals("Template mapped: true", mappedComponent.getText());
    TestBenchElement standaloneComponent = container.$(TestBenchElement.clreplaced).id("detector2");
    replacedert.replacedertEquals("Template mapped: false", standaloneComponent.getText());
    TestBenchElement standaloneComposite = container.$(TestBenchElement.clreplaced).id("detector3");
    replacedert.replacedertEquals("Composite template mapped: false Template mapped: false", standaloneComposite.getText());
    TestBenchElement theTemplateItself = container.$(TestBenchElement.clreplaced).id("detector4");
    replacedert.replacedertEquals("The template itself: " + templateInTemplate, theTemplateItself.getText());
}

19 Source : TemplateMappingDetectorIT.java
with MIT License
from mcollovati

@Test
public void composite_mappedComponentsAreMarkedreplaceduch() {
    open();
    TestBenchElement container = $(TestBenchElement.clreplaced).id("composite");
    replacedertMappedComponentsAreMarkedProperly(container, false);
}

19 Source : TemplateMappingDetectorIT.java
with MIT License
from mcollovati

@Test
public void templateInTemplate_mappedComponentsAreMarkedreplaceduch() {
    open();
    TestBenchElement parentTemplate = $("template-mapping-detector-parent").first();
    TestBenchElement container = parentTemplate.$(TestBenchElement.clreplaced).id("detector");
    replacedertMappedComponentsAreMarkedProperly(container, true);
}

19 Source : TemplateMappingDetectorIT.java
with MIT License
from mcollovati

@Test
public void regularTemplate_mappedComponentsAreMarkedreplaceduch() {
    open();
    TestBenchElement container = $("template-mapping-detector").first();
    replacedertMappedComponentsAreMarkedProperly(container, false);
}

19 Source : TemplateHasInjectedSubTemplateIT.java
with MIT License
from mcollovati

@Test
public void injectedSubTemplate_injectedInstanceWorks() throws InterruptedException {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    TestBenchElement child = template.$(TestBenchElement.clreplaced).id("child");
    TestBenchElement text = child.$(TestBenchElement.clreplaced).id("text");
    replacedert.replacedertEquals("foo", text.getText());
    template.$(TestBenchElement.clreplaced).id("button").click();
    waitUntil(driver -> "bar".equals(text.getText()));
}

19 Source : PolymerPropertyChangeEventIT.java
with MIT License
from mcollovati

@Test
public void propertyChangeEvent() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    template.$(TestBenchElement.clreplaced).id("input").sendKeys("foo");
    List<WebElement> changeEvents = findElements(By.clreplacedName("change-event"));
    replacedert.replacedertTrue("Expected property change event is not fired. " + "Element with expected old and new value is not found", changeEvents.stream().anyMatch(event -> "New property value: 'foo', old property value: 'fo'".equals(event.getText())));
}

19 Source : PolymerPropertiesIT.java
with MIT License
from mcollovati

@Test
public void propertyAdd_propertyBecomesAvailable() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    template.$(TestBenchElement.clreplaced).id("set-property").click();
    TestBenchElement name = template.$(TestBenchElement.clreplaced).id("name");
    replacedert.replacedertEquals("foo", name.getText());
}

19 Source : OneWayPolymerBindingIT.java
with MIT License
from mcollovati

private void checkInitialState(TestBenchElement template) {
    String messageDivText = template.$(TestBenchElement.clreplaced).id("messageDiv").getText();
    String replacedleDivText = template.$(TestBenchElement.clreplaced).id("replacedleDiv").getText();
    replacedert.replacedertEquals(OneWayPolymerBindingView.MESSAGE, messageDivText);
    replacedert.replacedertEquals("", replacedleDivText);
}

19 Source : OneWayPolymerBindingIT.java
with MIT License
from mcollovati

private void checkStateAfterClick(TestBenchElement template) {
    String changedMessageDivText = template.$(TestBenchElement.clreplaced).id("messageDiv").getText();
    String replacedleDivText = template.$(TestBenchElement.clreplaced).id("replacedleDiv").getText();
    replacedert.replacedertEquals(OneWayPolymerBindingView.NEW_MESSAGE, changedMessageDivText);
    replacedert.replacedertEquals("", replacedleDivText);
}

19 Source : OneWayPolymerBindingIT.java
with MIT License
from mcollovati

private void checkTemplateModel(TestBenchElement template) {
    replacedertTrue(template.$(TestBenchElement.clreplaced).attribute("id", "replacedleDivConditional").all().size() > 0);
    replacedert.replacedertEquals(0, template.$(TestBenchElement.clreplaced).attribute("id", "nonExistingProperty").all().size());
}

19 Source : OneWayPolymerBindingIT.java
with MIT License
from mcollovati

// Numerous tests are carried out in the single test case, because it's
// expensive to launch numerous Chrome instances
@Test
public void initialModelValueIsPresentAndModelUpdatesNormally() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    checkInitialState(template);
    checkTemplateModel(template);
    template.$(TestBenchElement.clreplaced).id("changeModelValue").click();
    checkStateAfterClick(template);
    checkTemplateModel(template);
}

19 Source : LazyWidgetIT.java
with MIT License
from mcollovati

@Test
public void lazyLoadedPolymerTemplateWorksAsElement() {
    open();
    // template is lazy loaded,
    waitForElementVisible(By.id("template"));
    // need some time to load
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    String input = "InputMaster";
    replacedert.replacedertFalse("No greeting should be present before we press the button", isPresentInShadowRoot(template, By.id("greeting")));
    template.$(TestBenchElement.clreplaced).id("input").sendKeys(input);
    template.$(TestBenchElement.clreplaced).id("button").click();
    replacedert.replacedertEquals("Greeting is different from expected", String.format(LazyWidgetView.GREETINGS_TEMPLATE, input), template.$(TestBenchElement.clreplaced).id("greeting").getText());
}

19 Source : HiddenTemplateIT.java
with MIT License
from mcollovati

@Test
public void initiallyNotHiddenElementChangesItsVisibility() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    WebElement hidden = template.$(TestBenchElement.clreplaced).id("hidden");
    hidden.click();
    WebElement child = template.$(TestBenchElement.clreplaced).id("child");
    replacedert.replacedertNull(child.getAttribute("hidden"));
    WebElement visibility = template.$(TestBenchElement.clreplaced).id("visibility");
    visibility.click();
    replacedert.replacedertNotNull(child.getAttribute("hidden"));
    visibility.click();
    replacedert.replacedertNull(child.getAttribute("hidden"));
}

19 Source : HiddenTemplateIT.java
with MIT License
from mcollovati

@Test
public void initiallyHiddenElementStaysHidden() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    WebElement child = template.$(TestBenchElement.clreplaced).id("child");
    replacedert.replacedertNotNull(child.getAttribute("hidden"));
    WebElement visibility = template.$(TestBenchElement.clreplaced).id("visibility");
    visibility.click();
    replacedert.replacedertNotNull(child.getAttribute("hidden"));
    visibility.click();
    replacedert.replacedertNotNull(child.getAttribute("hidden"));
}

19 Source : ExceptionsDuringPropertyUpdatesIT.java
with MIT License
from mcollovati

@Test
public void exceptionInMapSyncDoesNotCauseInternalError() {
    open();
    TestBenchElement template = $("exceptions-property-update").first();
    template.$("button").id("set-properties").click();
    replacedertNoSystemErrors();
    TestBenchElement msg = template.$("div").id("message");
    replacedert.replacedertEquals("Name is updated to bar", msg.getText());
    List<TestBenchElement> errors = template.$("div").attribute("clreplaced", "error").all();
    Set<String> errorMsgs = errors.stream().map(TestBenchElement::getText).collect(Collectors.toSet());
    replacedert.replacedertEquals(2, errorMsgs.size());
    replacedert.replacedertTrue(errorMsgs.contains("An error occurred: java.lang.RuntimeException: Intentional exception in property sync handler for 'text'"));
    replacedert.replacedertTrue(errorMsgs.contains("An error occurred: java.lang.IllegalStateException: Intentional exception in property sync handler for 'replacedle'"));
}

19 Source : EventHandlerIT.java
with MIT License
from mcollovati

@Test
public void handleEventOnServer() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    template.$(TestBenchElement.clreplaced).id("handle").click();
    replacedert.replacedertTrue("Unable to find server event handler invocation confirmation. " + "Looks like 'click' event handler has not been invoked on the server side", isElementPresent(By.id("event-handler-result")));
    template.$(TestBenchElement.clreplaced).id("send").click();
    TestBenchElement container = $(TestBenchElement.clreplaced).id("event-data");
    List<TestBenchElement> divs = container.$("div").all();
    replacedert.replacedertEquals("Unexpected 'button' event data in the received event handler parameter", "button: 0", divs.get(1).getText());
    replacedert.replacedertEquals("Unexpected 'type' event data in the received event handler parameter", "type: click", divs.get(2).getText());
    replacedert.replacedertEquals("Unexpected 'tag' event data in the received event handler parameter", "tag: button", divs.get(3).getText());
    // Check event functionality for event with both client and server
    // handler
    template.$(TestBenchElement.clreplaced).id("overridden").click();
    replacedert.replacedertTrue("Unable to find server event handler invocation confirmation.", isElementPresent(By.id("overridden-event-handler-result")));
    replacedert.replacedertEquals("Received result wasn't updated by client!", "Overridden server event was invoked with result: ClientSide handler", findElement(By.id("overridden-event-handler-result")).getText());
}

19 Source : DomRepeatIT.java
with MIT License
from mcollovati

@Test
public void checkThatIndicesAreCorrect() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    for (int i = 0; i < DomRepeatView.NUMBER_OF_EMPLOYEES; i++) {
        template.$(TestBenchElement.clreplaced).id(DomRepeatView.TR_ID_PREFIX + i).click();
        String eventIndex = template.$(TestBenchElement.clreplaced).id(DomRepeatView.EVENT_INDEX_ID).getText();
        String repeatIndex = template.$(TestBenchElement.clreplaced).id(DomRepeatView.REPEAT_INDEX_ID).getText();
        replacedert.replacedertEquals(eventIndex, repeatIndex);
        replacedert.replacedertEquals(i, Integer.parseInt(repeatIndex));
    }
}

19 Source : ConvertToBeanIT.java
with MIT License
from mcollovati

@Test
public void convertToBean_valuesAreUpdated() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    template.$(TestBenchElement.clreplaced).id("day").sendKeys("2");
    template.$(TestBenchElement.clreplaced).id("month").sendKeys("5");
    template.$(TestBenchElement.clreplaced).id("year").sendKeys("2000");
    template.$(TestBenchElement.clreplaced).id("click").click();
    String text = template.$(TestBenchElement.clreplaced).id("msg").getText();
    replacedert.replacedertEquals("02.05.2000", text);
}

19 Source : ModelListIT.java
with MIT License
from mcollovati

public clreplaced ModelLisreplaced extends ChromeBrowserTest {

    private TestBenchElement modelList;

    @Before
    public void init() {
        open();
        modelList = $("model-list").first();
    }

    @Test
    public void clickOnOldItems_itemsAreUpdated() {
        DivElement repeat1 = findRepeatByID("repeat-1");
        DivElement repeat2 = findRepeatByID("repeat-2");
        DivElement repeat3 = findRepeatByID("repeat-3");
        DivElement repeat4 = findRepeatByID("repeat-4");
        replacedertClickedStates();
        repeat1.findElements(By.tagName("div")).get(0).click();
        replacedertClickedStates(0);
        repeat2.findElements(By.tagName("div")).get(0).click();
        replacedertClickedStates(0, 2);
        repeat3.findElements(By.tagName("div")).get(0).click();
        replacedertClickedStates(0, 2, 4);
        repeat3.findElements(By.tagName("div")).get(2).click();
        replacedertClickedStates(0, 2, 4, 6);
        repeat4.findElements(By.tagName("div")).get(0).click();
        replacedertClickedStates(0, 2, 4, 6, 8);
        findRepeatByID("item-with-item-div").click();
        replacedertClickedStates(0, 2, 4, 6, 8, 10);
    }

    @Test
    public void clickOnAddedItems_itemsAreUpdated() {
        DivElement repeat1 = findRepeatByID("repeat-1");
        DivElement repeat2 = findRepeatByID("repeat-2");
        DivElement repeat3 = findRepeatByID("repeat-3");
        DivElement repeat4 = findRepeatByID("repeat-4");
        replacedertClickedStates();
        repeat1.findElements(By.tagName("div")).get(1).click();
        replacedertClickedStates(1);
        repeat2.findElements(By.tagName("div")).get(1).click();
        replacedertClickedStates(1, 3);
        repeat3.findElements(By.tagName("div")).get(1).click();
        replacedertClickedStates(1, 3, 5);
        repeat3.findElements(By.tagName("div")).get(3).click();
        replacedertClickedStates(1, 3, 5, 7);
        repeat4.findElements(By.tagName("div")).get(1).click();
        replacedertClickedStates(1, 3, 5, 7, 9);
    }

    @Test
    public void setNullValues_itemsAreUpdated() {
        DivElement repeat1 = findRepeatByID("repeat-1");
        DivElement repeat2 = findRepeatByID("repeat-2");
        DivElement repeat3 = findRepeatByID("repeat-3");
        DivElement repeat4 = findRepeatByID("repeat-4");
        replacedertClickedStates();
        modelList.$(NativeButtonElement.clreplaced).id("set-null").click();
        List<WebElement> repeated1 = repeat1.findElements(By.tagName("div"));
        List<WebElement> repeated2 = repeat2.findElements(By.tagName("div"));
        List<WebElement> repeated3 = repeat3.findElements(By.tagName("div"));
        List<WebElement> repeated4 = repeat4.findElements(By.tagName("div"));
        replacedert.replacedertEquals("false", repeated1.get(0).getText());
        replacedert.replacedertEquals("false", repeated1.get(1).getText());
        replacedert.replacedertEquals("false", repeated2.get(0).getText());
        replacedert.replacedertEquals("false", repeated2.get(1).getText());
        replacedert.replacedertEquals("false", repeated3.get(0).getText());
        replacedert.replacedertEquals("false", repeated3.get(1).getText());
        replacedert.replacedertEquals("false", repeated4.get(0).getText());
        replacedert.replacedertEquals("false", repeated4.get(1).getText());
    }

    private void replacedertClickedStates(int... clicked) {
        DivElement repeat1 = findRepeatByID("repeat-1");
        DivElement repeat2 = findRepeatByID("repeat-2");
        DivElement repeat3 = findRepeatByID("repeat-3");
        DivElement repeat4 = findRepeatByID("repeat-4");
        List<DivElement> divs = new ArrayList<>();
        divs.addAll(repeat1.$(DivElement.clreplaced).all());
        divs.addAll(repeat2.$(DivElement.clreplaced).all());
        divs.addAll(repeat3.$(DivElement.clreplaced).all());
        divs.addAll(repeat4.$(DivElement.clreplaced).all());
        divs.add(findRepeatByID("item-with-item-div"));
        for (int i = 0; i < divs.size(); i++) {
            int index = i;
            boolean clickedState = IntStream.of(clicked).anyMatch(x -> x == index);
            replacedert.replacedertThat(divs.get(index).getText(), CoreMatchers.startsWith(String.valueOf(clickedState)));
        }
    }

    private DivElement findRepeatByID(String id) {
        return modelList.$(DivElement.clreplaced).id(id);
    }
}

19 Source : ListInsideListBindingIT.java
with MIT License
from mcollovati

private void checkAllElementsUpdated(TestBenchElement template, int initialSize) {
    template.$(TestBenchElement.clreplaced).id("updateAllElements").click();
    List<TestBenchElement> msgs = template.$(TestBenchElement.clreplaced).attribute("clreplaced", "submsg").all();
    replacedert.replacedertEquals("Wrong amount of nested messages", initialSize, msgs.size());
    msgs.forEach(msg -> replacedert.replacedertEquals("Message was not updated", ListInsideListBindingView.UPDATED_TEXT, msg.getText()));
}

19 Source : ListInsideListBindingIT.java
with MIT License
from mcollovati

@Test
public void listDataBinding() {
    int initialSize = 4;
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    checkMessagesRemoval(template, initialSize);
    template.$(TestBenchElement.clreplaced).id("reset").click();
    checkAllElementsUpdated(template, initialSize);
}

19 Source : ListBindingIT.java
with MIT License
from mcollovati

private List<String> getMessages(TestBenchElement template) {
    return template.$(TestBenchElement.clreplaced).attribute("clreplaced", "msg").all().stream().map(WebElement::getText).collect(Collectors.toList());
}

19 Source : ListBindingIT.java
with MIT License
from mcollovati

private void resetState(TestBenchElement template) {
    template.$(TestBenchElement.clreplaced).id("reset").click();
    replacedert.replacedertEquals(ListBindingView.RESET_STATE, getMessages(template));
}

19 Source : ListBindingIT.java
with MIT License
from mcollovati

@Test
public void listDataBinding() {
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    checkInitialState(template);
    checkModelItemWorks(template);
    // Before running those methods list is set to ["1", "2", "3"]
    // see (ListBindingView.INITIAL_STATE)
    replacedertMethodWorksCorrectly("addElement", template, "1", "2", "3", "4");
    replacedertMethodWorksCorrectly("addElementByIndex", template, "4", "1", "2", "3");
    replacedertMethodWorksCorrectly("addNumerousElements", template, "1", "2", "3", "4", "5");
    replacedertMethodWorksCorrectly("addNumerousElementsByIndex", template, "4", "5", "1", "2", "3");
    replacedertMethodWorksCorrectly("clearList", template);
    replacedertMethodWorksCorrectly("removeSecondElementByIndex", template, "1", "3");
    replacedertMethodWorksCorrectly("removeFirstElementWithIterator", template, "2", "3");
    replacedertMethodWorksCorrectly("swapFirstAndSecond", template, "2", "1", "3");
    replacedertMethodWorksCorrectly("sortDescending", template, "3", "2", "1");
    replacedertMethodWorksCorrectly("setInitialStateToEachMessage", template, ListBindingView.INITIAL_STATE, ListBindingView.INITIAL_STATE, ListBindingView.INITIAL_STATE);
}

19 Source : ListBindingIT.java
with MIT License
from mcollovati

private void checkModelItemWorks(TestBenchElement template) {
    resetState(template);
    List<TestBenchElement> msgs = template.$(TestBenchElement.clreplaced).attribute("clreplaced", "msg").all();
    // Click b message
    msgs.get(1).click();
    // replacedert that the message was gotten correctly on the server side
    replacedert.replacedertEquals("Couldn't validate element click selection.", template.$(TestBenchElement.clreplaced).id("selection").getText(), "Clicked message: " + msgs.get(1).getText());
}

19 Source : ListBindingIT.java
with MIT License
from mcollovati

private void replacedertMethodWorksCorrectly(String handlerName, TestBenchElement template, String... expectedMessages) {
    resetState(template);
    template.$(TestBenchElement.clreplaced).id(handlerName).click();
    replacedert.replacedertEquals(Arrays.asList(expectedMessages), getMessages(template));
}

19 Source : ClearListIT.java
with MIT License
from mcollovati

@Test
public void checkThatListCanBeClearedWithModelHavingNoDefaultConstructor() {
    checkThatModelHasNoDefaultConstructor();
    open();
    TestBenchElement template = $(TestBenchElement.clreplaced).id("template");
    List<String> initialMessages = getMessages(template);
    replacedert.replacedertEquals("Initial page does not contain expected messages", Arrays.asList("1", "2"), initialMessages);
    template.$(TestBenchElement.clreplaced).id("clearList").click();
    replacedert.replacedertTrue("Page should not contain elements after we've cleared them", getMessages(template).isEmpty());
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

/**
 * Tests for validating the {@code removeAll()} feature, that should clear all
 * the server nodes and also the client nodes that the server doesn't know
 * about.
 *
 * @author Vaadin Ltd
 * @since 1.0.
 */
public clreplaced ClearNodeChildrenIT extends ChromeBrowserTest {

    private TestBenchElement root;

    private TestBenchElement message;

    @Before
    public void init() {
        open();
        waitForElementPresent(By.id("root"));
        root = $(TestBenchElement.clreplaced).id("root");
        message = root.$(TestBenchElement.clreplaced).id("message");
    }

    @Test
    public void clearContainerWithClientSideNodes_allNodesAreRemoved() {
        processContainerWithClientSideNodes_allNodesAreRemoved("clearContainer1", "Div 'containerWithElementChildren' cleared.", "");
    }

    @Test
    public void setTextToContainerWithClientSideNodes_allNodesAreRemoved() {
        processContainerWithClientSideNodes_allNodesAreRemoved("setTextToContainer1", "Div 'containerWithElementChildren' text set to 'Hello World'.", "Hello World");
    }

    private void processContainerWithClientSideNodes_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementChildren");
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(2, divs.size());
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        String oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
    }

    @Test
    public void addTextNode_clearContainerWithClientSideNodes_allNodesAreRemoved() {
        addTextNode_processContainerWithClientSideNodes_allNodesAreRemoved("clearContainer1", "Div 'containerWithElementChildren' cleared.", "");
    }

    @Test
    public void addTextNode_setTextToContainerWithClientSideNodes_allNodesAreRemoved() {
        addTextNode_processContainerWithClientSideNodes_allNodesAreRemoved("setTextToContainer1", "Div 'containerWithElementChildren' text set to 'Hello World'.", "Hello World");
    }

    private void addTextNode_processContainerWithClientSideNodes_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementChildren");
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(2, divs.size());
        TestBenchElement addTextNode = root.$(TestBenchElement.clreplaced).id("addTextNodeToContainer1");
        String oldTtext = message.getText();
        addTextNode.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith("Added 'Text node' to div with id 'containerWithElementChildren'.");
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
    }

    @Test
    public void clearContainerWithClientAndServerSideNodes_allNodesAreRemoved_serverNodesAreDetached() {
        processContainerWithClientAndServerSideNodes_allNodesAreRemoved_serverNodesAreDetached("clearContainer1", "Div 'Server div 1' detached.\nDiv 'containerWithElementChildren' cleared.", "");
    }

    @Test
    public void setTextToContainerWithClientAndServerSideNodes_allNodesAreRemoved_serverNodesAreDetached() {
        processContainerWithClientAndServerSideNodes_allNodesAreRemoved_serverNodesAreDetached("setTextToContainer1", "Div 'Server div 1' detached.\nDiv 'containerWithElementChildren' text set to 'Hello World'.", "Hello World");
    }

    private void processContainerWithClientAndServerSideNodes_allNodesAreRemoved_serverNodesAreDetached(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementChildren");
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(2, divs.size());
        TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addChildToContainer1");
        String oldTtext = message.getText();
        add.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith("Div 'Server div 1' attached.");
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(3, divs.size());
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
    }

    @Test
    public void clearContainerWithTextNodes_allNodesAreRemoved() {
        processContainerWithTextNodes_allNodesAreRemoved("clearContainer2", "Div 'containerWithMixedChildren' cleared.", "");
    }

    @Test
    public void setTextToContainerWithTextNodes_allNodesAreRemoved() {
        processContainerWithTextNodes_allNodesAreRemoved("setTextToContainer2", "Div 'containerWithMixedChildren' text set to 'Hello World'.", "Hello World");
    }

    private void processContainerWithTextNodes_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithMixedChildren");
        replacedert.replacedertThat(container.getText(), CoreMatchers.allOf(CoreMatchers.containsString("Some text 1"), CoreMatchers.containsString("Some text 2"), CoreMatchers.containsString("Some text 3")));
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(2, divs.size());
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        String oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
    }

    @Test
    public void addClientSideChildren_clearContainer_allNodesAreRemoved() {
        addClientSideChildren_processContainer_allNodesAreRemoved("clearContainer3", "Div 'containerWithClientSideChildren' cleared.", "");
    }

    @Test
    public void addClientSideChildren_setTextToContainer_allNodesAreRemoved() {
        addClientSideChildren_processContainer_allNodesAreRemoved("setTextToContainer3", "Div 'containerWithClientSideChildren' text set to 'Hello World'.", "Hello World");
    }

    private void addClientSideChildren_processContainer_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithClientSideChildren");
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addClientSideChild");
        add.click();
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(1, divs.size());
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        String oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
    }

    @Test
    public void addClienAndServertSideChildren_clearContainer_allNodesAreRemoved_serverNodesAreDetached() {
        addClienAndServertSideChildren_processContainer_allNodesAreRemoved_serverNodesAreDetached("clearContainer3", "Div 'Server div 1' detached.\nDiv 'containerWithClientSideChildren' cleared.", "");
    }

    @Test
    public void addClienAndServertSideChildren_setTextToContainer_allNodesAreRemoved_serverNodesAreDetached() {
        addClienAndServertSideChildren_processContainer_allNodesAreRemoved_serverNodesAreDetached("setTextToContainer3", "Div 'Server div 1' detached.\nDiv 'containerWithClientSideChildren' text set to 'Hello World'.", "Hello World");
    }

    private void addClienAndServertSideChildren_processContainer_allNodesAreRemoved_serverNodesAreDetached(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithClientSideChildren");
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        TestBenchElement addClientNode = root.$(TestBenchElement.clreplaced).id("addClientSideChild");
        addClientNode.click();
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(1, divs.size());
        TestBenchElement addServerNode = root.$(TestBenchElement.clreplaced).id("addChildToContainer3");
        String oldTtext = message.getText();
        addServerNode.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith("Div 'Server div 1' attached.");
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(2, divs.size());
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
    }

    @Test
    public void addNodeToSlot_clearContainer_allNodesAreRemoved_serverNodesAreDetached() {
        addNodeToSlot_processContainer_allNodesAreRemoved_serverNodesAreDetached("clear", "Div 'Server div 1' detached.\nDiv 'root' cleared.", "");
    }

    @Test
    public void addNodeToSlot_setTextToContainer_allNodesAreRemoved_serverNodesAreDetached() {
        addNodeToSlot_processContainer_allNodesAreRemoved_serverNodesAreDetached("setText", "Div 'Server div 1' detached.\nDiv 'root' text set to 'Hello World'.", "Hello World");
    }

    private void addNodeToSlot_processContainer_allNodesAreRemoved_serverNodesAreDetached(String buttonToClick, String expectedMessage, String expectedInnerText) {
        List<WebElement> divs = root.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addChildToSlot");
        String oldTtext = message.getText();
        add.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith("Div 'Server div 1' attached.");
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith(expectedMessage);
        divs = root.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, root.getAttribute("innerText"));
    }

    @Test
    public void addNodeToNestedContainer_clearParentContainer_allNodesAreRemoved() {
        addNodeToNestedContainer_processParentContainer_allNodesAreRemoved("clearContainer4", "Div 'containerWithContainer' cleared.", "");
    }

    @Test
    public void addNodeToNestedContainer_setTextToParentContainer_allNodesAreRemoved() {
        addNodeToNestedContainer_processParentContainer_allNodesAreRemoved("setTextToContainer4", "Div 'containerWithContainer' text set to 'Hello World'.", "Hello World");
    }

    private void addNodeToNestedContainer_processParentContainer_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("nestedContainer");
        List<WebElement> divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addChildToNestedContainer");
        String oldTtext = message.getText();
        add.click();
        waitForMessageToChange(oldTtext);
        replacedertMessageEndsWith("Div 'Server div 1' attached.");
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(1, divs.size());
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
        oldTtext = message.getText();
        button.click();
        waitForMessageToChange(oldTtext);
        /*
         * Note that in this setup, the server-side components are not detached.
         */
        replacedertMessageEndsWith(expectedMessage);
        container = root.$(TestBenchElement.clreplaced).id("containerWithContainer");
        divs = container.findElements(By.tagName("div"));
        replacedert.replacedertEquals(0, divs.size());
        replacedert.replacedertEquals(expectedInnerText, container.getText());
    }

    private void replacedertMessageEndsWith(String text) {
        replacedert.replacedertThat(message.getText(), CoreMatchers.endsWith(text));
    }

    private void waitForMessageToChange(String oldText) {
        waitUntilNot(driver -> message.getText().equals(oldText));
    }
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void addClienAndServertSideChildren_processContainer_allNodesAreRemoved_serverNodesAreDetached(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithClientSideChildren");
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    TestBenchElement addClientNode = root.$(TestBenchElement.clreplaced).id("addClientSideChild");
    addClientNode.click();
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(1, divs.size());
    TestBenchElement addServerNode = root.$(TestBenchElement.clreplaced).id("addChildToContainer3");
    String oldTtext = message.getText();
    addServerNode.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith("Div 'Server div 1' attached.");
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(2, divs.size());
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void addTextNode_processContainerWithClientSideNodes_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementChildren");
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(2, divs.size());
    TestBenchElement addTextNode = root.$(TestBenchElement.clreplaced).id("addTextNodeToContainer1");
    String oldTtext = message.getText();
    addTextNode.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith("Added 'Text node' to div with id 'containerWithElementChildren'.");
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void processContainerWithClientSideNodes_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementChildren");
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(2, divs.size());
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    String oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void addNodeToSlot_processContainer_allNodesAreRemoved_serverNodesAreDetached(String buttonToClick, String expectedMessage, String expectedInnerText) {
    List<WebElement> divs = root.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addChildToSlot");
    String oldTtext = message.getText();
    add.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith("Div 'Server div 1' attached.");
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = root.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, root.getAttribute("innerText"));
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void addClientSideChildren_processContainer_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithClientSideChildren");
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addClientSideChild");
    add.click();
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(1, divs.size());
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    String oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void processContainerWithClientAndServerSideNodes_allNodesAreRemoved_serverNodesAreDetached(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementChildren");
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(2, divs.size());
    TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addChildToContainer1");
    String oldTtext = message.getText();
    add.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith("Div 'Server div 1' attached.");
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(3, divs.size());
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void addNodeToNestedContainer_processParentContainer_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("nestedContainer");
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    TestBenchElement add = root.$(TestBenchElement.clreplaced).id("addChildToNestedContainer");
    String oldTtext = message.getText();
    add.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith("Div 'Server div 1' attached.");
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(1, divs.size());
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    /*
         * Note that in this setup, the server-side components are not detached.
         */
    replacedertMessageEndsWith(expectedMessage);
    container = root.$(TestBenchElement.clreplaced).id("containerWithContainer");
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getText());
}

19 Source : ClearNodeChildrenIT.java
with MIT License
from mcollovati

private void processContainerWithTextNodes_allNodesAreRemoved(String buttonToClick, String expectedMessage, String expectedInnerText) {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithMixedChildren");
    replacedert.replacedertThat(container.getText(), CoreMatchers.allOf(CoreMatchers.containsString("Some text 1"), CoreMatchers.containsString("Some text 2"), CoreMatchers.containsString("Some text 3")));
    List<WebElement> divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(2, divs.size());
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToClick);
    String oldTtext = message.getText();
    button.click();
    waitForMessageToChange(oldTtext);
    replacedertMessageEndsWith(expectedMessage);
    divs = container.findElements(By.tagName("div"));
    replacedert.replacedertEquals(0, divs.size());
    replacedert.replacedertEquals(expectedInnerText, container.getAttribute("innerText"));
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

/**
 * Tests to validate the ordering of server-side nodes when added alongside
 * client-side nodes.
 *
 * @author Vaadin Ltd
 * @since 1.0.
 */
public clreplaced ChildOrderIT extends ChromeBrowserTest {

    private TestBenchElement root;

    @Before
    public void init() {
        open();
        waitForElementPresent(By.id("root"));
        root = $(TestBenchElement.clreplaced).id("root");
    }

    @Test
    public void appendElementsFromServer_elementsAreAddedAfterExistingOnes() {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElement");
        replacedertNodeOrder(container, "Client child");
        clickAndWaitForContainerToChange(container, "addChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1");
        clickAndWaitForContainerToChange(container, "addChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2");
        clickAndWaitForContainerToChange(container, "addClientSideChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2", "Client child");
        /*
         * Client side nodes added after the server side ones are not considered
         * in the counting, so they are left behind
         */
        clickAndWaitForContainerToChange(container, "addChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2", "Server child 3", "Client child");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2", "Client child");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1", "Client child");
    }

    @Test
    public void prependElementsFromServer_elementsAreAddedBeforeExistingOnes() {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElement");
        replacedertNodeOrder(container, "Client child");
        clickAndWaitForContainerToChange(container, "prependChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 1");
        clickAndWaitForContainerToChange(container, "prependChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 2", "Server child 1");
        clickAndWaitForContainerToChange(container, "addClientSideChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 2", "Server child 1", "Client child");
        clickAndWaitForContainerToChange(container, "prependChildToContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 3", "Server child 2", "Server child 1", "Client child");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 3", "Server child 2", "Client child");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
        replacedertNodeOrder(container, "Client child", "Server child 3", "Client child");
    }

    @Test
    public void appendTextsFromServer_textsAreAddedAfterExistingOnes() {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithText");
        replacedertNodeOrder(container, "Client text");
        clickAndWaitForContainerToChange(container, "addChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1");
        clickAndWaitForContainerToChange(container, "addChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2");
        clickAndWaitForContainerToChange(container, "addClientSideChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2", "Client text");
        /*
         * Client side nodes added after the server side ones are not considered
         * in the counting, so they are left behind
         */
        clickAndWaitForContainerToChange(container, "addChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2", "Server text 3", "Client text");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2", "Client text");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1", "Client text");
    }

    @Test
    public void prependTextsFromServer_textsAreAddedBeforeExistingOnes() {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithText");
        replacedertNodeOrder(container, "Client text");
        clickAndWaitForContainerToChange(container, "prependChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 1");
        clickAndWaitForContainerToChange(container, "prependChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 2", "Server text 1");
        clickAndWaitForContainerToChange(container, "addClientSideChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 2", "Server text 1", "Client text");
        clickAndWaitForContainerToChange(container, "prependChildToContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 3", "Server text 2", "Server text 1", "Client text");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 3", "Server text 2", "Client text");
        clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
        replacedertNodeOrder(container, "Client text", "Server text 3", "Client text");
    }

    @Test
    public void containerWithElementAddedOnConstructor_orderIsPreserved() {
        TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementAddedOnConstructor");
        replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2");
    }

    private void clickAndWaitForContainerToChange(WebElement container, String buttonToclick) {
        String innertText = container.getAttribute("innerText");
        TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToclick);
        button.click();
        waitUntilNot(driver -> container.getAttribute("innerText").equals(innertText));
    }

    private void replacedertNodeOrder(WebElement container, String... nodes) {
        String texts = container.getText();
        texts = texts.replace("\n", " ");
        String expected = Stream.of(nodes).collect(Collectors.joining(" "));
        replacedert.replacedertEquals(expected, texts);
    }
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

@Test
public void containerWithElementAddedOnConstructor_orderIsPreserved() {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElementAddedOnConstructor");
    replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2");
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

@Test
public void appendTextsFromServer_textsAreAddedAfterExistingOnes() {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithText");
    replacedertNodeOrder(container, "Client text");
    clickAndWaitForContainerToChange(container, "addChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1");
    clickAndWaitForContainerToChange(container, "addChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2");
    clickAndWaitForContainerToChange(container, "addClientSideChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2", "Client text");
    /*
         * Client side nodes added after the server side ones are not considered
         * in the counting, so they are left behind
         */
    clickAndWaitForContainerToChange(container, "addChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2", "Server text 3", "Client text");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1", "Server text 2", "Client text");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1", "Client text");
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

@Test
public void appendElementsFromServer_elementsAreAddedAfterExistingOnes() {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElement");
    replacedertNodeOrder(container, "Client child");
    clickAndWaitForContainerToChange(container, "addChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1");
    clickAndWaitForContainerToChange(container, "addChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2");
    clickAndWaitForContainerToChange(container, "addClientSideChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2", "Client child");
    /*
         * Client side nodes added after the server side ones are not considered
         * in the counting, so they are left behind
         */
    clickAndWaitForContainerToChange(container, "addChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2", "Server child 3", "Client child");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1", "Server child 2", "Client child");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1", "Client child");
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

private void clickAndWaitForContainerToChange(WebElement container, String buttonToclick) {
    String innertText = container.getAttribute("innerText");
    TestBenchElement button = root.$(TestBenchElement.clreplaced).id(buttonToclick);
    button.click();
    waitUntilNot(driver -> container.getAttribute("innerText").equals(innertText));
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

@Test
public void prependTextsFromServer_textsAreAddedBeforeExistingOnes() {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithText");
    replacedertNodeOrder(container, "Client text");
    clickAndWaitForContainerToChange(container, "prependChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 1");
    clickAndWaitForContainerToChange(container, "prependChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 2", "Server text 1");
    clickAndWaitForContainerToChange(container, "addClientSideChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 2", "Server text 1", "Client text");
    clickAndWaitForContainerToChange(container, "prependChildToContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 3", "Server text 2", "Server text 1", "Client text");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 3", "Server text 2", "Client text");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer2");
    replacedertNodeOrder(container, "Client text", "Server text 3", "Client text");
}

19 Source : ChildOrderIT.java
with MIT License
from mcollovati

@Test
public void prependElementsFromServer_elementsAreAddedBeforeExistingOnes() {
    TestBenchElement container = root.$(TestBenchElement.clreplaced).id("containerWithElement");
    replacedertNodeOrder(container, "Client child");
    clickAndWaitForContainerToChange(container, "prependChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 1");
    clickAndWaitForContainerToChange(container, "prependChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 2", "Server child 1");
    clickAndWaitForContainerToChange(container, "addClientSideChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 2", "Server child 1", "Client child");
    clickAndWaitForContainerToChange(container, "prependChildToContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 3", "Server child 2", "Server child 1", "Client child");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 3", "Server child 2", "Client child");
    clickAndWaitForContainerToChange(container, "removeChildFromContainer1");
    replacedertNodeOrder(container, "Client child", "Server child 3", "Client child");
}

19 Source : BeanInListingIT.java
with MIT License
from mcollovati

@Test
public void beanInTwoWayBinding() throws InterruptedException {
    open();
    TestBenchElement selected = $(TestBenchElement.clreplaced).id("template").$(TestBenchElement.clreplaced).id("selected");
    replacedertSelectionValue("user-item", selected, "foo");
    replacedertSelectionValue("user-item", selected, "bar");
    replacedertSelectionValue("msg-item", selected, "baz");
    replacedertSelectionValue("msg-item", selected, "msg");
}

See More Examples