summaryrefslogtreecommitdiffstats
path: root/testbench-api
diff options
context:
space:
mode:
Diffstat (limited to 'testbench-api')
-rw-r--r--testbench-api/src/main/java/com/vaadin/testbench/elements/AbstractSingleSelectElement.java47
-rw-r--r--testbench-api/src/main/java/com/vaadin/testbench/elements/ComboBoxElement.java4
-rw-r--r--testbench-api/src/main/java/com/vaadin/testbench/elements/NativeSelectElement.java11
-rw-r--r--testbench-api/src/main/java/com/vaadin/testbench/elements/RadioButtonGroupElement.java2
4 files changed, 58 insertions, 6 deletions
diff --git a/testbench-api/src/main/java/com/vaadin/testbench/elements/AbstractSingleSelectElement.java b/testbench-api/src/main/java/com/vaadin/testbench/elements/AbstractSingleSelectElement.java
new file mode 100644
index 0000000000..c66e736a1d
--- /dev/null
+++ b/testbench-api/src/main/java/com/vaadin/testbench/elements/AbstractSingleSelectElement.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.testbench.elements;
+
+import com.vaadin.testbench.elementsbase.ServerClass;
+
+/**
+ * A common base element class for all single select components.
+ *
+ * @since 8.1.1
+ */
+@ServerClass("com.vaadin.ui.AbstractSingleSelect")
+public abstract class AbstractSingleSelectElement
+ extends AbstractSelectElement {
+
+ /**
+ * Selects the first option in this single select component that matches the
+ * given text.
+ *
+ * @param text
+ * the text to select by
+ */
+ public abstract void selectByText(String text);
+
+ /**
+ * Return value of this single select component.
+ * <p>
+ * <strong>Note:</strong> If there is no value selected the behavior of
+ * subclasses varies. Pay attention on the actual implementation.
+ *
+ * @return the value
+ */
+ public abstract String getValue();
+}
diff --git a/testbench-api/src/main/java/com/vaadin/testbench/elements/ComboBoxElement.java b/testbench-api/src/main/java/com/vaadin/testbench/elements/ComboBoxElement.java
index 11b823e656..2eaef4f015 100644
--- a/testbench-api/src/main/java/com/vaadin/testbench/elements/ComboBoxElement.java
+++ b/testbench-api/src/main/java/com/vaadin/testbench/elements/ComboBoxElement.java
@@ -28,7 +28,7 @@ import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elementsbase.ServerClass;
@ServerClass("com.vaadin.ui.ComboBox")
-public class ComboBoxElement extends AbstractSelectElement {
+public class ComboBoxElement extends AbstractSingleSelectElement {
private static org.openqa.selenium.By bySuggestionPopup = By
.vaadin("#popup");
@@ -199,7 +199,7 @@ public class ComboBoxElement extends AbstractSelectElement {
}
/**
- * Return value of the combo box element
+ * Return value of the combo box element.
*
* @return value of the combo box element
*/
diff --git a/testbench-api/src/main/java/com/vaadin/testbench/elements/NativeSelectElement.java b/testbench-api/src/main/java/com/vaadin/testbench/elements/NativeSelectElement.java
index d932af1966..f6b0426c3e 100644
--- a/testbench-api/src/main/java/com/vaadin/testbench/elements/NativeSelectElement.java
+++ b/testbench-api/src/main/java/com/vaadin/testbench/elements/NativeSelectElement.java
@@ -17,6 +17,7 @@ package com.vaadin.testbench.elements;
import java.util.List;
+import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
@@ -25,7 +26,7 @@ import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elementsbase.ServerClass;
@ServerClass("com.vaadin.ui.NativeSelect")
-public class NativeSelectElement extends AbstractSelectElement {
+public class NativeSelectElement extends AbstractSingleSelectElement {
private Select select;
private WebElement selectElement;
@@ -70,9 +71,13 @@ public class NativeSelectElement extends AbstractSelectElement {
/**
* Return value of the selected item in the native select element.
*
- * @return value of the selected item in the native select element
+ * @return value of the selected item
+ *
+ * @throws NoSuchElementException
+ * if no value is selected
*/
- public String getValue() {
+
+ public String getValue() throws NoSuchElementException {
return select.getFirstSelectedOption().getText();
}
diff --git a/testbench-api/src/main/java/com/vaadin/testbench/elements/RadioButtonGroupElement.java b/testbench-api/src/main/java/com/vaadin/testbench/elements/RadioButtonGroupElement.java
index 4feeaae6ff..4cff189ea7 100644
--- a/testbench-api/src/main/java/com/vaadin/testbench/elements/RadioButtonGroupElement.java
+++ b/testbench-api/src/main/java/com/vaadin/testbench/elements/RadioButtonGroupElement.java
@@ -25,7 +25,7 @@ import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elementsbase.ServerClass;
@ServerClass("com.vaadin.ui.RadioButtonGroup")
-public class RadioButtonGroupElement extends AbstractSelectElement {
+public class RadioButtonGroupElement extends AbstractSingleSelectElement {
private static org.openqa.selenium.By bySelectOption = By
.className("v-select-option");