123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package com.vaadin.tests.components.table;
-
- import org.junit.Before;
- import org.junit.Test;
-
- import com.vaadin.testbench.TestBenchElement;
- import com.vaadin.testbench.elements.CheckBoxElement;
- import com.vaadin.testbench.elements.LabelElement;
- import com.vaadin.testbench.elements.TableElement;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- import static org.junit.Assert.assertNotNull;
- import static org.junit.Assert.assertTrue;
-
- public class ItemClickEventsTest extends MultiBrowserTest {
-
- @Before
- public void init() {
- openTestURL("restartApplication");
- }
-
- private void clickElement(TestBenchElement e) {
- assertNotNull(e);
- e.click();
- }
-
- private void doubleClickElement(TestBenchElement e) {
- assertNotNull(e);
- e.doubleClick();
- }
-
- private void assertLog(String compare) {
- LabelElement logRow = $(LabelElement.class).id("Log_row_0");
- assertNotNull(logRow);
- assertTrue(logRow.getText().contains(compare));
- }
-
- private void assertSelected(TestBenchElement e) {
- assertNotNull(e);
- assertTrue(hasCssClass(e, "v-selected"));
- }
-
- @Test
- public void testSingleSelectNull() throws Exception {
-
- // Activate table null selection mode
- clickElement($(CheckBoxElement.class).caption("nullsel").get(1));
-
- // Get at the table element
- TableElement table = $(TableElement.class).id("table");
-
- // Select the first item
- clickElement(table.getRow(0));
- assertLog("left click on table/Item 0");
- sleep(100);
-
- // Do it again
- clickElement(table.getRow(0));
- assertLog("left click on table/Item 0");
-
- // Select the sixth item
- clickElement(table.getRow(5));
- assertLog("left click on table/Item 5");
-
- // Double click the sixth item
- doubleClickElement(table.getRow(5));
- assertLog("doubleClick on table/Item 5");
- }
-
- @Test
- public void testSingleSelectNotNull() throws Exception {
- // Get reference to table
- TableElement table = $(TableElement.class).id("table");
-
- // Select first item in list
- clickElement(table.getRow(0));
- assertSelected(table.getRow(0));
-
- // Check that the log contains "clicked item 0"
- assertLog("left click on table/Item 0");
-
- // Click on second item in list
- clickElement(table.getRow(1));
-
- // Make sure it got selected
- assertSelected(table.getRow(1));
-
- // Check log output
- assertLog("left click on table/Item 1");
- sleep(500);
-
- // Click row 1 again
- clickElement(table.getRow(1));
- assertLog("left click on table/Item 1");
-
- // Test double click
- doubleClickElement(table.getRow(1));
- // kludge: testbench seems to send an extra click; that doesn't affect
- // our test too much, though, and can be ignored.
- assertLog("doubleClick on table/Item 1");
-
- // Double click first item
- doubleClickElement(table.getRow(0));
- assertLog("doubleClick on table/Item 0");
-
- // Make sure it got selected again
- assertSelected(table.getRow(0));
- }
-
- @Test
- public void testSingleSelectNotSelectable() throws Exception {
-
- // Remove the 'selectable' mode from Table
- $(CheckBoxElement.class).caption("selectable").get(1).click();
-
- // Get table element
- TableElement table = $(TableElement.class).id("table");
-
- // Click some items and check that clicks go through
- clickElement(table.getCell(0, 0));
- assertLog("left click on table/Item 0");
-
- clickElement(table.getCell(5, 0));
- assertLog("left click on table/Item 5");
-
- clickElement(table.getCell(2, 0));
- assertLog("left click on table/Item 2");
-
- clickElement(table.getCell(8, 0));
- assertLog("left click on table/Item 8");
-
- clickElement(table.getCell(1, 0));
- assertLog("left click on table/Item 1");
-
- clickElement(table.getCell(0, 0));
- assertLog("left click on table/Item 0");
-
- }
-
- @Test
- public void testNonImmediateSingleSelectable() throws Exception {
-
- // Disable table immediate mode
- clickElement($(CheckBoxElement.class).caption("immediate").get(1));
-
- // Get table element
- TableElement table = $(TableElement.class).id("table");
-
- // Click items and verify that click event went through
- clickElement(table.getCell(1, 0));
- assertLog("left click on table/Item 1");
-
- clickElement(table.getCell(8, 0));
- assertLog("left click on table/Item 8");
-
- clickElement(table.getCell(1, 0));
- assertLog("left click on table/Item 1");
-
- clickElement(table.getCell(0, 0));
- assertLog("left click on table/Item 0");
-
- clickElement(table.getCell(6, 0));
- assertLog("left click on table/Item 6");
-
- }
-
- }
|