diff options
Diffstat (limited to 'uitest/src/com/vaadin/tests')
28 files changed, 1151 insertions, 972 deletions
diff --git a/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java b/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java index bb0b40e2d1..c2dc400d8b 100644 --- a/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java +++ b/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java @@ -46,7 +46,7 @@ public class VerifyBrowserVersionTest extends MultiBrowserTest { "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"); expectedUserAgent .put(Browser.CHROME.getDesiredCapabilities(), - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36"); + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"); } diff --git a/uitest/src/com/vaadin/tests/componentlocator/TestDetachedNotPresent.html b/uitest/src/com/vaadin/tests/componentlocator/TestDetachedNotPresent.html index 24e5e992ca..18129a72e2 100644 --- a/uitest/src/com/vaadin/tests/componentlocator/TestDetachedNotPresent.html +++ b/uitest/src/com/vaadin/tests/componentlocator/TestDetachedNotPresent.html @@ -1,4 +1,3 @@ - <?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"> diff --git a/uitest/src/com/vaadin/tests/components/calendar/CalendarActionEventSource.java b/uitest/src/com/vaadin/tests/components/calendar/CalendarActionEventSource.java index 5e81750e58..3a5d61d793 100644 --- a/uitest/src/com/vaadin/tests/components/calendar/CalendarActionEventSource.java +++ b/uitest/src/com/vaadin/tests/components/calendar/CalendarActionEventSource.java @@ -49,9 +49,8 @@ public class CalendarActionEventSource extends AbstractTestUI { CalendarEvent event = null; try { - event = new BasicEvent("NAME", "TOOLTIP", - new SimpleDateFormat("yyyy-MM-dd hh:mm") - .parse("2013-01-01 07:00"), + event = new BasicEvent("NAME", null, new SimpleDateFormat( + "yyyy-MM-dd hh:mm").parse("2013-01-01 07:00"), new SimpleDateFormat("yyyy-MM-dd hh:mm") .parse("2013-01-01 11:00")); } catch (ParseException e) { diff --git a/uitest/src/com/vaadin/tests/components/embedded/EmbeddedApplet.html b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedApplet.html deleted file mode 100644 index d8fb0593d1..0000000000 --- a/uitest/src/com/vaadin/tests/components/embedded/EmbeddedApplet.html +++ /dev/null @@ -1,36 +0,0 @@ -<?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>EmbeddedClickListenerRelativeCoordinates</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr><td rowspan="1" colspan="3">EmbeddedClickListenerRelativeCoordinates</td></tr> -</thead><tbody> -<tr> - <td>open</td> - <td>/run/com.vaadin.tests.components.embedded.EmbeddedApplet?restartApplication</td> - <td></td> -</tr> -<tr> - <td>screenCapture</td> - <td></td> - <td>with-applet</td> -</tr> -<tr> - <td>click</td> - <td>vaadin=runcomvaadintestscomponentsembeddedEmbeddedApplet::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> -</tr> -<tr> - <td>screenCapture</td> - <td></td> - <td>without-applet</td> -</tr> -</tbody></table> -</body> -</html> diff --git a/uitest/src/com/vaadin/tests/components/optiongroup/OptionGroupParentDisabled.html b/uitest/src/com/vaadin/tests/components/optiongroup/OptionGroupParentDisabled.html index 80d10a05ca..db5a268ecd 100644 --- a/uitest/src/com/vaadin/tests/components/optiongroup/OptionGroupParentDisabled.html +++ b/uitest/src/com/vaadin/tests/components/optiongroup/OptionGroupParentDisabled.html @@ -1,4 +1,4 @@ -?xml version="1.0" encoding="UTF-8"?> +<?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"> diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeak.java b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeak.java new file mode 100644 index 0000000000..647c187568 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeak.java @@ -0,0 +1,54 @@ +package com.vaadin.tests.components.orderedlayout; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.ui.Button; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; + +/** + * HorizontalLayout and VerticalLayout should not leak .v-spacing elements via + * listeners when removing components from a layout. + * + * @since 7.1.12 + * @author Vaadin Ltd + */ +public class SpacingLeak extends UI { + + private HorizontalLayout spacingLayout; + + @Override + public void init(VaadinRequest req) { + final VerticalLayout root = new VerticalLayout(); + setContent(root); + root.setSizeUndefined(); + + final Button spacingButton = new Button("Add layout with spacing"); + spacingButton.setId("addbutton"); + root.addComponent(spacingButton); + spacingButton.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(Button.ClickEvent event) { + spacingLayout = new HorizontalLayout(); + spacingLayout.setSpacing(true); + spacingLayout.setWidth("100%"); + + for (int i = 0; i < 100; ++i) { + spacingLayout.addComponent(new Button("" + i)); + } + + root.addComponent(spacingLayout); + } + }); + + final Button removeButton = new Button("Remove layouts"); + removeButton.setId("removebutton"); + root.addComponent(removeButton); + removeButton.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(Button.ClickEvent event) { + root.removeComponent(spacingLayout); + } + }); + } +} diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java new file mode 100644 index 0000000000..3a24cb7620 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.orderedlayout; + +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class SpacingLeakTest extends MultiBrowserTest { + + @Test + public void testSpacingLeak() throws Exception { + setDebug(true); + openTestURL(); + getDriver().findElement(By.id("addbutton")).click(); + getDriver().findElement(By.xpath("//button[@title = 'Clear log']")) + .click(); + getDriver().findElement(By.id("removebutton")).click(); + + // this should be present + getDriver() + .findElement( + By.xpath("//span[text() = 'Measured 0 non connector elements']")); + } +} diff --git a/uitest/src/com/vaadin/tests/components/table/TableScrollingWithSQLContainer.java b/uitest/src/com/vaadin/tests/components/table/TableScrollingWithSQLContainer.java new file mode 100644 index 0000000000..764207ff13 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/TableScrollingWithSQLContainer.java @@ -0,0 +1,99 @@ +package com.vaadin.tests.components.table; + +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; + +import com.vaadin.data.util.sqlcontainer.SQLContainer; +import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool; +import com.vaadin.data.util.sqlcontainer.connection.SimpleJDBCConnectionPool; +import com.vaadin.data.util.sqlcontainer.query.QueryDelegate; +import com.vaadin.data.util.sqlcontainer.query.TableQuery; +import com.vaadin.data.util.sqlcontainer.query.generator.DefaultSQLGenerator; +import com.vaadin.server.VaadinRequest; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Table; +import com.vaadin.ui.UI; +import com.vaadin.ui.VerticalLayout; + +@SuppressWarnings("serial") +public class TableScrollingWithSQLContainer extends UI { + + /** Table should never end up calling indexOfId in this case */ + private class LimitedSQLContainer extends SQLContainer { + + public LimitedSQLContainer(QueryDelegate delegate) throws SQLException { + super(delegate); + } + + @Override + public int indexOfId(Object itemId) { + throw new RuntimeException("This function should not be called"); + } + } + + private void generateTestData(JDBCConnectionPool connectionPool) + throws SQLException { + Connection conn = connectionPool.reserveConnection(); + Statement statement = conn.createStatement(); + try { + statement.execute("drop table PEOPLE"); + } catch (SQLException e) { + // Will fail if table doesn't exist, which is OK. + conn.rollback(); + } + statement + .execute("create table people (id integer generated always as identity," + + " name varchar(32), AGE INTEGER)"); + statement.execute("alter table people add primary key (id)"); + for (int i = 0; i < 5000; i++) { + statement + .executeUpdate("insert into people values(default, 'Person " + + i + "', '" + i % 99 + "')"); + } + statement.close(); + conn.commit(); + connectionPool.releaseConnection(conn); + } + + static final String TABLE = "table"; + + @Override + public void init(VaadinRequest request) { + try { + SimpleJDBCConnectionPool connectionPool = new SimpleJDBCConnectionPool( + "org.hsqldb.jdbc.JDBCDriver", + "jdbc:hsqldb:mem:sqlcontainer", "SA", "", 2, 20); + generateTestData(connectionPool); + + TableQuery query = new TableQuery("people", connectionPool, + new DefaultSQLGenerator()); + + SQLContainer container = new LimitedSQLContainer(query); + + final VerticalLayout rootLayout = new VerticalLayout(); + + final Table table = new Table(); + table.setContainerDataSource(container); + table.setCurrentPageFirstItemIndex(300); + rootLayout.addComponent(table); + + table.setImmediate(true); + + rootLayout.addComponent(new Button("GOTO 200", new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + table.setCurrentPageFirstItemIndex(200); + } + })); + + setContent(rootLayout); + + } catch (Exception e) { + e.printStackTrace(); + } + } +}
\ No newline at end of file diff --git a/uitest/src/com/vaadin/tests/components/table/TableScrollingWithSQLContainerTest.java b/uitest/src/com/vaadin/tests/components/table/TableScrollingWithSQLContainerTest.java new file mode 100644 index 0000000000..97c780e0e8 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/TableScrollingWithSQLContainerTest.java @@ -0,0 +1,35 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.table; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class TableScrollingWithSQLContainerTest extends MultiBrowserTest { + + @Test + public void verifySQLContainerIndexOfIDNotCalled() { + openTestURL(); + + vaadinElement("/VVerticalLayout[0]/VButton[0]").click(); + + Assert.assertTrue("SQLContainer indexOfId was called", driver + .findElements(By.className("v-errorindicator")).isEmpty()); + } +} diff --git a/uitest/src/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html b/uitest/src/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html deleted file mode 100644 index df1656dd23..0000000000 --- a/uitest/src/com/vaadin/tests/components/treetable/TreeTableCacheOnPartialUpdate.html +++ /dev/null @@ -1,553 +0,0 @@ -<?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>TreeTableCacheOnPartialUpdates</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr><td rowspan="1" colspan="3">TreeTableCacheOnPartialUpdates</td></tr> -</thead><tbody> -<tr> - <td>open</td> - <td>/run/com.vaadin.tests.components.treetable.TreeTableCacheOnPartialUpdates?restartApplication</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</td> - <td>47,5</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-2-B</td> - <td>46,7</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-7 (children)-G</td> - <td>54,12</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> - <td>1. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>2. Button Item TestBean [col1=2, col2=B]/col3 clicked. Row index: 1</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>3. Button Item TestBean [col1=7 (children), col2=G]/col3 clicked. Row index: 6</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButtonToggle-1 (children)-A</td> - <td>10,7</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>4. Row Item TestBean [col1=1 (children), col2=A] expanded. Row index: 0</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</td> - <td>81,6</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1.1-A.A</td> - <td>73,8</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</td> - <td>86,7</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1.5-A.E</td> - <td>72,2</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-2-B</td> - <td>73,7</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_4</td> - <td>5. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> - <td>6. Button Item TestBean [col1=1.1, col2=A.A]/col3 clicked. Row index: 1</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> - <td>7. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>8. Button Item TestBean [col1=1.5, col2=A.E]/col3 clicked. Row index: 5</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>9. Button Item TestBean [col1=2, col2=B]/col3 clicked. Row index: 6</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButtonToggle-1 (children)-A</td> - <td>11,2</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>10. Row Item TestBean [col1=1 (children), col2=A] collapsed. Row index: 0</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</td> - <td>76,5</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-3 (children)-C</td> - <td>58,7</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-2-B</td> - <td>69,10</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-1 (children)-A</td> - <td>78,7</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_4</td> - <td>10. Row Item TestBean [col1=1 (children), col2=A] collapsed. Row index: 0</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> - <td>11. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> - <td>12. Button Item TestBean [col1=3 (children), col2=C]/col3 clicked. Row index: 2</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>13. Button Item TestBean [col1=2, col2=B]/col3 clicked. Row index: 1</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>14. Button Item TestBean [col1=1 (children), col2=A]/col3 clicked. Row index: 0</td> -</tr> -<tr> - <td>scroll</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> - <td>30000</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</td> - <td>53,-2462</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-93-CO</td> - <td>91,-2452</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-87-CI</td> - <td>84,-2461</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</td> - <td>102,-2452</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> - <td>15. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> - <td>16. Button Item TestBean [col1=93, col2=CO]/col3 clicked. Row index: 92</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>17. Button Item TestBean [col1=87, col2=CI]/col3 clicked. Row index: 86</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>18. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> -</tr> -<!-- This relies on the row height being the same in all browsers. --> -<tr> - <td>scroll</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> - <td>990</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>screenCapture</td> - <td></td> - <td>scrolled</td> -</tr> -<tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/FocusableScrollPanel[0]/VTreeTable$VTreeTableScrollBody[0]/VTreeTable$VTreeTableScrollBody$VTreeTableRow[34]/VNativeButton[0]</td> - <td>34,-994</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButtonToggle-40 (children)-AN</td> - <td>9,-995</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>20. Row Item TestBean [col1=40 (children), col2=AN] expanded. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40 (children)-AN</td> - <td>93,-991</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>21. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40.1-AN.A</td> - <td>123,-991</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>22. Button Item TestBean [col1=40.1, col2=AN.A]/col3 clicked. Row index: 40</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40.6-AN.F</td> - <td>114,-1000</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>23. Button Item TestBean [col1=40.6, col2=AN.F]/col3 clicked. Row index: 45</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40 (children)-AN</td> - <td>118,-993</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>24. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButtonToggle-40 (children)-AN</td> - <td>9,-998</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>25. Row Item TestBean [col1=40 (children), col2=AN] collapsed. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-40 (children)-AN</td> - <td>42,-990</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>26. Button Item TestBean [col1=40 (children), col2=AN]/col3 clicked. Row index: 39</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-35-AI</td> - <td>84,-990</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>27. Button Item TestBean [col1=35, col2=AI]/col3 clicked. Row index: 34</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>cacheTestButton-48-AV</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-48-AV</td> - <td>98,-998</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>28. Button Item TestBean [col1=48, col2=AV]/col3 clicked. Row index: 47</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-41-AO</td> - <td>101,-994</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>29. Button Item TestBean [col1=41, col2=AO]/col3 clicked. Row index: 40</td> -</tr> -<tr> - <td>scroll</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> - <td>2465</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-86-CH</td> - <td>136,-2447</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-98-CT</td> - <td>131,-2462</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</td> - <td>134,-2459</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</td> - <td>144,-2454</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> - <td>30. Button Item TestBean [col1=86, col2=CH]/col3 clicked. Row index: 85</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> - <td>31. Button Item TestBean [col1=98, col2=CT]/col3 clicked. Row index: 97</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>32. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>33. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButtonToggle-99 (children)-CU</td> - <td>10,-2461</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>cacheTestButton-99 (children)-CU</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</td> - <td>65,-2456</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>34. Row Item TestBean [col1=99 (children), col2=CU] expanded. Row index: 98</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>35. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-86-CH</td> - <td>109,-2455</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>36. Button Item TestBean [col1=86, col2=CH]/col3 clicked. Row index: 85</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99.1-CU.A</td> - <td>82,-2457</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>37. Button Item TestBean [col1=99.1, col2=CU.A]/col3 clicked. Row index: 99</td> -</tr> -<tr> - <td>scroll</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTreeTable[0]/domChild[1]</td> - <td>2800</td> -</tr> -<tr> - <td>pause</td> - <td>1000</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</td> - <td>85,-2792</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-98-CT</td> - <td>101,-2788</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99.1-CU.A</td> - <td>111,-2794</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99.13-CU.M</td> - <td>113,-2794</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_3</td> - <td>38. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_2</td> - <td>39. Button Item TestBean [col1=98, col2=CT]/col3 clicked. Row index: 97</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_1</td> - <td>40. Button Item TestBean [col1=99.1, col2=CU.A]/col3 clicked. Row index: 99</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>41. Button Item TestBean [col1=99.13, col2=CU.M]/col3 clicked. Row index: 111</td> -</tr> -<!--collapse 99--> -<tr> - <td>mouseClick</td> - <td>cacheTestButtonToggle-99 (children)-CU</td> - <td>11,-2792</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>42. Row Item TestBean [col1=99 (children), col2=CU] collapsed. Row index: 98</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>cacheTestButton-99 (children)-CU</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-99 (children)-CU</td> - <td>71,-2465</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>43. Button Item TestBean [col1=99 (children), col2=CU]/col3 clicked. Row index: 98</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-100-CV</td> - <td>81,-2459</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>44. Button Item TestBean [col1=100, col2=CV]/col3 clicked. Row index: 99</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-98-CT</td> - <td>80,-2458</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>45. Button Item TestBean [col1=98, col2=CT]/col3 clicked. Row index: 97</td> -</tr> -<tr> - <td>mouseClick</td> - <td>cacheTestButton-87-CI</td> - <td>86,-2462</td> -</tr> -<tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestscomponentstreetableTreeTableCacheOnPartialUpdates::PID_SLog_row_0</td> - <td>46. Button Item TestBean [col1=87, col2=CI]/col3 clicked. Row index: 86</td> -</tr> -</tbody></table> -</body> -</html> diff --git a/uitest/src/com/vaadin/tests/components/ui/MultiFileUploadTest.java b/uitest/src/com/vaadin/tests/components/ui/MultiFileUploadTest.java new file mode 100644 index 0000000000..8f3e08335f --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/ui/MultiFileUploadTest.java @@ -0,0 +1,128 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.ui; + +import java.io.IOException; +import java.io.OutputStream; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUIWithLog; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Upload; +import com.vaadin.ui.Upload.ChangeEvent; +import com.vaadin.ui.Upload.ChangeListener; +import com.vaadin.ui.Upload.FailedEvent; +import com.vaadin.ui.Upload.FailedListener; +import com.vaadin.ui.Upload.Receiver; +import com.vaadin.ui.Upload.SucceededEvent; +import com.vaadin.ui.Upload.SucceededListener; +import com.vaadin.ui.VerticalLayout; + +public class MultiFileUploadTest extends AbstractTestUIWithLog { + + private ChangeListener changeListener = new ChangeListener() { + + @Override + public void filenameChanged(ChangeEvent event) { + if (event.getFilename().equals("")) { + removeUpload(event.getSource()); + } else { + addUpload(); + } + + } + }; + private VerticalLayout uploadsLayout = new VerticalLayout(); + + @Override + protected void setup(VaadinRequest request) { + getPage().getStyles().add( + ".v-upload-hidden-button .v-button {display:none};"); + addUpload(); + addComponent(uploadsLayout); + addComponent(new Button("Upload files", new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + for (Upload u : getUploads()) { + u.submitUpload(); + } + } + })); + } + + protected Iterable<Upload> getUploads() { + return (Iterable) uploadsLayout; + } + + protected void removeUpload(Upload source) { + uploadsLayout.removeComponent(source); + + } + + protected void addUpload() { + Upload upload = createUpload(); + upload.addSucceededListener(new SucceededListener() { + + @Override + public void uploadSucceeded(SucceededEvent event) { + log("Upload of " + event.getFilename() + " complete"); + uploadsLayout.removeComponent(event.getUpload()); + } + }); + + upload.addFailedListener(new FailedListener() { + @Override + public void uploadFailed(FailedEvent event) { + log("Upload of " + event.getFilename() + " FAILED"); + } + }); + + upload.setReceiver(new Receiver() { + @Override + public OutputStream receiveUpload(String filename, String mimeType) { + return new OutputStream() { + @Override + public void write(int arg0) throws IOException { + + } + }; + } + }); + upload.setStyleName("hidden-button"); + uploadsLayout.addComponent(upload); + + } + + private Upload createUpload() { + Upload upload = new Upload(); + upload.addChangeListener(changeListener); + return upload; + } + + @Override + protected String getTestDescription() { + return "Tests that an Upload change event can be used to create a multiple file upload component"; + } + + @Override + protected Integer getTicketNumber() { + return 13222; + } + +} diff --git a/uitest/src/com/vaadin/tests/fieldgroup/CommitHandlerFailures.html b/uitest/src/com/vaadin/tests/fieldgroup/CommitHandlerFailures.html index f0fe883d57..aaaa0a6625 100644 --- a/uitest/src/com/vaadin/tests/fieldgroup/CommitHandlerFailures.html +++ b/uitest/src/com/vaadin/tests/fieldgroup/CommitHandlerFailures.html @@ -1,220 +1,215 @@ -package com.vaadin.tests.fieldgroup; +<?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>New Test</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">New Test</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.fieldgroup.BasicPersonForm?restartApplication</td> + <td></td> +</tr> +<!--assert we are starting with what we think we are starting with--> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VTextField[0]</td> + <td>John</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> + <td>Doe</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td> + <td>john@doe.com</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> + <td>64</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td> + <td>v-selected</td> +</tr> +<tr> + <td>assertNotCSSClass</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]</td> + <td>v-selected</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VTextField[0]</td> + <td>NAAAAAH</td> +</tr> +<!--Make changes to fields--> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> + <td>Doeve</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VTextField[0]</td> + <td>Mike</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td> + <td>me@me.com</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> + <td>12</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td> + <td>31,10</td> +</tr> +<!--show bean values--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>1. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> +<!--pre commit fails--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VCheckBox[0]/domChild[0]</td> + <td>35,6</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>closeNotification</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>2. Commit failed: Commit failed</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>3. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> +<!--post commit fails--> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VCheckBox[0]/domChild[0]</td> + <td>10,7</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td> + <td>9,7</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>closeNotification</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>4. Commit failed: Commit failed</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>5. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> +<!--discard and ensure old values are returned as all commits have failed--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[9]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VTextField[0]</td> + <td>John</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> + <td>Doe</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td> + <td>john@doe.com</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> + <td>64</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td> + <td>v-selected</td> +</tr> +<tr> + <td>assertNotCSSClass</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]</td> + <td>v-selected</td> +</tr> +<tr> + <td>assertValue</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VTextField[0]</td> + <td>NAAAAAH</td> +</tr> +<!--show bean values--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>7. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> -public class CommitHandlerFailures_html { - <?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>New Test</title> - </head> - <body> - <table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr><td rowspan="1" colspan="3">New Test</td></tr> - </thead><tbody> - <tr> - <td>open</td> - <td>/run/com.vaadin.tests.fieldgroup.BasicPersonForm?restartApplication</td> - <td></td> - </tr> - <!--assert we are starting with what we think we are starting with--> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VTextField[0]</td> - <td>John</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> - <td>Doe</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td> - <td>john@doe.com</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> - <td>64</td> - </tr> - <tr> - <td>assertCSSClass</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td> - <td>v-selected</td> - </tr> - <tr> - <td>assertNotCSSClass</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]</td> - <td>v-selected</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VTextField[0]</td> - <td>NAAAAAH</td> - </tr> - <!--Make changes to fields--> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> - <td>Doeve</td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VTextField[0]</td> - <td>Mike</td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td> - <td>me@me.com</td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> - <td>12</td> - </tr> - <tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]/domChild[0]/domChild[0]</td> - <td>31,10</td> - </tr> - <!--show bean values--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>1. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - <!--pre commit fails--> - <tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VCheckBox[0]/domChild[0]</td> - <td>35,6</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>closeNotification</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> - <td>0,0</td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>2. Commit failed: Commit failed</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>3. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - <!--post commit fails--> - <tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[1]/VCheckBox[0]/domChild[0]</td> - <td>10,7</td> - </tr> - <tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VPanel[0]/VVerticalLayout[0]/ChildComponentContainer[0]/VCheckBox[0]/domChild[0]</td> - <td>9,7</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>closeNotification</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> - <td>0,0</td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>4. Commit failed: Commit failed</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>5. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - <!--discard and ensure old values are returned as all commits have failed--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[9]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VTextField[0]</td> - <td>John</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> - <td>Doe</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VTextField[0]</td> - <td>john@doe.com</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> - <td>64</td> - </tr> - <tr> - <td>assertCSSClass</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[0]</td> - <td>v-selected</td> - </tr> - <tr> - <td>assertNotCSSClass</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[2]</td> - <td>v-selected</td> - </tr> - <tr> - <td>assertValue</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VTextField[0]</td> - <td>NAAAAAH</td> - </tr> - <!--show bean values--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>7. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - - </tbody></table> - </body> - </html> - -} +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/fieldgroup/CommitWithValidationOrConversionError.html b/uitest/src/com/vaadin/tests/fieldgroup/CommitWithValidationOrConversionError.html index e32633513b..8681c6485e 100644 --- a/uitest/src/com/vaadin/tests/fieldgroup/CommitWithValidationOrConversionError.html +++ b/uitest/src/com/vaadin/tests/fieldgroup/CommitWithValidationOrConversionError.html @@ -1,150 +1,148 @@ - <?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>New Test</title> - </head> - <body> - <table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr><td rowspan="1" colspan="3">New Test</td></tr> - </thead><tbody> - <tr> - <td>open</td> - <td>/run/com.vaadin.tests.fieldgroup.BasicPersonForm?restartApplication</td> - <td></td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> - <td>Doev</td> - </tr> - <!--commit with invalid field must fail--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>closeNotification</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> - <td>0,0</td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>1. Commit failed: Commit failed</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>2. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> - <td>64,2</td> - </tr> - <!--commit with 2 fails--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>closeNotification</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> - <td>0,0</td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>3. Commit failed: Commit failed</td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> - <td>Doever</td> - </tr> - <!--1 error fixed, still 1 conversion error--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>closeNotification</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> - <td>0,0</td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>4. Commit failed: Commit failed</td> - </tr> - <tr> - <td>enterCharacter</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> - <td>123</td> - </tr> - <!--all fields ok, commit should be ok--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>closeNotification</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> - <td>0,0</td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>5. Commit succesful</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>6. Person [firstName=John, lastName=Doever, email=john@doe.com, age=123, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - <!--discard should now have no effect--> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[9]/VButton[0]/domChild[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>7. Discarded changes</td> - </tr> - <tr> - <td>click</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> - <td>8. Person [firstName=John, lastName=Doever, email=john@doe.com, age=123, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> - </tr> - - </tbody></table> - </body> - </html> - -} +<?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>New Test</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">New Test</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.fieldgroup.BasicPersonForm?restartApplication</td> + <td></td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> + <td>Doev</td> +</tr> +<!--commit with invalid field must fail--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>closeNotification</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>1. Commit failed: Commit failed</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>2. Person [firstName=John, lastName=Doe, email=john@doe.com, age=64, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> + <td>64,2</td> +</tr> +<!--commit with 2 fails--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>closeNotification</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>3. Commit failed: Commit failed</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VTextArea[0]</td> + <td>Doever</td> +</tr> +<!--1 error fixed, still 1 conversion error--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>closeNotification</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>4. Commit failed: Commit failed</td> +</tr> +<tr> + <td>enterCharacter</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VTextField[0]</td> + <td>123</td> +</tr> +<!--all fields ok, commit should be ok--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[8]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>closeNotification</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VNotification[0]</td> + <td>0,0</td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>5. Commit succesful</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>6. Person [firstName=John, lastName=Doever, email=john@doe.com, age=123, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> +<!--discard should now have no effect--> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[9]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>7. Discarded changes</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[10]/VButton[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::PID_SLog_row_0</td> + <td>8. Person [firstName=John, lastName=Doever, email=john@doe.com, age=123, sex=Male, address=Address [streetAddress=John street, postalCode=11223, city=John's town, country=USA], deceased=false, salary=null, salaryDouble=null, rent=null]</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html b/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html index 7c6f9ceb39..48d48ede80 100644 --- a/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html +++ b/uitest/src/com/vaadin/tests/fieldgroup/IntegerRangeValidator.html @@ -3,7 +3,7 @@ <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:88888/" /> +<link rel="selenium.base" href="" /> <title>IntegerRangeValidator</title> </head> <body> @@ -90,7 +90,6 @@ <td>vaadin=runcomvaadintestsfieldgroupBasicPersonForm::Root/VTooltip[0]/FlowPanel[0]/VErrorMessage[0]/HTML[0]</td> <td>Must be between 0 and 150, -1 is not</td> </tr> - </tbody></table> </body> </html> diff --git a/uitest/src/com/vaadin/tests/fonticon/FontIcons.java b/uitest/src/com/vaadin/tests/fonticon/FontIcons.java new file mode 100644 index 0000000000..5511acf3bf --- /dev/null +++ b/uitest/src/com/vaadin/tests/fonticon/FontIcons.java @@ -0,0 +1,226 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.fonticon; + +import com.vaadin.event.Action; +import com.vaadin.event.Action.Handler; +import com.vaadin.server.FontAwesome; +import com.vaadin.server.FontIcon; +import com.vaadin.server.Page; +import com.vaadin.server.Resource; +import com.vaadin.server.ThemeResource; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.Position; +import com.vaadin.shared.ui.label.ContentMode; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.AbstractSelect; +import com.vaadin.ui.Accordion; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.CheckBox; +import com.vaadin.ui.ComboBox; +import com.vaadin.ui.Component; +import com.vaadin.ui.DateField; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Link; +import com.vaadin.ui.ListSelect; +import com.vaadin.ui.MenuBar; +import com.vaadin.ui.MenuBar.MenuItem; +import com.vaadin.ui.NativeButton; +import com.vaadin.ui.NativeSelect; +import com.vaadin.ui.Notification; +import com.vaadin.ui.OptionGroup; +import com.vaadin.ui.Panel; +import com.vaadin.ui.Slider; +import com.vaadin.ui.TabSheet; +import com.vaadin.ui.Table; +import com.vaadin.ui.Table.Align; +import com.vaadin.ui.Table.RowHeaderMode; +import com.vaadin.ui.TextArea; +import com.vaadin.ui.TextField; +import com.vaadin.ui.Tree; +import com.vaadin.ui.TwinColSelect; +import com.vaadin.ui.Upload; +import com.vaadin.ui.VerticalLayout; + +/** + * + * @since + * @author Vaadin Ltd + */ +public class FontIcons extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + buildUI(FontAwesome.ANDROID); + } + + private void buildUI(final Resource icon) { + VerticalLayout layout = new VerticalLayout(); + setContent(layout); + layout.setMargin(true); + + layout.setIcon(icon); + + layout.addComponent(new Button("Switch icon type", + new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + buildUI(icon instanceof FontIcon ? new ThemeResource( + "../runo/icons/16/user.png") + : FontAwesome.ANDROID); + } + })); + + Handler actionHandler = new Handler() { + Action[] actions = { new Action("Do it!", icon) }; + + @Override + public void handleAction(Action action, Object sender, Object target) { + + } + + @Override + public Action[] getActions(Object target, Object sender) { + return actions; + } + }; + + // Notification + Notification n = new Notification("Hey there!"); + n.setIcon(icon); + n.setPosition(Position.BOTTOM_CENTER); + n.setDelayMsec(-1); + n.show(Page.getCurrent()); + + // grid of compoents + GridLayout gl = new GridLayout(4, 5); + gl.setSpacing(true); + layout.addComponent(gl); + + // Basic components, caption icon only + Class<?>[] components = { Button.class, CheckBox.class, + DateField.class, NativeButton.class, Link.class, Label.class, + Panel.class, Slider.class, TextArea.class, TextField.class, + Upload.class }; + for (Class<?> clazz : components) { + Component c; + try { + c = (Component) clazz.newInstance(); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + c.setCaption(clazz.getSimpleName()); + c.setIcon(icon); + gl.addComponent(c); + } + + // TabSheet, caption + tab icons + TabSheet tabs = new TabSheet(); + tabs.setCaption("TabSheet"); + tabs.setIcon(icon); + tabs.addStyleName("myTabs"); + tabs.addTab(new Label("Content 1"), "Tab 1", icon); + tabs.addTab(new Label("Content 2"), "Tab 2", icon); + tabs.setWidth("150px"); + gl.addComponent(tabs); + + // Accordion, caption + tab icons + Accordion acc = new Accordion(); + acc.setCaption("Accordion"); + acc.setIcon(icon); + acc.addTab(new Label(), "Section 1", icon); + acc.addTab(new Label(), "Section 2", icon); + gl.addComponent(acc); + + // Table, caption + column + row + action icons + Table tbl = new Table("Table"); + tbl.setRowHeaderMode(RowHeaderMode.ICON_ONLY); + tbl.setIcon(icon); + tbl.addContainerProperty("Column 1", String.class, "Row", "Column 1", + icon, Align.LEFT); + tbl.addContainerProperty("Column 2", String.class, "Row", "Column 2", + icon, Align.LEFT); + tbl.setItemIcon(tbl.addItem(), icon); + tbl.setItemIcon(tbl.addItem(), icon); + tbl.setItemIcon(tbl.addItem(), icon); + tbl.setPageLength(3); + gl.addComponent(tbl); + tbl.addActionHandler(actionHandler); + + // Selects, caption + item icons + Class<?>[] selects = { ComboBox.class, NativeSelect.class, + ListSelect.class, TwinColSelect.class, OptionGroup.class }; + for (Class<?> clazz : selects) { + AbstractSelect sel; + try { + sel = (AbstractSelect) clazz.newInstance(); + } catch (Exception e) { + e.printStackTrace(); + continue; + } + sel.setCaption(clazz.getSimpleName()); + sel.setIcon(icon); + sel.addItem("One"); + sel.setItemIcon("One", icon); + sel.addItem("Two"); + sel.setItemIcon("Two", icon); + gl.addComponent(sel); + } + + // MenuBar, caption + item + sub-item icons + MenuBar menu = new MenuBar(); + menu.setIcon(icon); + menu.setCaption("MenuBar"); + MenuItem mi = menu.addItem("File", icon, null); + MenuItem smi = mi.addItem("Item", icon, null); + smi = mi.addItem("Item", icon, null); + smi = smi.addItem("Item", icon, null); + gl.addComponent(menu); + + // Tree, caption + item + subitem + action icons + Tree tree = new Tree("Tree"); + tree.addItem("Root"); + tree.setItemIcon("Root", icon); + tree.addItem("Leaf"); + tree.setItemIcon("Leaf", icon); + tree.setParent("Leaf", "Root"); + tree.expandItemsRecursively("Root"); + tree.addActionHandler(actionHandler); + gl.addComponent(tree); + + // All of FontAwesome + String allIcons = ""; + for (FontIcon ic : FontAwesome.values()) { + allIcons += ic.getHtml() + " "; + } + layout.addComponent(new Label(allIcons, ContentMode.HTML)); + } + + @Override + protected String getTestDescription() { + return "Font icons should show up in all the right places"; + } + + @Override + protected Integer getTicketNumber() { + return 13152; + } + +} diff --git a/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java b/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java new file mode 100644 index 0000000000..af54b73ae3 --- /dev/null +++ b/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java @@ -0,0 +1,36 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.fonticon; + +import java.io.IOException; + +import org.junit.Test; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * + * @since + * @author Vaadin Ltd + */ +public class FontIconsTest extends MultiBrowserTest { + + @Test + public void checkScreenshot() throws IOException { + openTestURL(); + compareScreen("all"); + } +} diff --git a/uitest/src/com/vaadin/tests/integration/ServletIntegrationDefaultPushUI.java b/uitest/src/com/vaadin/tests/integration/ServletIntegrationDefaultPushUI.java new file mode 100644 index 0000000000..d6def8d69c --- /dev/null +++ b/uitest/src/com/vaadin/tests/integration/ServletIntegrationDefaultPushUI.java @@ -0,0 +1,29 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.integration; + +import com.vaadin.annotations.Push; + +/** + * Server test which uses the default push mechanisms + * + * @since 7.1.12 + * @author Vaadin Ltd + */ +@Push +public class ServletIntegrationDefaultPushUI extends ServletIntegrationUI { + +} diff --git a/uitest/src/com/vaadin/tests/integration/ServletIntegrationDefaultPushUITest.java b/uitest/src/com/vaadin/tests/integration/ServletIntegrationDefaultPushUITest.java new file mode 100644 index 0000000000..5f50cdb95d --- /dev/null +++ b/uitest/src/com/vaadin/tests/integration/ServletIntegrationDefaultPushUITest.java @@ -0,0 +1,21 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.integration; + +public class ServletIntegrationDefaultPushUITest extends + AbstractServletIntegrationTest { + // Uses the test method declared in the super class +}
\ No newline at end of file diff --git a/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPolling.java b/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPolling.java new file mode 100644 index 0000000000..7c0899c481 --- /dev/null +++ b/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPolling.java @@ -0,0 +1,33 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.push; + +import com.vaadin.annotations.Push; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.ui.ui.Transport; +import com.vaadin.shared.ui.ui.UIState.PushConfigurationState; + +@Push(transport = Transport.LONG_POLLING) +public class ExtremelyLongPushTimeLongPolling extends ExtremelyLongPushTime { + + @Override + public void init(VaadinRequest request) { + super.init(request); + // Don't use fallback so we can easier detect failures + getPushConfiguration().setParameter( + PushConfigurationState.FALLBACK_TRANSPORT_PARAM, "none"); + } +} diff --git a/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPollingTest.java b/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPollingTest.java new file mode 100644 index 0000000000..eb28634dfa --- /dev/null +++ b/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPollingTest.java @@ -0,0 +1,21 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.push; + +public class ExtremelyLongPushTimeLongPollingTest extends + ExtremelyLongPushTimeTest { + +} diff --git a/uitest/src/com/vaadin/tests/push/IdlePushChannelLongPollingTest.java b/uitest/src/com/vaadin/tests/push/IdlePushChannelLongPollingTest.java new file mode 100644 index 0000000000..5a90c4333d --- /dev/null +++ b/uitest/src/com/vaadin/tests/push/IdlePushChannelLongPollingTest.java @@ -0,0 +1,23 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.push; + +public class IdlePushChannelLongPollingTest extends IdlePushChannelTest { + @Override + protected Class<?> getUIClass() { + return BasicPushLongPolling.class; + } +} diff --git a/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java b/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java index 1f8c4c0e38..1c33293d55 100644 --- a/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java +++ b/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java @@ -93,6 +93,40 @@ public class PushConfigurationTest extends WebsocketTest { } + @Test + public void testLongPolling() { + setDebug(true); + openTestURL(); + int counter = getServerCounter(); + assertGreaterOrEqual("Counter should be >= 1. Was: " + counter, + counter, 1); + new Select(getTransportSelect()).selectByVisibleText("LONG_POLLING"); + new Select(getPushModeSelect()).selectByVisibleText("AUTOMATIC"); + Assert.assertTrue(vaadinElement( + "/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[5]/VLabel[0]/domChild[0]") + .getText() + .matches( + "^[\\s\\S]*fallbackTransport: streaming[\\s\\S]*transport: long-polling[\\s\\S]*$")); + counter = getServerCounter(); + final int waitCounter = counter + 2; + waitUntil(new ExpectedCondition<Boolean>() { + + @Override + public Boolean apply(WebDriver input) { + return (getServerCounter() >= waitCounter); + } + }); + + // Use debug console to verify we used the correct transport type + Assert.assertTrue(driver.getPageSource().contains( + "Push connection established using longpolling")); + Assert.assertFalse(driver.getPageSource().contains( + "Push connection established using streaming")); + + new Select(getPushModeSelect()).selectByVisibleText("DISABLED"); + + } + private WebElement getPushModeSelect() { return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[0]/VNativeSelect[0]/domChild[0]"); } diff --git a/uitest/src/com/vaadin/tests/push/PushLargeData.java b/uitest/src/com/vaadin/tests/push/PushLargeData.java index 83f573ed2c..93925ffb9f 100644 --- a/uitest/src/com/vaadin/tests/push/PushLargeData.java +++ b/uitest/src/com/vaadin/tests/push/PushLargeData.java @@ -34,8 +34,8 @@ import com.vaadin.ui.UI; public abstract class PushLargeData extends AbstractTestUIWithLog { - // 1MB - static final int DEFAULT_SIZE_BYTES = 1000 * 1000; + // 250KB + static final int DEFAULT_SIZE_BYTES = 250 * 1000; // Every other second static final int DEFAULT_DELAY_MS = 2000; diff --git a/uitest/src/com/vaadin/tests/push/LongPollingReconnectTest.java b/uitest/src/com/vaadin/tests/push/ReconnectLongPollingTest.java index 81c974e1e5..6d0c0c53b0 100644 --- a/uitest/src/com/vaadin/tests/push/LongPollingReconnectTest.java +++ b/uitest/src/com/vaadin/tests/push/ReconnectLongPollingTest.java @@ -15,7 +15,7 @@ */ package com.vaadin.tests.push; -public class LongPollingReconnectTest extends PushReconnectTest { +public class ReconnectLongPollingTest extends ReconnectTest { @Override protected Class<?> getUIClass() { diff --git a/uitest/src/com/vaadin/tests/push/StreamingReconnectTest.java b/uitest/src/com/vaadin/tests/push/ReconnectStreamingTest.java index 24dfdd8ba1..ebacf5be37 100755 --- a/uitest/src/com/vaadin/tests/push/StreamingReconnectTest.java +++ b/uitest/src/com/vaadin/tests/push/ReconnectStreamingTest.java @@ -15,7 +15,7 @@ */ package com.vaadin.tests.push; -public class StreamingReconnectTest extends PushReconnectTest { +public class ReconnectStreamingTest extends ReconnectTest { @Override protected Class<?> getUIClass() { diff --git a/uitest/src/com/vaadin/tests/push/PushReconnectTest.java b/uitest/src/com/vaadin/tests/push/ReconnectTest.java index 76a0b547da..69b2ccf22b 100644 --- a/uitest/src/com/vaadin/tests/push/PushReconnectTest.java +++ b/uitest/src/com/vaadin/tests/push/ReconnectTest.java @@ -23,7 +23,7 @@ import org.openqa.selenium.support.ui.ExpectedCondition; import com.vaadin.tests.tb3.MultiBrowserTestWithProxy; -public abstract class PushReconnectTest extends MultiBrowserTestWithProxy { +public abstract class ReconnectTest extends MultiBrowserTestWithProxy { @Test public void testShortDisconnect() throws Exception { @@ -152,7 +152,7 @@ public abstract class PushReconnectTest extends MultiBrowserTestWithProxy { @Override public Boolean apply(WebDriver input) { - return BasicPushTest.getServerCounter(PushReconnectTest.this) > counter; + return BasicPushTest.getServerCounter(ReconnectTest.this) > counter; } }, 30); } diff --git a/uitest/src/com/vaadin/tests/push/WebsocketReconnectTest.java b/uitest/src/com/vaadin/tests/push/ReconnectWebsocketTest.java index 075a18c0e7..57fe0a040d 100644 --- a/uitest/src/com/vaadin/tests/push/WebsocketReconnectTest.java +++ b/uitest/src/com/vaadin/tests/push/ReconnectWebsocketTest.java @@ -21,7 +21,7 @@ import org.openqa.selenium.remote.DesiredCapabilities; import com.vaadin.tests.tb3.WebsocketTest; -public class WebsocketReconnectTest extends PushReconnectTest { +public class ReconnectWebsocketTest extends ReconnectTest { @Override public List<DesiredCapabilities> getBrowsersToTest() { diff --git a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java index e166e421ef..fa55b82390 100644 --- a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java +++ b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java @@ -41,7 +41,7 @@ import org.openqa.selenium.remote.DesiredCapabilities; public abstract class MultiBrowserTest extends PrivateTB3Configuration { public enum Browser { - FIREFOX(BrowserUtil.firefox(24)), CHROME(BrowserUtil.chrome(29)), SAFARI( + FIREFOX(BrowserUtil.firefox(24)), CHROME(BrowserUtil.chrome(33)), SAFARI( BrowserUtil.safari(7)), IE8(BrowserUtil.ie(8)), IE9(BrowserUtil .ie(9)), IE10(BrowserUtil.ie(10)), IE11(BrowserUtil.ie(11)), OPERA( BrowserUtil.opera(17)); |