]> source.dussan.org Git - vaadin-framework.git/blob
7eefcfe2f965608dbc7db3095e42faf9000df17f
[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.tests.components.grid.basicfeatures.escalator;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertNotEquals;
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertNull;
22 import static org.junit.Assert.assertTrue;
23
24 import org.junit.Test;
25 import org.openqa.selenium.By;
26
27 import com.vaadin.tests.components.grid.basicfeatures.EscalatorBasicClientFeaturesTest;
28
29 public class EscalatorRowColumnTest extends EscalatorBasicClientFeaturesTest {
30
31     /**
32      * The scroll position of the Escalator when scrolled all the way down, to
33      * reveal the 100:th row.
34      */
35     private static final int BOTTOM_SCROLL_POSITION = 1857;
36
37     @Test
38     public void testInit() {
39         openTestURL();
40         assertNotNull(getEscalator());
41         assertNull(getHeaderRow(0));
42         assertNull(getBodyRow(0));
43         assertNull(getFooterRow(0));
44
45         assertLogContains("Columns: 0");
46         assertLogContains("Header rows: 0");
47         assertLogContains("Body rows: 0");
48         assertLogContains("Footer rows: 0");
49     }
50
51     @Test
52     public void testInsertAColumn() {
53         openTestURL();
54
55         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
56         assertNull(getHeaderRow(0));
57         assertNull(getBodyRow(0));
58         assertNull(getFooterRow(0));
59         assertLogContains("Columns: 1");
60     }
61
62     @Test
63     public void testInsertAHeaderRow() {
64         openTestURL();
65
66         selectMenuPath(COLUMNS_AND_ROWS, HEADER_ROWS, ADD_ONE_ROW_TO_BEGINNING);
67         assertNull(getHeaderCell(0, 0));
68         assertNull(getBodyCell(0, 0));
69         assertNull(getFooterCell(0, 0));
70         assertLogContains("Header rows: 1");
71     }
72
73     @Test
74     public void testInsertABodyRow() {
75         openTestURL();
76
77         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, ADD_ONE_ROW_TO_BEGINNING);
78         assertNull(getHeaderCell(0, 0));
79         assertNull(getBodyCell(0, 0));
80         assertNull(getFooterCell(0, 0));
81         assertLogContains("Body rows: 1");
82     }
83
84     @Test
85     public void testInsertAFooterRow() {
86         openTestURL();
87
88         selectMenuPath(COLUMNS_AND_ROWS, FOOTER_ROWS, ADD_ONE_ROW_TO_BEGINNING);
89         assertNull(getHeaderCell(0, 0));
90         assertNull(getBodyCell(0, 0));
91         assertNull(getFooterCell(0, 0));
92         assertLogContains("Footer rows: 1");
93     }
94
95     @Test
96     public void testInsertAColumnAndAHeaderRow() {
97         openTestURL();
98
99         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
100         selectMenuPath(COLUMNS_AND_ROWS, HEADER_ROWS, ADD_ONE_ROW_TO_BEGINNING);
101         assertNotNull(getHeaderCell(0, 0));
102         assertNull(getBodyCell(0, 0));
103         assertNull(getFooterCell(0, 0));
104         assertLogContains("Columns: 1");
105         assertLogContains("Header rows: 1");
106     }
107
108     @Test
109     public void testInsertAColumnAndABodyRow() {
110         openTestURL();
111
112         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
113         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, ADD_ONE_ROW_TO_BEGINNING);
114         assertNull(getHeaderCell(0, 0));
115         assertNotNull(getBodyCell(0, 0));
116         assertNull(getFooterCell(0, 0));
117         assertLogContains("Columns: 1");
118         assertLogContains("Body rows: 1");
119     }
120
121     @Test
122     public void testInsertAColumnAndAFooterRow() {
123         openTestURL();
124
125         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
126         selectMenuPath(COLUMNS_AND_ROWS, FOOTER_ROWS, ADD_ONE_ROW_TO_BEGINNING);
127         assertNull(getHeaderCell(0, 0));
128         assertNull(getBodyCell(0, 0));
129         assertNotNull(getFooterCell(0, 0));
130         assertLogContains("Columns: 1");
131         assertLogContains("Footer rows: 1");
132     }
133
134     @Test
135     public void testInsertAHeaderRowAndAColumn() {
136         openTestURL();
137
138         selectMenuPath(COLUMNS_AND_ROWS, HEADER_ROWS, ADD_ONE_ROW_TO_BEGINNING);
139         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
140         assertNotNull(getHeaderCell(0, 0));
141         assertNull(getBodyCell(0, 0));
142         assertNull(getFooterCell(0, 0));
143         assertLogContains("Columns: 1");
144         assertLogContains("Header rows: 1");
145     }
146
147     @Test
148     public void testInsertABodyRowAndAColumn() {
149         openTestURL();
150
151         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, ADD_ONE_ROW_TO_BEGINNING);
152         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
153         assertNull(getHeaderCell(0, 0));
154         assertNotNull(getBodyCell(0, 0));
155         assertNull(getFooterCell(0, 0));
156         assertLogContains("Columns: 1");
157         assertLogContains("Body rows: 1");
158     }
159
160     @Test
161     public void testInsertAFooterRowAndAColumn() {
162         openTestURL();
163
164         selectMenuPath(COLUMNS_AND_ROWS, FOOTER_ROWS, ADD_ONE_ROW_TO_BEGINNING);
165         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, ADD_ONE_COLUMN_TO_BEGINNING);
166         assertNull(getHeaderCell(0, 0));
167         assertNull(getBodyCell(0, 0));
168         assertNotNull(getFooterCell(0, 0));
169         assertLogContains("Columns: 1");
170         assertLogContains("Footer rows: 1");
171     }
172
173     @Test
174     public void testFillColRow() {
175         openTestURL();
176
177         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
178         scrollVerticallyTo(2000); // more like 1857, but this should be enough.
179
180         // if not found, an exception is thrown here
181         assertTrue("Wanted cell was not visible",
182                 isElementPresent(By.xpath("//td[text()='Cell: 9,99']")));
183     }
184
185     @Test
186     public void testFillRowCol() {
187         openTestURL();
188
189         selectMenuPath(GENERAL, POPULATE_ROW_COLUMN);
190         scrollVerticallyTo(2000); // more like 1857, but this should be enough.
191
192         // if not found, an exception is thrown here
193         assertTrue("Wanted cell was not visible",
194                 isElementPresent(By.xpath("//td[text()='Cell: 9,99']")));
195     }
196
197     @Test
198     public void testClearColRow() {
199         openTestURL();
200
201         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
202         selectMenuPath(GENERAL, CLEAR_COLUMN_ROW);
203
204         assertNull(getBodyCell(0, 0));
205     }
206
207     @Test
208     public void testClearRowCol() {
209         openTestURL();
210
211         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
212         selectMenuPath(GENERAL, CLEAR_ROW_COLUMN);
213
214         assertNull(getBodyCell(0, 0));
215     }
216
217     @Test
218     public void testResizeColToFit() {
219         openTestURL();
220         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
221
222         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS, RESIZE_FIRST_COLUMN_TO_100PX);
223         int originalWidth = getBodyCell(0, 0).getSize().getWidth();
224
225         assertEquals(100, originalWidth);
226
227         selectMenuPath(COLUMNS_AND_ROWS, COLUMNS,
228                 RESIZE_FIRST_COLUMN_TO_MAX_WIDTH);
229         int newWidth = getBodyCell(0, 0).getSize().getWidth();
230         assertNotEquals("Column width should've changed", originalWidth,
231                 newWidth);
232     }
233
234     @Test
235     public void testRemoveMoreThanPagefulAtBottomWhileScrolledToBottom()
236             throws Exception {
237         openTestURL();
238         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
239
240         scrollVerticallyTo(BOTTOM_SCROLL_POSITION);
241         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, REMOVE_50_ROWS_FROM_BOTTOM);
242         assertEquals("Row 49: 0,49", getBodyCell(-1, 0).getText());
243
244         scrollVerticallyTo(0);
245
246         // let the DOM organize itself
247         Thread.sleep(500);
248
249         // if something goes wrong, it'll explode before this.
250         assertEquals("Row 0: 0,0", getBodyCell(0, 0).getText());
251     }
252
253     @Test
254     public void testRemoveMoreThanPagefulAtBottomWhileScrolledAlmostToBottom()
255             throws Exception {
256         openTestURL();
257         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
258
259         // bottom minus 15 rows.
260         scrollVerticallyTo(BOTTOM_SCROLL_POSITION - 15 * 20);
261         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, REMOVE_50_ROWS_FROM_BOTTOM);
262         assertEquals("Row 49: 0,49", getBodyCell(-1, 0).getText());
263
264         scrollVerticallyTo(0);
265
266         // let the DOM organize itself
267         Thread.sleep(500);
268
269         // if something goes wrong, it'll explode before this.
270         assertEquals("Row 0: 0,0", getBodyCell(0, 0).getText());
271     }
272
273     @Test
274     public void testRemoveMoreThanPagefulNearBottomWhileScrolledToBottom()
275             throws Exception {
276         openTestURL();
277         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
278
279         scrollVerticallyTo(BOTTOM_SCROLL_POSITION);
280         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS,
281                 REMOVE_50_ROWS_FROM_ALMOST_BOTTOM);
282         assertEquals("Row 49: 0,99", getBodyCell(-1, 0).getText());
283
284         scrollVerticallyTo(0);
285
286         // let the DOM organize itself
287         Thread.sleep(500);
288
289         // if something goes wrong, it'll explode before this.
290         assertEquals("Row 0: 0,0", getBodyCell(0, 0).getText());
291     }
292
293     @Test
294     public void testRemoveMoreThanPagefulNearBottomWhileScrolledAlmostToBottom()
295             throws Exception {
296         openTestURL();
297         selectMenuPath(GENERAL, POPULATE_COLUMN_ROW);
298
299         // bottom minus 15 rows.
300         scrollVerticallyTo(BOTTOM_SCROLL_POSITION - 15 * 20);
301         selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS,
302                 REMOVE_50_ROWS_FROM_ALMOST_BOTTOM);
303
304         // let the DOM organize itself
305         Thread.sleep(500);
306         assertEquals("Row 49: 0,99", getBodyCell(-1, 0).getText());
307
308         scrollVerticallyTo(0);
309
310         // let the DOM organize itself
311         Thread.sleep(500);
312
313         // if something goes wrong, it'll explode before this.
314         assertEquals("Row 0: 0,0", getBodyCell(0, 0).getText());
315     }
316 }