]> source.dussan.org Git - vaadin-framework.git/blob
b7b5b8a1e97b234fa3adb5c8a11766c23853de4c
[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.client;
17
18 import static org.junit.Assert.assertEquals;
19
20 import org.openqa.selenium.By;
21 import org.openqa.selenium.WebElement;
22
23 import com.vaadin.testbench.TestBenchElement;
24 import com.vaadin.tests.components.grid.basicfeatures.GridBasicClientFeaturesTest;
25 import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeatures;
26
27 /**
28  * Abstract base class for header and footer tests.
29  *
30  * @since
31  * @author Vaadin Ltd
32  */
33 public abstract class GridStaticSectionTest
34         extends GridBasicClientFeaturesTest {
35
36     protected void assertHeaderTexts(int headerId, int rowIndex) {
37         int i = 0;
38         for (TestBenchElement cell : getGridElement()
39                 .getHeaderCells(rowIndex)) {
40             WebElement content = cell.findElement(By.tagName("div"));
41
42             if (i % 3 == 0) {
43                 assertText(String.format("Header (%d,%d)", headerId, i),
44                         content);
45             } else if (i % 2 == 0) {
46                 assertHTML(String.format("<b>Header (%d,%d)</b>", headerId, i),
47                         content);
48             } else {
49                 assertHTML(String.format(
50                         "<div class=\"gwt-HTML\">Header (%d,%d)</div>",
51                         headerId, i), content);
52             }
53
54             i++;
55         }
56         assertEquals("number of header columns", GridBasicFeatures.COLUMNS, i);
57     }
58
59     protected void assertFooterTexts(int footerId, int rowIndex) {
60         int i = 0;
61         for (TestBenchElement cell : getGridElement()
62                 .getFooterCells(rowIndex)) {
63             WebElement content = cell.findElement(By.tagName("div"));
64
65             if (i % 3 == 0) {
66                 assertText(String.format("Footer (%d,%d)", footerId, i),
67                         content);
68             } else if (i % 2 == 0) {
69                 assertHTML(String.format("<b>Footer (%d,%d)</b>", footerId, i),
70                         content);
71             } else {
72                 assertHTML(String.format(
73                         "<div class=\"gwt-HTML\">Footer (%d,%d)</div>",
74                         footerId, i), content);
75             }
76             i++;
77         }
78         assertEquals("number of footer columns", GridBasicFeatures.COLUMNS, i);
79     }
80
81     protected static void assertText(String text, WebElement e) {
82         // TBE.getText returns "" if the element is scrolled out of view
83         assertEquals(text, e.getAttribute("innerHTML"));
84     }
85
86     protected static void assertHTML(String text, WebElement e) {
87         String html = e.getAttribute("innerHTML");
88
89         // IE 8 returns tags as upper case while other browsers do not, make the
90         // comparison non-casesensive
91         html = html.toLowerCase();
92         text = text.toLowerCase();
93
94         // IE 8 returns attributes without quotes, make the comparison without
95         // quotes
96         html = html.replaceAll("\"", "");
97         text = html.replaceAll("\"", "");
98
99         assertEquals(text, html);
100     }
101 }