aboutsummaryrefslogtreecommitdiffstats
path: root/test/widget-set-testutil/src
diff options
context:
space:
mode:
Diffstat (limited to 'test/widget-set-testutil/src')
-rw-r--r--test/widget-set-testutil/src/main/java/com/vaadin/test/widgetset/AbstractTestWidgetSetUI.java39
-rw-r--r--test/widget-set-testutil/src/test/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java59
2 files changed, 98 insertions, 0 deletions
diff --git a/test/widget-set-testutil/src/main/java/com/vaadin/test/widgetset/AbstractTestWidgetSetUI.java b/test/widget-set-testutil/src/main/java/com/vaadin/test/widgetset/AbstractTestWidgetSetUI.java
new file mode 100644
index 0000000000..c03645517a
--- /dev/null
+++ b/test/widget-set-testutil/src/main/java/com/vaadin/test/widgetset/AbstractTestWidgetSetUI.java
@@ -0,0 +1,39 @@
+package com.vaadin.test.widgetset;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+public abstract class AbstractTestWidgetSetUI extends UI {
+
+ @Override
+ protected void init(VaadinRequest vaadinRequest) {
+ final VerticalLayout layout = new VerticalLayout();
+ final Label widgetsetInfo = new Label();
+ widgetsetInfo.setId("widgetsetinfo");
+ final TextField name = new TextField();
+ name.setCaption("Type your name here:");
+
+ Button button = new Button("Click Me");
+ button.addClickListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent clickEvent) {
+ layout.addComponent(
+ new Label("Thanks " + name.getValue() + ", it works!"));
+ }
+ });
+
+ getPage().getJavaScript().execute(
+ "widgetsetinfo.innerText=document.querySelector('iframe').id;");
+ layout.addComponents(widgetsetInfo, name, button);
+ layout.setMargin(true);
+ layout.setSpacing(true);
+
+ setContent(layout);
+ }
+
+} \ No newline at end of file
diff --git a/test/widget-set-testutil/src/test/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java b/test/widget-set-testutil/src/test/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java
new file mode 100644
index 0000000000..e84296819c
--- /dev/null
+++ b/test/widget-set-testutil/src/test/java/com/vaadin/test/defaultwidgetset/AbstractWidgetSetIT.java
@@ -0,0 +1,59 @@
+package com.vaadin.test.defaultwidgetset;
+
+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) {
+ getDriver().get("http://localhost:8080");
+
+ 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));
+ }
+
+} \ No newline at end of file