]> source.dussan.org Git - vaadin-framework.git/blob
eb838c135eb24a7072c73a02dd6534320bc01c35
[vaadin-framework.git] /
1 /*
2  * Copyright 2000-2014 Vaadin Ltd.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  * 
8  * http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */
16 package com.vaadin.tests.components.nativeselect;
17
18 import java.util.Collections;
19 import java.util.List;
20
21 import org.junit.Assert;
22 import org.junit.Test;
23 import org.openqa.selenium.By;
24 import org.openqa.selenium.Keys;
25 import org.openqa.selenium.WebElement;
26 import org.openqa.selenium.interactions.Actions;
27 import org.openqa.selenium.remote.DesiredCapabilities;
28
29 import com.vaadin.tests.tb3.MultiBrowserTest;
30
31 /**
32  * 
33  * @since
34  * @author Vaadin Ltd
35  */
36 public class NativeSelectsAndChromeKeyboardNavigationTest extends
37         MultiBrowserTest {
38
39     /*
40      * (non-Javadoc)
41      * 
42      * @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
43      */
44     @Override
45     public List<DesiredCapabilities> getBrowsersToTest() {
46         return Collections.singletonList(Browser.CHROME
47                 .getDesiredCapabilities());
48     }
49
50     @Test
51     public void testValueChangeListenerWithKeyboardNavigation()
52             throws InterruptedException {
53         setDebug(true);
54         openTestURL();
55         Thread.sleep(1000);
56         menu("Component");
57         menuSub("Listeners");
58         menuSub("Value change listener");
59
60         getDriver().findElement(By.tagName("body")).click();
61
62         WebElement select = getDriver().findElement(By.tagName("select"));
63         select.sendKeys(Keys.ARROW_DOWN);
64         select.sendKeys(Keys.ARROW_DOWN);
65         select.sendKeys(Keys.ARROW_DOWN);
66
67         String bodytext = getDriver().findElement(By.tagName("body")).getText();
68
69         Assert.assertTrue(bodytext.contains("new value: 'Item 1'"));
70         Assert.assertTrue(bodytext.contains("new value: 'Item 2'"));
71         Assert.assertTrue(bodytext.contains("new value: 'Item 3'"));
72
73     }
74
75     /*
76      * (non-Javadoc)
77      * 
78      * @see com.vaadin.tests.tb3.AbstractTB3Test#getUIClass()
79      */
80     @Override
81     protected Class<?> getUIClass() {
82         return NativeSelects.class;
83     }
84
85     /**
86      * @since
87      * @param string
88      */
89     private void menuSub(String string) {
90         getDriver().findElement(By.xpath("//span[text() = '" + string + "']"))
91                 .click();
92         new Actions(getDriver()).moveByOffset(100, 0).build().perform();
93     }
94
95     /**
96      * @since
97      * @param string
98      */
99     private void menu(String string) {
100         getDriver().findElement(By.xpath("//span[text() = '" + string + "']"))
101                 .click();
102
103     }
104
105 }