From f5104e34f3167fa2bf05e93272f5b71c15d00071 Mon Sep 17 00:00:00 2001 From: Johannes Dahlström Date: Thu, 8 Sep 2016 22:16:08 +0300 Subject: Update NativeSelect to use DataSource, extend AbstractListing Selection and focus/blur support not yet implemented. Change-Id: I76752084442216e60055d93367475c1c0a612787 --- .../customelements/NativeSelectElement.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 uitest-common/src/main/java/com/vaadin/testbench/customelements/NativeSelectElement.java (limited to 'uitest-common/src') diff --git a/uitest-common/src/main/java/com/vaadin/testbench/customelements/NativeSelectElement.java b/uitest-common/src/main/java/com/vaadin/testbench/customelements/NativeSelectElement.java new file mode 100644 index 0000000000..e5d572eaa9 --- /dev/null +++ b/uitest-common/src/main/java/com/vaadin/testbench/customelements/NativeSelectElement.java @@ -0,0 +1,75 @@ +/* + * 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.customelements; + +import java.util.List; + +import org.openqa.selenium.support.ui.Select; + +import com.vaadin.testbench.TestBenchElement; +import com.vaadin.testbench.elements.AbstractSelectElement; +import com.vaadin.testbench.elementsbase.ServerClass; + +@ServerClass("com.vaadin.ui.NativeSelect") +public class NativeSelectElement extends AbstractSelectElement { + private Select selectElement; + + @Override + protected void init() { + super.init(); + selectElement = new Select(this); + } + + public List getOptions() { + return wrapElements(selectElement.getOptions(), getCommandExecutor()); + } + + public void selectByText(String text) throws ReadOnlyException { + if (isReadOnly()) { + throw new ReadOnlyException(); + } + selectElement.selectByVisibleText(text); + waitForVaadin(); + } + + /** + * Clear operation is not supported for Native Select. This operation has no + * effect on Native Select element. + */ + @Override + public void clear() { + super.clear(); + } + + /** + * Return value of the selected item in the native select element + * + * @return value of the selected item in the native select element + */ + public String getValue() { + return selectElement.getFirstSelectedOption().getText(); + } + + /** + * Select item of the native select element with the specified value + * + * @param chars + * value of the native select item will be selected + */ + public void setValue(CharSequence chars) throws ReadOnlyException { + selectByText((String) chars); + } +} -- cgit v1.2.3