diff options
Diffstat (limited to 'test/widget-set-testutil/src/main/java')
-rw-r--r-- | test/widget-set-testutil/src/main/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/test/widget-set-testutil/src/main/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java b/test/widget-set-testutil/src/main/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java new file mode 100644 index 0000000000..c6d4f1756b --- /dev/null +++ b/test/widget-set-testutil/src/main/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java @@ -0,0 +1,85 @@ +package com.vaadin.test.defaultwidgetset; + +import java.util.List; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.phantomjs.PhantomJSDriver; + +import com.vaadin.testbench.ScreenshotOnFailureRule; +import com.vaadin.testbench.TestBenchTestCase; +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.testbench.elements.LabelElement; +import com.vaadin.testbench.elements.TextFieldElement; + +public abstract class AbstractWidgetSetIT extends TestBenchTestCase { + + @Rule + public ScreenshotOnFailureRule rule = new ScreenshotOnFailureRule(this, + true); + + @Before + public void setup() { + // Screenshot rule tears down the driver + setDriver(new PhantomJSDriver()); + } + + protected void testAppStartsUserCanInteract(String expectedWidgetSet) { + testAppStartsUserCanInteract(expectedWidgetSet, false); + } + + protected void testAppStartsUserCanInteract(String expectedWidgetSet, + boolean debug) { + String url = "http://localhost:8080"; + if (debug) { + url += "?debug"; + } + getDriver().get(url); + + TextFieldElement nameInput = $(TextFieldElement.class).first(); + nameInput.setValue("John Dåe"); + + $(ButtonElement.class).first().click(); + + Assert.assertEquals("Label shown", 2, + $(LabelElement.class).all().size()); + + Assert.assertEquals("Thanks John Dåe, it works!", + $(LabelElement.class).get(1).getText()); + + Assert.assertEquals(expectedWidgetSet, + findElement(By.id("widgetsetinfo")).getText()); + + } + + protected void assertNoUnknownComponentShown() { + Assert.assertEquals(0, + findElements(By.className("vaadin-unknown-caption")).size()); + } + + protected void assertUnknownComponentShown(String componentClass) { + WebElement unknownComponentCaption = findElement( + By.className("vaadin-unknown-caption")); + Assert.assertTrue(unknownComponentCaption.getText().contains( + "does not contain implementation for " + componentClass)); + } + + protected void assertHasDebugMessage(String message) { + List<WebElement> elements = getDriver().findElements( + By.xpath("//span[@class='v-debugwindow-message']")); + boolean found = false; + for (WebElement element : elements) { + if (element.getText().contains(message)) { + found = true; + break; + } + } + Assert.assertTrue( + "Cannot find debug message containing '" + message + "'", + found); + } + +} |