]> source.dussan.org Git - vaadin-framework.git/blob
f4bd915ccee6cf29e2c626dc7f0217ac702d79fb
[vaadin-framework.git] /
1 /*
2  * Copyright 2000-2016 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.v7.tests.components.grid.basicfeatures;
17
18 import java.util.List;
19
20 import org.openqa.selenium.WebElement;
21
22 import com.vaadin.testbench.By;
23 import com.vaadin.testbench.TestBenchElement;
24 import com.vaadin.v7.testbench.customelements.GridElement;
25 import com.vaadin.v7.tests.components.grid.basicfeatures.GridBasicClientFeatures;
26
27 /**
28  * GridBasicClientFeatures.
29  *
30  * @since
31  * @author Vaadin Ltd
32  */
33 public abstract class GridBasicClientFeaturesTest
34         extends GridBasicFeaturesTest {
35
36     private boolean composite = false;
37
38     @Override
39     protected Class<?> getUIClass() {
40         return GridBasicClientFeatures.class;
41     }
42
43     @Override
44     protected String getDeploymentPath() {
45         String path = super.getDeploymentPath();
46         if (composite) {
47             path += (path.contains("?") ? "&" : "?") + "composite";
48         }
49         return path;
50     }
51
52     protected void setUseComposite(boolean useComposite) {
53         composite = useComposite;
54     }
55
56     @Override
57     protected void selectMenu(String menuCaption) {
58         // GWT menu does not need to be clicked.
59         selectMenu(menuCaption, false);
60     }
61
62     @Override
63     protected WebElement getMenuElement(String menuCaption) {
64         return getDriver()
65                 .findElement(By.xpath("//td[text() = '" + menuCaption + "']"));
66     }
67
68     @Override
69     protected GridElement getGridElement() {
70         if (composite) {
71             // Composite requires the basic client features widget for subparts
72             return ((TestBenchElement) findElement(
73                     By.vaadin("//TestWidgetComponent")))
74                             .wrap(GridElement.class);
75         } else {
76             return super.getGridElement();
77         }
78     }
79
80     @Override
81     protected void assertColumnHeaderOrder(int... indices) {
82         List<TestBenchElement> headers = getGridHeaderRowCells();
83         for (int i = 0; i < indices.length; i++) {
84             assertColumnHeader("HEADER (0," + indices[i] + ")", headers.get(i));
85         }
86     }
87
88     protected void toggleColumnReorder() {
89         selectMenuPath("Component", "State", "Column Reordering");
90     }
91
92     protected boolean isRowSelected(int index) {
93         boolean selected = getGridElement().getRow(index).isSelected();
94         return selected;
95     }
96
97     protected void setSelectionModelMulti() {
98         setSelectionModel("multi");
99     }
100
101     protected void setSelectionModelSingle(boolean deselectAllowed) {
102         String mode = "single";
103         if (!deselectAllowed) {
104             mode += " (no deselect)";
105         }
106         setSelectionModel(mode);
107     }
108
109     protected void setSelectionModelNone() {
110         setSelectionModel("none");
111     }
112
113     protected void setSelectionModel(String model) {
114         selectMenuPath("Component", "State", "Selection mode", model);
115     }
116 }