diff options
Diffstat (limited to 'tests')
23 files changed, 1739 insertions, 12 deletions
diff --git a/tests/scripts/sampler-all-samples.html b/tests/scripts/sampler-all-samples.html index b5a7435cba..6db13b7810 100644 --- a/tests/scripts/sampler-all-samples.html +++ b/tests/scripts/sampler-all-samples.html @@ -1153,6 +1153,56 @@ <td></td> <td></td> </tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> <!--Start over from the main page--> <tr> <td>mouseClick</td> @@ -2175,6 +2225,27 @@ <td></td> <td></td> </tr> +<!--TableFooter--> +<tr> +<td>screenCapture</td> +<td></td> +<td>TableFooter</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> <!--TableColumnReordering--> <tr> <td>screenCapture</td> @@ -2385,6 +2456,69 @@ <td></td> <td></td> </tr> +<!--TableMultipleSelection--> +<tr> +<td>screenCapture</td> +<td></td> +<td>TableMultipleSelection</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<!--TableClickHandlers--> +<tr> +<td>screenCapture</td> +<td></td> +<td>TableClickHandlers</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<!--TableKeyboardNavigation--> +<tr> +<td>screenCapture</td> +<td></td> +<td>TableKeyboardNavigation</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> <!--TreeSingleSelect--> <tr> <td>screenCapture</td> @@ -2469,6 +2603,27 @@ <td></td> <td></td> </tr> +<!--TreeKeyboardNavigation--> +<tr> +<td>screenCapture</td> +<td></td> +<td>TreeKeyboardNavigation</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> +<tr> +<td>mouseClick</td> +<td>vaadin=sampler::/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[7]/VHorizontalLayout[0]/ChildComponentContainer[1]/VNativeButton[0]</td> +<td>1,1</td> +</tr> +<tr> +<td>waitForVaadin</td> +<td></td> +<td></td> +</tr> <!--DragDropTreeSorting--> <tr> <td>screenCapture</td> diff --git a/tests/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html b/tests/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html index 16d18d2e50..28fe12f5a2 100644 --- a/tests/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html +++ b/tests/src/com/vaadin/tests/components/button/ButtonUndefinedWidth.html @@ -43,7 +43,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VButton[0]/domChild[0]/domChild[0]</td> <td></td> </tr> <tr> @@ -53,7 +53,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VNativeButton[0]</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonUndefinedWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VNativeButton[0]</td> <td></td> </tr> <tr> diff --git a/tests/src/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java b/tests/src/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java new file mode 100644 index 0000000000..6178d25a2a --- /dev/null +++ b/tests/src/com/vaadin/tests/components/combobox/ComboBoxEnablesComboBox.java @@ -0,0 +1,49 @@ +package com.vaadin.tests.components.combobox;
+
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.ComboBox;
+
+public class ComboBoxEnablesComboBox extends TestBase {
+
+ private ComboBox cb2;
+
+ @Override
+ protected void setup() {
+ ComboBox cb = new ComboBox("Always enabled");
+ cb.setImmediate(true);
+ populate(cb);
+ cb.addListener(new ValueChangeListener() {
+
+ public void valueChange(ValueChangeEvent event) {
+ cb2.setEnabled(true);
+ }
+
+ });
+ cb2 = new ComboBox("Initially disabled");
+ cb2.setImmediate(true);
+ cb2.setEnabled(false);
+ populate(cb2);
+
+ addComponent(cb);
+ addComponent(cb2);
+ }
+
+ private void populate(ComboBox cb) {
+ for (int i = 1; i < 10; i++) {
+ cb.addItem("Item " + i);
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Selecting an item in the first combobox enables the second.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 4632;
+ }
+
+}
diff --git a/tests/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html b/tests/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html index 89e67af354..9e529836b6 100644 --- a/tests/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html +++ b/tests/src/com/vaadin/tests/components/table/ColumnCollapsingAndColumnExpansion.html @@ -92,7 +92,7 @@ </tr> <tr> <td>contextmenu</td> - <td>vaadin=runcomvaadintestscomponentstableColumnCollapsingAndColumnExpansion::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableColumnCollapsingAndColumnExpansion::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td> <td></td> </tr> <tr> diff --git a/tests/src/com/vaadin/tests/components/table/CtrlShiftMultiselect.java b/tests/src/com/vaadin/tests/components/table/CtrlShiftMultiselect.java new file mode 100644 index 0000000000..02f4af045b --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/CtrlShiftMultiselect.java @@ -0,0 +1,53 @@ +package com.vaadin.tests.components.table; + +import com.vaadin.data.Container; +import com.vaadin.data.Item; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Table; + +@SuppressWarnings("serial") +public class CtrlShiftMultiselect extends TestBase { + + @Override + protected void setup() { + final Table table = new Table("Multiselectable table"); + + table.setContainerDataSource(createContainer()); + table.setImmediate(true); + + table.setSelectable(true); + table.setMultiSelect(true); + + table.setWidth("400px"); + table.setHeight("400px"); + + addComponent(table); + } + + @Override + protected String getDescription() { + return "Improve Table multiselect to use Ctrl and Shift for selection"; + } + + @Override + protected Integer getTicketNumber() { + return 3520; + } + + private Container createContainer() { + IndexedContainer container = new IndexedContainer(); + container.addContainerProperty("col1", String.class, ""); + container.addContainerProperty("col2", String.class, ""); + container.addContainerProperty("col3", String.class, ""); + + for (int i = 0; i < 100; i++) { + Item item = container.addItem("item " + i); + item.getItemProperty("col1").setValue("first" + i); + item.getItemProperty("col2").setValue("middle" + i); + item.getItemProperty("col3").setValue("last" + i); + } + + return container; + } +} diff --git a/tests/src/com/vaadin/tests/components/table/Footer.html b/tests/src/com/vaadin/tests/components/table/Footer.html new file mode 100644 index 0000000000..2d5fbe9846 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/Footer.html @@ -0,0 +1,347 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>Footer</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Footer</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.table.Footer</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer1</td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer2</td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer3</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td> + <td>11,8</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td> + <td>6,8</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer3</td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer2</td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer2</td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>Footer3</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[1]</td> + <td>9,10</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>//td[@id='gwt-uid-3']/span/div</td> + <td>0,9</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[1]</td> + <td>12,13</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VContextMenu[0]#option1</td> + <td>10,7</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>-45,13</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>fuu</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>fuu</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>-61,2</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>bar</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td>bar</td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>-21,9</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>type</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyTextPresent</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>-18,9</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>Footer1</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>-56,-4</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>Footer2</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>124,17</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[0]/VTextField[0]</td> + <td>Footer3</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableFooter::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VHorizontalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/src/com/vaadin/tests/components/table/Footer.java b/tests/src/com/vaadin/tests/components/table/Footer.java new file mode 100644 index 0000000000..4dc032fdd2 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/Footer.java @@ -0,0 +1,134 @@ +package com.vaadin.tests.components.table; + +import com.vaadin.data.Container; +import com.vaadin.data.Item; +import com.vaadin.data.Property; +import com.vaadin.data.Property.ValueChangeEvent; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Button; +import com.vaadin.ui.CheckBox; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Table; +import com.vaadin.ui.TextField; +import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.Button.ClickEvent; + +@SuppressWarnings("serial") +public class Footer extends TestBase { + + @Override + protected void setup() { + HorizontalLayout layout = new HorizontalLayout(); + layout.setSpacing(true); + + final Table table = new Table(); + table.setWidth("400px"); + table.setHeight("400px"); + + table.setContainerDataSource(createContainer()); + table.setImmediate(true); + + table.setColumnCollapsingAllowed(true); + table.setColumnReorderingAllowed(true); + + table.setFooterVisible(true); + + table.setColumnFooter("col1", "Footer1"); + table.setColumnFooter("col2", "Footer2"); + table.setColumnFooter("col3", "Footer3"); + + table.setColumnAlignment("col2", Table.ALIGN_CENTER); + table.setColumnAlignment("col3", Table.ALIGN_RIGHT); + + layout.addComponent(table); + + // Add some options to play with + VerticalLayout options = new VerticalLayout(); + options.setSpacing(true); + + final CheckBox visible = new CheckBox("Footers Visible", true); + visible.setImmediate(true); + visible.addListener(new Property.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + table.setFooterVisible(visible.booleanValue()); + + } + }); + + options.addComponent(visible); + + final TextField footer1Value = new TextField(null, "Footer1"); + footer1Value.setImmediate(true); + Button footer1Btn = new Button("Change", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + table.setColumnFooter("col1", + footer1Value.getValue() == null ? "" : footer1Value + .getValue().toString()); + } + }); + HorizontalLayout footer1 = new HorizontalLayout(); + footer1.addComponent(footer1Value); + footer1.addComponent(footer1Btn); + options.addComponent(footer1); + + final TextField footer2Value = new TextField(null, "Footer2"); + footer2Value.setImmediate(true); + Button footer2Btn = new Button("Change", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + table.setColumnFooter("col2", + footer2Value.getValue() == null ? "" : footer2Value + .getValue().toString()); + } + }); + HorizontalLayout footer2 = new HorizontalLayout(); + footer2.addComponent(footer2Value); + footer2.addComponent(footer2Btn); + options.addComponent(footer2); + + final TextField footer3Value = new TextField(null, "Footer3"); + footer3Value.setImmediate(true); + Button footer3Btn = new Button("Change", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + table.setColumnFooter("col3", + footer3Value.getValue() == null ? "" : footer3Value + .getValue().toString()); + } + }); + HorizontalLayout footer3 = new HorizontalLayout(); + footer3.addComponent(footer3Value); + footer3.addComponent(footer3Btn); + options.addComponent(footer3); + + layout.addComponent(options); + + addComponent(layout); + } + + @Override + protected String getDescription() { + return "Table with footer"; + } + + @Override + protected Integer getTicketNumber() { + return 1553; + } + + private Container createContainer() { + IndexedContainer container = new IndexedContainer(); + container.addContainerProperty("col1", String.class, ""); + container.addContainerProperty("col2", String.class, ""); + container.addContainerProperty("col3", String.class, ""); + + for (int i = 0; i < 100; i++) { + Item item = container.addItem("item " + i); + item.getItemProperty("col1").setValue("first" + i); + item.getItemProperty("col2").setValue("middle" + i); + item.getItemProperty("col3").setValue("last" + i); + } + + return container; + } + +} diff --git a/tests/src/com/vaadin/tests/components/table/FooterClick.html b/tests/src/com/vaadin/tests/components/table/FooterClick.html new file mode 100644 index 0000000000..e9a5a41c50 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/FooterClick.html @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>FooterClick</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">FooterClick</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.table.FooterClick</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooterClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]</td> + <td>41,7</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>vaadin=runcomvaadintestscomponentstableFooterClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td> + <td>col1</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooterClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]/domChild[0]</td> + <td>69,12</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>vaadin=runcomvaadintestscomponentstableFooterClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td> + <td>col2</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableFooterClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[2]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[0]</td> + <td>19,3</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>vaadin=runcomvaadintestscomponentstableFooterClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td> + <td>col3</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/src/com/vaadin/tests/components/table/FooterClick.java b/tests/src/com/vaadin/tests/components/table/FooterClick.java new file mode 100644 index 0000000000..07c0b83142 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/FooterClick.java @@ -0,0 +1,71 @@ +package com.vaadin.tests.components.table; + +import com.vaadin.data.Container; +import com.vaadin.data.Item; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Table; +import com.vaadin.ui.TextField; +import com.vaadin.ui.Table.FooterClickEvent; + +@SuppressWarnings("serial") +public class FooterClick extends TestBase { + + private final String COLUMN1_PROPERTY_ID = "col1"; + private final String COLUMN2_PROPERTY_ID = "col2"; + private final String COLUMN3_PROPERTY_ID = "col3"; + + @Override + protected void setup() { + final Table table = new Table(); + table.setContainerDataSource(createContainer()); + table.setWidth("400px"); + table.setHeight("400px"); + table.setImmediate(true); + table.setFooterVisible(true); + + table.setColumnFooter(COLUMN1_PROPERTY_ID, "fuu"); + table.setColumnFooter(COLUMN2_PROPERTY_ID, "bar"); + table.setColumnFooter(COLUMN3_PROPERTY_ID, "fuubar"); + + final TextField columnField = new TextField( + "ProperyId of clicked column"); + + // Set the footer click handler + table.setFooterClickHandler(new Table.FooterClickHandler() { + public void handleFooterClick(FooterClickEvent event) { + columnField.setValue(event.getPropertyId()); + } + }); + + addComponent(table); + addComponent(columnField); + } + + @Override + protected String getDescription() { + return "Tests the footer click handler"; + } + + @Override + protected Integer getTicketNumber() { + return 4516; + } + + private Container createContainer() { + IndexedContainer container = new IndexedContainer(); + container.addContainerProperty(COLUMN1_PROPERTY_ID, String.class, ""); + container.addContainerProperty(COLUMN2_PROPERTY_ID, String.class, ""); + container.addContainerProperty(COLUMN3_PROPERTY_ID, String.class, ""); + + for (int i = 0; i < 100; i++) { + Item item = container.addItem("item " + i); + item.getItemProperty(COLUMN1_PROPERTY_ID).setValue("first" + i); + item.getItemProperty(COLUMN2_PROPERTY_ID).setValue("middle" + i); + item.getItemProperty(COLUMN3_PROPERTY_ID).setValue("last" + i); + } + + return container; + } + +} diff --git a/tests/src/com/vaadin/tests/components/table/HeaderClick.html b/tests/src/com/vaadin/tests/components/table/HeaderClick.html new file mode 100644 index 0000000000..d1aabc3234 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/HeaderClick.html @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="http://localhost:8080/" /> +<title>HeaderClick</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">HeaderClick</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.table.HeaderClick</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]</td> + <td>37,11</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td> + <td>col1</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[1]/domChild[1]</td> + <td>36,9</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td> + <td>col2</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[1]</td> + <td>8,11</td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>vaadin=runcomvaadintestscomponentstableHeaderClick::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VTextField[0]</td> + <td>col3</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/src/com/vaadin/tests/components/table/HeaderClick.java b/tests/src/com/vaadin/tests/components/table/HeaderClick.java new file mode 100644 index 0000000000..d295e17a2b --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/HeaderClick.java @@ -0,0 +1,64 @@ +package com.vaadin.tests.components.table; + +import com.vaadin.data.Container; +import com.vaadin.data.Item; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Table; +import com.vaadin.ui.TextField; +import com.vaadin.ui.Table.HeaderClickEvent; + +@SuppressWarnings("serial") +public class HeaderClick extends TestBase { + + @Override + protected void setup() { + final Table table = new Table(); + table.setContainerDataSource(createContainer()); + table.setWidth("400px"); + table.setHeight("400px"); + table.setImmediate(true); + + final TextField columnField = new TextField( + "ProperyId of clicked column"); + + // Add header click handler + table.setHeaderClickHandler(new Table.HeaderClickHandler() { + public void handleHeaderClick(HeaderClickEvent event) { + columnField.setValue(event.getPropertyId()); + } + }); + + + addComponent(table); + addComponent(columnField); + + } + + @Override + protected String getDescription() { + return "Tests the header click handler"; + } + + @Override + protected Integer getTicketNumber() { + return 4515; + } + + private Container createContainer() { + IndexedContainer container = new IndexedContainer(); + container.addContainerProperty("col1", String.class, ""); + container.addContainerProperty("col2", String.class, ""); + container.addContainerProperty("col3", String.class, ""); + + for (int i = 0; i < 100; i++) { + Item item = container.addItem("item " + i); + item.getItemProperty("col1").setValue("first" + i); + item.getItemProperty("col2").setValue("middle" + i); + item.getItemProperty("col3").setValue("last" + i); + } + + return container; + } + +} diff --git a/tests/src/com/vaadin/tests/components/table/KeyControl.java b/tests/src/com/vaadin/tests/components/table/KeyControl.java new file mode 100644 index 0000000000..b13c53a43f --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/KeyControl.java @@ -0,0 +1,134 @@ +package com.vaadin.tests.components.table; + +import java.util.Set; + +import com.vaadin.data.Container; +import com.vaadin.data.Item; +import com.vaadin.data.Property.ValueChangeEvent; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Table; +import com.vaadin.ui.VerticalLayout; + +@SuppressWarnings("serial") +public class KeyControl extends TestBase { + + private final Label selected1 = new Label("No selected items."); + private final Table table1 = new Table("Read only table"); + + private final Label selected2 = new Label("No selected items"); + private final Table table2 = new Table("Selectable table"); + + private final Label selected3 = new Label("Not selected items"); + private final Table table3 = new Table("Multi-selectable table"); + + @Override + protected void setup() { + HorizontalLayout layout = new HorizontalLayout(); + layout.setSpacing(true); + addComponent(layout); + + // Create read only table + VerticalLayout layout1 = new VerticalLayout(); + layout1.setSpacing(true); + + table1.setContainerDataSource(createContainer()); + table1.setWidth("300px"); + table1.setHeight("300px"); + table1.setImmediate(true); + layout1.addComponent(table1); + + table1.addListener(new Table.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + Set<String> value = (Set<String>) table1.getValue(); + selected1 + .setValue(value.toString() + " TOTAL: " + value.size()); + } + }); + + layout1.addComponent(selected1); + layout.addComponent(layout1); + + // Create single select table + VerticalLayout layout2 = new VerticalLayout(); + layout2.setSpacing(true); + + table2.setContainerDataSource(createContainer()); + table2.setSelectable(true); + table2.setWidth("300px"); + table2.setHeight("300px"); + table2.setImmediate(true); + layout2.addComponent(table2); + + table2.addListener(new Table.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + String value = table2.getValue() == null ? "No selected items" + : table2.getValue().toString(); + selected2.setValue(value); + } + }); + + layout2.addComponent(selected2); + layout.addComponent(layout2); + + // Create multi select table + VerticalLayout layout3 = new VerticalLayout(); + layout3.setSpacing(true); + + table3.setContainerDataSource(createContainer()); + table3.setSelectable(true); + table3.setMultiSelect(true); + table3.setWidth("300px"); + table3.setHeight("300px"); + table3.setImmediate(true); + layout3.addComponent(table3); + + table3.addListener(new Table.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + Set<String> value = (Set<String>) table3.getValue(); + selected3.setValue(value.size() == 0 ? "No selected items" + : value + ": Total " + value.size() + " items"); + } + }); + + selected3.setWidth("300px"); + selected3.setHeight("500px"); + layout3.addComponent(selected3); + layout.addComponent(layout3); + } + + @Override + protected String getDescription() { + return "Add keyboard control to the Table"; + } + + @Override + protected Integer getTicketNumber() { + return 2390; + } + + private Container createContainer() { + IndexedContainer container = new IndexedContainer(); + container.addContainerProperty("col1", String.class, ""); + container.addContainerProperty("col2", String.class, ""); + container.addContainerProperty("col3", String.class, ""); + container.addContainerProperty("col4", String.class, ""); + container.addContainerProperty("col5", String.class, ""); + container.addContainerProperty("col6", String.class, ""); + + for (int i = 0; i < 100; i++) { + Item item = container.addItem("item " + i); + item.getItemProperty("col1").setValue("First column " + i); + item.getItemProperty("col2").setValue("Second column " + i); + item.getItemProperty("col3").setValue("Third column" + i); + item.getItemProperty("col4").setValue("Fourth column" + i); + item.getItemProperty("col5").setValue("Fifth column" + i); + item.getItemProperty("col6").setValue("Sixth column" + i); + } + + return container; + } + +} diff --git a/tests/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html b/tests/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html index e8dccea4e7..f82b1aedd3 100644 --- a/tests/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html +++ b/tests/src/com/vaadin/tests/components/table/LabelEmbeddedClickThroughForTable.html @@ -23,7 +23,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstableLabelEmbeddedClickThroughForTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VLabel[1]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableLabelEmbeddedClickThroughForTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VLabel[1]/domChild[0]</td> <td></td> </tr> <tr> @@ -38,7 +38,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstableLabelEmbeddedClickThroughForTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VLabel[1]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableLabelEmbeddedClickThroughForTable::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VLabel[1]/domChild[0]</td> <td></td> </tr> <tr> diff --git a/tests/src/com/vaadin/tests/components/table/PropertyValueChange.html b/tests/src/com/vaadin/tests/components/table/PropertyValueChange.html index 41f97ebb61..71d323cdc0 100644 --- a/tests/src/com/vaadin/tests/components/table/PropertyValueChange.html +++ b/tests/src/com/vaadin/tests/components/table/PropertyValueChange.html @@ -28,7 +28,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VFilterSelect[0]/domChild[1]</td> + <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VFilterSelect[0]/domChild[1]</td> <td></td> </tr> <tr> @@ -48,7 +48,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> <td></td> </tr> <tr> @@ -58,7 +58,7 @@ </tr> <tr> <td>type</td> - <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td>vaadin=runcomvaadintestscomponentstablePropertyValueChange::PID_Seditortable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> <td>9</td> </tr> <tr> diff --git a/tests/src/com/vaadin/tests/components/table/TableContextMenuOnField.java b/tests/src/com/vaadin/tests/components/table/TableContextMenuOnField.java new file mode 100644 index 0000000000..4c6f658a24 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/table/TableContextMenuOnField.java @@ -0,0 +1,93 @@ +package com.vaadin.tests.components.table; + +import com.vaadin.event.Action; +import com.vaadin.event.LayoutEvents.LayoutClickEvent; +import com.vaadin.event.LayoutEvents.LayoutClickListener; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Button; +import com.vaadin.ui.Component; +import com.vaadin.ui.Link; +import com.vaadin.ui.Table; +import com.vaadin.ui.TextField; +import com.vaadin.ui.VerticalLayout; + +public class TableContextMenuOnField extends TestBase { + + private static final Action ACTION_MYACTION = new Action("Action!!"); + + @Override + protected void setup() { + Table table = new Table(); + table.setSelectable(true); + table.setMultiSelect(true); + + table.addActionHandler(new Action.Handler() { + public void handleAction(Action action, Object sender, Object target) { + // TODO Auto-generated method stub + + } + + public Action[] getActions(Object target, Object sender) { + return new Action[] { ACTION_MYACTION }; + } + }); + + table.addGeneratedColumn("layout", new Table.ColumnGenerator() { + + public Component generateCell(Table source, Object itemId, + Object columnId) { + + VerticalLayout layout = new VerticalLayout(); + layout.addComponent(new TextField()); + + layout.addListener(new LayoutClickListener() { + + public void layoutClick(LayoutClickEvent event) { + getMainWindow().showNotification("HELLO"); + + } + }); + + return layout; + } + }); + + table.addGeneratedColumn("textfield", new Table.ColumnGenerator() { + public Component generateCell(Table source, Object itemId, + Object columnId) { + return new TextField(); + } + }); + + table.addGeneratedColumn("link", new Table.ColumnGenerator() { + public Component generateCell(Table source, Object itemId, + Object columnId) { + return new Link("Link", null); + } + }); + + table.addGeneratedColumn("button", new Table.ColumnGenerator() { + public Component generateCell(Table source, Object itemId, + Object columnId) { + return new Button("Button"); + } + }); + + table.addItem(); + table.addItem(); + table.addItem(); + addComponent(table); + } + + @Override + protected String getDescription() { + return "Right clicking on an item without a context menu should bring" + + "up the Tables context menu"; + } + + @Override + protected Integer getTicketNumber() { + return 4264; + } + +} diff --git a/tests/src/com/vaadin/tests/components/table/TableRowHeight2.html b/tests/src/com/vaadin/tests/components/table/TableRowHeight2.html index bd83c1d9dc..a440ff84fb 100644 --- a/tests/src/com/vaadin/tests/components/table/TableRowHeight2.html +++ b/tests/src/com/vaadin/tests/components/table/TableRowHeight2.html @@ -28,7 +28,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstableTableRowHeight2::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VButton[1]/domChild[0]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableTableRowHeight2::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VButton[1]/domChild[0]/domChild[0]</td> <td></td> </tr> <tr> @@ -38,7 +38,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstableTableRowHeight2::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VButton[1]/domChild[0]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableTableRowHeight2::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[1]/VButton[1]/domChild[0]/domChild[0]</td> <td></td> </tr> <tr> diff --git a/tests/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html b/tests/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html index 5b5ea40168..17d17f41eb 100644 --- a/tests/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html +++ b/tests/src/com/vaadin/tests/components/table/TextFieldRelativeWidth.html @@ -28,7 +28,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstableTextFieldRelativeWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[2]/VButton[0]/domChild[0]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableTextFieldRelativeWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[2]/VButton[0]/domChild[0]/domChild[0]</td> <td></td> </tr> <tr> @@ -38,7 +38,7 @@ </tr> <tr> <td>click</td> - <td>vaadin=runcomvaadintestscomponentstableTextFieldRelativeWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/ScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[4]/VButton[0]/domChild[0]/domChild[0]</td> + <td>vaadin=runcomvaadintestscomponentstableTextFieldRelativeWidth::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[4]/VButton[0]/domChild[0]/domChild[0]</td> <td></td> </tr> <tr> diff --git a/tests/src/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java b/tests/src/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java new file mode 100644 index 0000000000..1a329b17f5 --- /dev/null +++ b/tests/src/com/vaadin/tests/components/tree/CtrlShiftMultiselect.java @@ -0,0 +1,117 @@ +package com.vaadin.tests.components.tree; + +import java.util.Set; + +import com.vaadin.data.Item; +import com.vaadin.data.Property; +import com.vaadin.data.Property.ValueChangeEvent; +import com.vaadin.data.util.HierarchicalContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Label; +import com.vaadin.ui.Tree; + +public class CtrlShiftMultiselect extends TestBase { + + private final Tree tree = new Tree(); + private final Label valueLbl = new Label("No selection"); + + @Override + protected void setup() { + + getLayout().setSpacing(true); + + tree.setContainerDataSource(createContainer()); + tree.setItemCaptionPropertyId("name"); + tree.setWidth("300px"); + tree.setImmediate(true); + tree.setSelectable(true); + tree.setMultiSelect(true); + tree.expandItemsRecursively("Item 1"); + tree.expandItemsRecursively("Item 4"); + + tree.addListener(new Property.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + if (tree.getValue() instanceof Set) { + Set<Object> itemIds = (Set<Object>) tree.getValue(); + if (itemIds.size() == 0) { + valueLbl.setValue("No selection"); + } else { + valueLbl.setValue(itemIds); + } + } else { + valueLbl.setValue(tree.getValue()); + } + } + }); + + addComponent(tree); + + valueLbl.setWidth("300px"); + valueLbl.setHeight("600px"); + addComponent(valueLbl); + + } + + @Override + protected String getDescription() { + return "Add ctlr+shift multi selection in Tree"; + } + + @Override + protected Integer getTicketNumber() { + return 4259; + } + + private HierarchicalContainer createContainer() { + HierarchicalContainer cont = new HierarchicalContainer(); + cont.addContainerProperty("name", String.class, ""); + + for (int i = 0; i < 20; i++) { + Item item = cont.addItem("Item " + i); + item.getItemProperty("name").setValue("Item " + i); + cont.setChildrenAllowed("Item " + i, false); + + if (i == 1 || i == 4) { + cont.setChildrenAllowed("Item " + i, true); + } + + // Add three items to item 1 + if (i > 1 && i < 4) { + cont.setParent("Item " + i, "Item 1"); + } + + // Add 5 items to item 4 + if (i > 4 && i < 10) { + cont.setChildrenAllowed("Item " + i, true); + + if (i == 7) { + item = cont.addItem("Item 71"); + item.getItemProperty("name").setValue("Item 71"); + cont.setParent("Item 71", "Item " + i); + cont.setChildrenAllowed("Item 71", false); + + item = cont.addItem("Item 72"); + item.getItemProperty("name").setValue("Item 72"); + cont.setParent("Item 72", "Item " + i); + cont.setChildrenAllowed("Item 72", true); + + item = cont.addItem("Item 73"); + item.getItemProperty("name").setValue("Item 73"); + cont.setParent("Item 73", "Item 72"); + cont.setChildrenAllowed("Item 73", true); + + item = cont.addItem("Item 74"); + item.getItemProperty("name").setValue("Item 74"); + cont.setParent("Item 74", "Item " + i); + cont.setChildrenAllowed("Item 74", true); + } + + cont.setParent("Item " + i, "Item " + (i - 1)); + + } + } + + return cont; + } + +} diff --git a/tests/src/com/vaadin/tests/server/component/orderedlayout/TestOrderedLayout.java b/tests/src/com/vaadin/tests/server/component/orderedlayout/TestOrderedLayout.java new file mode 100644 index 0000000000..e17fb284dc --- /dev/null +++ b/tests/src/com/vaadin/tests/server/component/orderedlayout/TestOrderedLayout.java @@ -0,0 +1,49 @@ +package com.vaadin.tests.server.component.orderedlayout;
+
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+import com.vaadin.ui.AbstractOrderedLayout;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.VerticalLayout;
+
+public class TestOrderedLayout extends TestCase {
+
+ public void testVLIteration() {
+ testIndexing(new VerticalLayout(), 10);
+ }
+
+ public void testHLIteration() {
+ testIndexing(new HorizontalLayout(), 12);
+ }
+
+ public void testIndexing(AbstractOrderedLayout aol, int nrComponents) {
+ Component[] components = generateComponents(nrComponents);
+ for (Component c : components) {
+ aol.addComponent(c);
+ }
+ for (int i = 0; i < nrComponents; i++) {
+ assert (aol.getComponent(i) == components[i]);
+ assert (aol.getComponentIndex(components[i]) == i);
+ }
+
+ // Iteration should be in indexed order
+ int idx = 0;
+ for (Iterator<Component> i = aol.getComponentIterator(); i.hasNext();) {
+ Component c = i.next();
+ assert (aol.getComponentIndex(c) == idx++);
+ }
+ }
+
+ private Component[] generateComponents(int nr) {
+ Component[] components = new Component[nr];
+ for (int i = 0; i < nr; i++) {
+ components[i] = new Label("" + i);
+ }
+
+ return components;
+ }
+}
diff --git a/tests/src/com/vaadin/tests/server/component/table/TestFooter.java b/tests/src/com/vaadin/tests/server/component/table/TestFooter.java new file mode 100644 index 0000000000..ae880f8f09 --- /dev/null +++ b/tests/src/com/vaadin/tests/server/component/table/TestFooter.java @@ -0,0 +1,94 @@ +package com.vaadin.tests.server.component.table; + +import junit.framework.TestCase; + +import com.vaadin.data.Container; +import com.vaadin.data.Item; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.ui.Table; + +/** + * Test case for testing the footer API + * + */ +public class TestFooter extends TestCase { + + /** + * Tests if setting the footer visibility works properly + */ + public void testFooterVisibility() { + Table table = new Table("Test table", createContainer()); + + // The footer should by default be hidden + assertFalse(table.isFooterVisible()); + + // Set footer visibility to tru should be reflected in the + // isFooterVisible() method + table.setFooterVisible(true); + assertTrue(table.isFooterVisible()); + } + + /** + * Tests adding footers to the columns + */ + public void testAddingFooters() { + Table table = new Table("Test table", createContainer()); + + // Table should not contain any footers at initialization + assertNull(table.getColumnFooter("col1")); + assertNull(table.getColumnFooter("col2")); + assertNull(table.getColumnFooter("col3")); + + // Adding column footer + table.setColumnFooter("col1", "Footer1"); + assertEquals("Footer1", table.getColumnFooter("col1")); + + // Add another footer + table.setColumnFooter("col2", "Footer2"); + assertEquals("Footer2", table.getColumnFooter("col2")); + + // Add footer for a non-existing column + table.setColumnFooter("fail", "FooterFail"); + } + + /** + * Test removing footers + */ + public void testRemovingFooters() { + Table table = new Table("Test table", createContainer()); + table.setColumnFooter("col1", "Footer1"); + table.setColumnFooter("col2", "Footer2"); + + // Test removing footer + assertNotNull(table.getColumnFooter("col1")); + table.setColumnFooter("col1", null); + assertNull(table.getColumnFooter("col1")); + + // The other footer should still be there + assertNotNull(table.getColumnFooter("col2")); + + // Remove non-existing footer + table.setColumnFooter("fail", null); + } + + /** + * Creates a container with three properties "col1,col2,col3" with 100 items + * + * @return Returns the created table + */ + private static Container createContainer() { + IndexedContainer container = new IndexedContainer(); + container.addContainerProperty("col1", String.class, ""); + container.addContainerProperty("col2", String.class, ""); + container.addContainerProperty("col3", String.class, ""); + + for (int i = 0; i < 100; i++) { + Item item = container.addItem("item " + i); + item.getItemProperty("col1").setValue("first" + i); + item.getItemProperty("col2").setValue("middle" + i); + item.getItemProperty("col3").setValue("last" + i); + } + + return container; + } +} diff --git a/tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java b/tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java new file mode 100644 index 0000000000..70a2c4dda1 --- /dev/null +++ b/tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java @@ -0,0 +1,83 @@ +package com.vaadin.tests.server.component.table; + +import junit.framework.TestCase; + +import com.vaadin.ui.Table; +import com.vaadin.ui.Table.FooterClickEvent; +import com.vaadin.ui.Table.FooterClickHandler; + +/** + * Tests the footer click handler + */ +public class TestFooterClickHandlers extends TestCase { + + /** + * Tests setting the click handler + */ + public void testAddingClickHandler() { + final Table table = new Table(); + + // Create click handler + FooterClickHandler handler = new FooterClickHandler() { + public void handleFooterClick(FooterClickEvent event) { + } + }; + + // No predefined footer click listeners should be present + assertNull(table.getFooterClickHandler()); + + // Set the click handler + table.setFooterClickHandler(handler); + assertEquals(handler, table.getFooterClickHandler()); + } + + /** + * Tests changing the click handler to another one + */ + public void testChangingClickHandler() { + final Table table = new Table(); + + // Create 2 click handlers + FooterClickHandler handler1 = new FooterClickHandler() { + public void handleFooterClick(FooterClickEvent event) { + } + }; + + FooterClickHandler handler2 = new FooterClickHandler() { + public void handleFooterClick(FooterClickEvent event) { + } + }; + + // Set the click handler + table.setFooterClickHandler(handler1); + assertEquals(handler1, table.getFooterClickHandler()); + + // Change the click handler to another one + table.setFooterClickHandler(handler2); + assertEquals(handler2, table.getFooterClickHandler()); + } + + /** + * Tests if click handler is removed + */ + public void testRemovingClickHandler() { + final Table table = new Table(); + + // Create click handler + FooterClickHandler handler = new FooterClickHandler() { + public void handleFooterClick(FooterClickEvent event) { + } + }; + + // No predefined footer click listeners should be present + assertNull(table.getFooterClickHandler()); + + // Set the click handler + table.setFooterClickHandler(handler); + assertEquals(handler, table.getFooterClickHandler()); + + // Remove the click handler + table.setFooterClickHandler(null); + assertNull(table.getFooterClickHandler()); + } +} diff --git a/tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java b/tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java new file mode 100644 index 0000000000..7365e4ae2d --- /dev/null +++ b/tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java @@ -0,0 +1,83 @@ +package com.vaadin.tests.server.component.table; + +import junit.framework.TestCase; + +import com.vaadin.ui.Table; +import com.vaadin.ui.Table.HeaderClickEvent; +import com.vaadin.ui.Table.HeaderClickHandler; + +/** + * Tests the header click handler + */ +public class TestHeaderClickHandlers extends TestCase { + + /** + * Tests setting the click handler + */ + public void testAddingClickHandler() { + final Table table = new Table(); + + // Create click handler + HeaderClickHandler handler = new HeaderClickHandler() { + public void handleHeaderClick(HeaderClickEvent event) { + } + }; + + // No predefined header click listeners should be present + assertNull(table.getHeaderClickHandler()); + + // Set the click handler + table.setHeaderClickHandler(handler); + assertEquals(handler, table.getHeaderClickHandler()); + } + + /** + * Tests changing the click handler to another one + */ + public void testChangingClickHandler() { + final Table table = new Table(); + + // Create 2 click handlers + HeaderClickHandler handler1 = new HeaderClickHandler() { + public void handleHeaderClick(HeaderClickEvent event) { + } + }; + + HeaderClickHandler handler2 = new HeaderClickHandler() { + public void handleHeaderClick(HeaderClickEvent event) { + } + }; + + // Set the click handler + table.setHeaderClickHandler(handler1); + assertEquals(handler1, table.getHeaderClickHandler()); + + // Change the click handler to another one + table.setHeaderClickHandler(handler2); + assertEquals(handler2, table.getHeaderClickHandler()); + } + + /** + * Tests if click handler is removed + */ + public void testRemovingClickHandler() { + final Table table = new Table(); + + // Create click handler + HeaderClickHandler handler = new HeaderClickHandler() { + public void handleHeaderClick(HeaderClickEvent event) { + } + }; + + // No predefined header click listeners should be present + assertNull(table.getHeaderClickHandler()); + + // Set the click handler + table.setHeaderClickHandler(handler); + assertEquals(handler, table.getHeaderClickHandler()); + + // Remove the click handler + table.setHeaderClickHandler(null); + assertNull(table.getHeaderClickHandler()); + } +} diff --git a/tests/src/com/vaadin/tests/server/component/table/TestMultipleSelection.java b/tests/src/com/vaadin/tests/server/component/table/TestMultipleSelection.java new file mode 100644 index 0000000000..c87ebe9a91 --- /dev/null +++ b/tests/src/com/vaadin/tests/server/component/table/TestMultipleSelection.java @@ -0,0 +1,57 @@ +package com.vaadin.tests.server.component.table; + +import java.util.Arrays; +import java.util.Set; + +import junit.framework.TestCase; + +import com.vaadin.data.Container; +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.ui.Table; +import com.vaadin.ui.AbstractSelect.MultiSelectMode; + +public class TestMultipleSelection extends TestCase { + + /** + * Tests weather the multiple select mode is set when using Table.set + */ + @SuppressWarnings("unchecked") + public void testSetMultipleItems() { + Table table = new Table("", createTestContainer()); + + // Tests if multiple selection is set + table.setMultiSelect(true); + assertTrue(table.isMultiSelect()); + + // Test multiselect by setting several items at once + + table.setValue(Arrays.asList("1", new String[] { "3" })); + assertEquals(2, ((Set<String>) table.getValue()).size()); + } + + /** + * Tests setting the multiselect mode of the Table. The multiselect mode + * affects how mouse selection is made in the table by the user. + */ + public void testSetMultiSelectMode() { + Table table = new Table("", createTestContainer()); + + // Default multiselect mode should be MultiSelectMode.DEFAULT + assertEquals(MultiSelectMode.DEFAULT, table.getMultiSelectMode()); + + // Tests if multiselectmode is set + table.setMultiSelectMode(MultiSelectMode.SIMPLE); + assertEquals(MultiSelectMode.SIMPLE, table.getMultiSelectMode()); + } + + /** + * Creates a testing container for the tests + * + * @return A new container with test items + */ + private Container createTestContainer() { + IndexedContainer container = new IndexedContainer(Arrays.asList("1", + new String[] { "2", "3", "4" })); + return container; + } +} |