--- /dev/null
+package com.vaadin.tests.applicationservlet;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.LabelElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+public class MultipleServletConfigurationTest extends MultiBrowserTest {
+
+ @Override
+ protected void closeApplication() {
+ }
+
+ @Test
+ public void testMultipleServletConfiguration() throws Exception {
+ getDriver().get(getBaseURL() + "/embed1");
+ assertLabelText("A generic test for Buttons in different configurations");
+ getDriver().get(getBaseURL() + "/embed2");
+ assertLabelText("Margins inside labels should not be allowed to collapse out of the label as it causes problems with layotus measuring the label.");
+ getDriver().get(getBaseURL() + "/embed1");
+ assertLabelText("A generic test for Buttons in different configurations");
+ }
+
+ private void assertLabelText(String expected) {
+ Assert.assertEquals("Unexpected label text,", expected,
+ $(LabelElement.class).first().getText());
+ }
+}
*/
package com.vaadin.tests.applicationservlet;
-import java.util.List;
-
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.By;
-import org.openqa.selenium.remote.DesiredCapabilities;
-import com.vaadin.testbench.parallel.Browser;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class NoApplicationClassTest extends MultiBrowserTest {
+public class NoApplicationClassTest extends SingleBrowserTest {
@Test
public void testInvalidApplicationClass() {
openTestURL();
String exceptionMessage = getDriver().findElement(By.xpath("//pre[2]"))
.getText();
- Assert.assertTrue(exceptionMessage
- .contains("ServletException: java.lang.ClassNotFoundException: ClassThatIsNotPresent"));
+ String expected = "ServletException: java.lang.ClassNotFoundException: ClassThatIsNotPresent";
+ Assert.assertTrue(
+ String.format(
+ "Unexpected error message.\n expected to contain: '%s'\n was: %s",
+ expected, exceptionMessage), exceptionMessage
+ .contains(expected));
}
@Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- return getBrowserCapabilities(Browser.CHROME);
+ protected String getDeploymentPath() {
+ return "/run/ClassThatIsNotPresent";
}
@Override
- protected String getDeploymentPath() {
- return "/run/ClassThatIsNotPresent";
+ protected void openTestURL(String... parameters) {
+ driver.get(getTestUrl());
}
}
--- /dev/null
+package com.vaadin.tests.applicationservlet;
+
+import java.util.Locale;
+
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.launcher.ApplicationRunnerServlet;
+import com.vaadin.server.CustomizedSystemMessages;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinService;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.NativeSelect;
+
+public class SystemMessages extends AbstractTestUI {
+
+ public class MyButton extends Button {
+ private boolean fail = false;
+
+ @Override
+ public void beforeClientResponse(boolean initial) {
+ // Set the error message to contain the current locale.
+ VaadinService.getCurrentRequest().setAttribute(
+ ApplicationRunnerServlet.CUSTOM_SYSTEM_MESSAGES_PROPERTY,
+ new CustomizedSystemMessages() {
+ @Override
+ public String getInternalErrorMessage() {
+ return "MessagesInfo locale: " + getLocale();
+ }
+ });
+ super.beforeClientResponse(initial);
+ if (fail) {
+ throw new RuntimeException("Failed on purpose");
+ }
+ }
+ }
+
+ @Override
+ protected void setup(final VaadinRequest request) {
+ final NativeSelect localeSelect = new NativeSelect("UI locale");
+ localeSelect.setImmediate(true);
+ localeSelect.addItem(new Locale("en", "US"));
+ localeSelect.addItem(new Locale("fi", "FI"));
+ localeSelect.addItem(Locale.GERMANY);
+ localeSelect.addValueChangeListener(new ValueChangeListener() {
+
+ @Override
+ public void valueChange(ValueChangeEvent event) {
+ Locale locale = (Locale) localeSelect.getValue();
+ setLocale(locale);
+ }
+ });
+ localeSelect.setValue(new Locale("fi", "FI"));
+ addComponent(localeSelect);
+ final MyButton failButton = new MyButton();
+ failButton.setCaption("Generate server side error");
+ failButton.addClickListener(new ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ failButton.fail = true;
+ failButton.markAsDirty();
+ }
+ });
+ addComponent(failButton);
+
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "SystemMessagesProvider.getSystemMessages should get an event object";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 10226;
+ }
+
+}
package com.vaadin.tests.applicationservlet;
-import java.util.Locale;
+import org.junit.Assert;
+import org.junit.Test;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.server.CustomizedSystemMessages;
-import com.vaadin.server.SystemMessages;
-import com.vaadin.server.SystemMessagesInfo;
-import com.vaadin.server.SystemMessagesProvider;
-import com.vaadin.server.VaadinRequest;
-import com.vaadin.tests.components.AbstractTestUI;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.NativeSelect;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.NativeSelectElement;
+import com.vaadin.testbench.elements.NotificationElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
-public class SystemMessagesTest extends AbstractTestUI {
-
- public class MyButton extends Button {
- private boolean fail = false;
-
- @Override
- public void beforeClientResponse(boolean initial) {
- super.beforeClientResponse(initial);
- if (fail) {
- throw new RuntimeException("Failed on purpose");
- }
- }
-
- }
-
- @Override
- protected void setup(VaadinRequest request) {
- final NativeSelect localeSelect = new NativeSelect("UI locale");
- localeSelect.setImmediate(true);
- localeSelect.addItem(new Locale("en", "US"));
- localeSelect.addItem(new Locale("fi", "FI"));
- localeSelect.addItem(Locale.GERMANY);
- localeSelect.addValueChangeListener(new ValueChangeListener() {
-
- @Override
- public void valueChange(ValueChangeEvent event) {
- setLocale((Locale) localeSelect.getValue());
- getSession().getService().setSystemMessagesProvider(
- new SystemMessagesProvider() {
-
- @Override
- public SystemMessages getSystemMessages(
- SystemMessagesInfo systemMessagesInfo) {
- CustomizedSystemMessages csm = new CustomizedSystemMessages();
- // csm.setInternalErrorCaption("Request query string: "
- // + ((VaadinServletRequest) systemMessagesInfo
- // .getRequest()).getQueryString());
- csm.setInternalErrorMessage("MessagesInfo locale: "
- + systemMessagesInfo.getLocale());
- return csm;
-
- }
- });
- }
- });
- localeSelect.setValue(new Locale("fi", "FI"));
- addComponent(localeSelect);
- final MyButton failButton = new MyButton();
- failButton.setCaption("Generate server side error");
- failButton.addClickListener(new ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- failButton.fail = true;
- failButton.markAsDirty();
- }
- });
- addComponent(failButton);
+public class SystemMessagesTest extends MultiBrowserTest {
+ @Test
+ public void testFinnishLocaleInSystemErrorMessage() throws Exception {
+ openTestURL();
+ verifyError("fi_FI");
}
- @Override
- protected String getTestDescription() {
- // TODO Auto-generated method stub
- return null;
+ @Test
+ public void testGermanLocaleInSystemErrorMessage() throws Exception {
+ openTestURL();
+ $(NativeSelectElement.class).first().selectByText("de_DE");
+ verifyError("de_DE");
}
- @Override
- protected Integer getTicketNumber() {
- // TODO Auto-generated method stub
- return null;
+ private void verifyError(String locale) {
+ $(ButtonElement.class).first().click();
+ NotificationElement notification = $(NotificationElement.class).first();
+ Assert.assertEquals("Incorrect notification caption,",
+ notification.getCaption(), "Internal error");
+ Assert.assertEquals("Incorrect notification description,",
+ notification.getDescription(), "MessagesInfo locale: " + locale);
}
-
}
+++ /dev/null
-<?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>/embed1</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=embed1::/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VLabel[0]</td>
- <td>A generic test for Buttons in different configurations</td>
-</tr>
-<tr>
- <td>open</td>
- <td>/embed2</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=embed2::/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VLabel[0]</td>
- <td>Margins inside labels should not be allowed to collapse out of the label as it causes problems with layotus measuring the label.</td>
-</tr>
-<tr>
- <td>open</td>
- <td>/embed1</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=embed1::/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VLabel[0]</td>
- <td>A generic test for Buttons in different configurations</td>
-</tr>
-
-</tbody></table>
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">\r
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<link rel="selenium.base" href="http://localhost:8888/" />\r
-<title>New Test</title>\r
-</head>\r
-<body>\r
-<table cellpadding="1" cellspacing="1" border="1">\r
-<thead>\r
-<tr><td rowspan="1" colspan="3">New Test</td></tr>\r
-</thead><tbody>\r
-<tr>\r
- <td>open</td>\r
- <td>/run/com.vaadin.tests.applicationservlet.SystemMessagesTest?restartApplication</td>\r
- <td></td>\r
-</tr>\r
-<tr>\r
- <td>click</td>\r
- <td>vaadin=runcomvaadintestsapplicationservletSystemMessagesTest::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VButton[0]/domChild[0]/domChild[0]</td>\r
- <td></td>\r
-</tr>\r
-<tr>\r
- <td>assertText</td>\r
- <td>vaadin=runcomvaadintestsapplicationservletSystemMessagesTest::Root/VNotification[0]/domChild[0]</td>\r
- <td>Internal error*MessagesInfo locale: fi_FI</td>\r
-</tr>\r
-<tr>\r
- <td>open</td>\r
- <td>/run/com.vaadin.tests.applicationservlet.SystemMessagesTest?restartApplication</td>\r
- <td></td>\r
-</tr>\r
-<tr>\r
- <td>select</td>\r
- <td>vaadin=runcomvaadintestsapplicationservletSystemMessagesTest::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VNativeSelect[0]/domChild[0]</td>\r
- <td>label=de_DE</td>\r
-</tr>\r
-<tr>\r
- <td>click</td>\r
- <td>vaadin=runcomvaadintestsapplicationservletSystemMessagesTest::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VButton[0]/domChild[0]/domChild[0]</td>\r
- <td></td>\r
-</tr>\r
-<tr>\r
- <td>assertText</td>\r
- <td>vaadin=runcomvaadintestsapplicationservletSystemMessagesTest::Root/VNotification[0]/domChild[0]</td>\r
- <td>Internal error*MessagesInfo locale: de_DE</td>\r
-</tr>\r
-\r
-</tbody></table>\r
-</body>\r
-</html>\r