summaryrefslogtreecommitdiffstats
path: root/uitest-common/src/main/java/com
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2016-09-12 17:58:38 +0300
committerVaadin Code Review <review@vaadin.com>2016-09-13 18:06:18 +0000
commit37e488d86b0bc59bf085a64eda3e258a01c496f0 (patch)
treea287284353b4d2c7068c0126ef773c56e0d8700e /uitest-common/src/main/java/com
parentd0435d5f02f93e3f5123ae54216d0062054cbe90 (diff)
downloadvaadin-framework-37e488d86b0bc59bf085a64eda3e258a01c496f0.tar.gz
vaadin-framework-37e488d86b0bc59bf085a64eda3e258a01c496f0.zip
Create a CheckBoxGroup that replaces the multi select case of OptionGroup
Change-Id: I250c60741bc65443b66498a8d0b17541edb77bf1
Diffstat (limited to 'uitest-common/src/main/java/com')
-rw-r--r--uitest-common/src/main/java/com/vaadin/testbench/customelements/CheckBoxGroupElement.java98
1 files changed, 98 insertions, 0 deletions
diff --git a/uitest-common/src/main/java/com/vaadin/testbench/customelements/CheckBoxGroupElement.java b/uitest-common/src/main/java/com/vaadin/testbench/customelements/CheckBoxGroupElement.java
new file mode 100644
index 0000000000..b070ece852
--- /dev/null
+++ b/uitest-common/src/main/java/com/vaadin/testbench/customelements/CheckBoxGroupElement.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2000-2014 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.customelements;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.AbstractSelectElement;
+import com.vaadin.testbench.elementsbase.ServerClass;
+
+/**
+ * TestBench element supporting CheckBoxGroup
+ *
+ * @author Vaadin Ltd
+ */
+
+@ServerClass("com.vaadin.ui.CheckBoxGroup")
+public class CheckBoxGroupElement extends AbstractSelectElement {
+ private static org.openqa.selenium.By byButtonSpan =
+ By.className("v-select-option");
+ private static org.openqa.selenium.By byLabel = By.tagName("label");
+ private static org.openqa.selenium.By byInput = By.tagName("input");
+
+ public List<String> getOptions() {
+ List<String> optionTexts = new ArrayList<String>();
+ List<WebElement> options = findElements(byButtonSpan);
+ for (WebElement option : options) {
+ optionTexts.add(option.findElement(byLabel).getText());
+ }
+ return optionTexts;
+ }
+
+ public void selectByText(String text) throws ReadOnlyException {
+ if (isReadOnly()) {
+ throw new ReadOnlyException();
+ }
+ List<WebElement> options = findElements(byButtonSpan);
+ for (WebElement option : options) {
+ if (text.equals(option.findElement(byLabel).getText())) {
+ option.findElement(byInput).click();
+ }
+ }
+ }
+
+ /**
+ * Return list of the selected options in the checkbox group
+ *
+ * @return list of the selected options in the checkbox group
+ */
+ public List<String> getSelection() {
+ List<String> values = new ArrayList<>();
+ List<WebElement> options = findElements(byButtonSpan);
+ for (WebElement option : options) {
+ WebElement checkedItem;
+ checkedItem = option.findElement(By.tagName("input"));
+ String checked = checkedItem.getAttribute("checked");
+ if (checked != null &&
+ checkedItem.getAttribute("checked").equals("true")) {
+ values.add(option.findElement(By.tagName("label")).getText());
+ }
+ }
+ return values;
+ }
+
+ /**
+ * Select option in the checkbox group with the specified value
+ *
+ * @param chars
+ * value of the option in the checkbox group which will be selected
+ */
+ public void selectOption(CharSequence chars) throws ReadOnlyException {
+ selectByText((String) chars);
+ }
+
+ @Override
+ public void clear() {
+ throw new UnsupportedOperationException(
+ "Clear operation is not supported for CheckBoxGroup." +
+ " This operation has no effect on the element.");
+ }
+}
+