aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Anisimov <denis@vaadin.com>2014-10-19 14:54:47 +0300
committerVaadin Code Review <review@vaadin.com>2014-12-02 10:52:59 +0000
commit53f87e5bf3014382f0bf9cd7acb18c56709ba1f7 (patch)
tree831259e7d43722ac30c0561242cc1705681b1e11
parent58cf6113d02cb0331dae6d5ff46eb3e4a0ccdb01 (diff)
downloadvaadin-framework-53f87e5bf3014382f0bf9cd7acb18c56709ba1f7.tar.gz
vaadin-framework-53f87e5bf3014382f0bf9cd7acb18c56709ba1f7.zip
Show push version information in debug window (#14904).
Change-Id: Id1761abbf2b2dc29b4138520f11ce51bb4d423fc
-rw-r--r--client/src/com/vaadin/client/ApplicationConfiguration.java45
-rw-r--r--client/src/com/vaadin/client/debug/internal/InfoSection.java8
-rw-r--r--server/src/com/vaadin/server/BootstrapHandler.java2
-rw-r--r--uitest/src/com/vaadin/tests/debug/PushVersionInfo.java51
-rw-r--r--uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java102
5 files changed, 208 insertions, 0 deletions
diff --git a/client/src/com/vaadin/client/ApplicationConfiguration.java b/client/src/com/vaadin/client/ApplicationConfiguration.java
index 12b1585292..4865e38a4a 100644
--- a/client/src/com/vaadin/client/ApplicationConfiguration.java
+++ b/client/src/com/vaadin/client/ApplicationConfiguration.java
@@ -172,6 +172,33 @@ public class ApplicationConfiguration implements EntryPoint {
return this.getConfig("versionInfo").vaadinVersion;
}-*/;
+ /**
+ * Gets the version of the Atmosphere framework.
+ *
+ * @return a string with the version
+ *
+ * @see org.atmosphere.util#getRawVersion()
+ */
+ private native String getAtmosphereVersion()
+ /*-{
+ return this.getConfig("versionInfo").atmosphereVersion;
+ }-*/;
+
+ /**
+ * Gets the JS version used in the Atmosphere framework.
+ *
+ * @return a string with the version
+ */
+ private native String getAtmosphereJSVersion()
+ /*-{
+ if ($wnd.jQueryVaadin != undefined){
+ return $wnd.jQueryVaadin.atmosphere.version;
+ }
+ else {
+ return null;
+ }
+ }-*/;
+
private native String getUIDL()
/*-{
return this.getConfig("uidl");
@@ -461,6 +488,24 @@ public class ApplicationConfiguration implements EntryPoint {
return getJsoConfiguration(id).getVaadinVersion();
}
+ /**
+ * Return Atmosphere version.
+ *
+ * @return Atmosphere version.
+ */
+ public String getAtmosphereVersion() {
+ return getJsoConfiguration(id).getAtmosphereVersion();
+ }
+
+ /**
+ * Return Atmosphere JS version.
+ *
+ * @return Atmosphere JS version.
+ */
+ public String getAtmosphereJSVersion() {
+ return getJsoConfiguration(id).getAtmosphereJSVersion();
+ }
+
public Class<? extends ServerConnector> getConnectorClassByEncodedTag(
int tag) {
Class<? extends ServerConnector> type = classes.get(tag);
diff --git a/client/src/com/vaadin/client/debug/internal/InfoSection.java b/client/src/com/vaadin/client/debug/internal/InfoSection.java
index a7a84f5f8f..dfb31cdd18 100644
--- a/client/src/com/vaadin/client/debug/internal/InfoSection.java
+++ b/client/src/com/vaadin/client/debug/internal/InfoSection.java
@@ -193,6 +193,9 @@ public class InfoSection implements Section {
ApplicationConfiguration applicationConfiguration) {
String clientVersion = Version.getFullVersion();
String servletVersion = applicationConfiguration.getServletVersion();
+ String atmosphereVersion = applicationConfiguration
+ .getAtmosphereVersion();
+ String jsVersion = applicationConfiguration.getAtmosphereJSVersion();
String themeVersion;
boolean themeOk;
@@ -213,6 +216,11 @@ public class InfoSection implements Section {
addRow("Server engine version", servletVersion, servletOk ? null
: ERROR_STYLE);
addRow("Theme version", themeVersion, themeOk ? null : ERROR_STYLE);
+ if (jsVersion != null) {
+ addRow("Push server version", atmosphereVersion);
+ addRow("Push client version", jsVersion
+ + " (note: does not need to match server version)");
+ }
}
/**
diff --git a/server/src/com/vaadin/server/BootstrapHandler.java b/server/src/com/vaadin/server/BootstrapHandler.java
index f0666f63fc..c34e986fce 100644
--- a/server/src/com/vaadin/server/BootstrapHandler.java
+++ b/server/src/com/vaadin/server/BootstrapHandler.java
@@ -469,6 +469,8 @@ public abstract class BootstrapHandler extends SynchronizedRequestHandler {
JsonObject versionInfo = Json.createObject();
versionInfo.put("vaadinVersion", Version.getFullVersion());
+ versionInfo.put("atmosphereVersion",
+ org.atmosphere.util.Version.getRawVersion());
appConfig.put("versionInfo", versionInfo);
appConfig.put("widgetset", context.getWidgetsetName());
diff --git a/uitest/src/com/vaadin/tests/debug/PushVersionInfo.java b/uitest/src/com/vaadin/tests/debug/PushVersionInfo.java
new file mode 100644
index 0000000000..d8c23a390f
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/debug/PushVersionInfo.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2014 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.debug;
+
+import org.atmosphere.util.Version;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.communication.PushMode;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Label;
+
+/**
+ * Test UI for PUSH version string in debug window.
+ *
+ * @author Vaadin Ltd
+ */
+public class PushVersionInfo extends AbstractTestUI {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ if (request.getParameter("enablePush") != null) {
+ getPushConfiguration().setPushMode(PushMode.AUTOMATIC);
+ Label label = new Label(Version.getRawVersion());
+ label.addStyleName("atmosphere-version");
+ addComponent(label);
+ }
+ }
+
+ @Override
+ public String getDescription() {
+ return "Debug window shows Push version in info Tab.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 14904;
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java b/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java
new file mode 100644
index 0000000000..90ea645ab8
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2000-2014 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.debug;
+
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
+
+import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+/**
+ * Test for PUSH version string in debug window.
+ *
+ * @author Vaadin Ltd
+ */
+@TestCategory("push")
+public class PushVersionInfoTest extends MultiBrowserTest {
+
+ @Test
+ public void testDisabledPush() {
+ setDebug(true);
+ openTestURL();
+
+ selectInfoTab();
+ Assert.assertNull("Found push info server string for disabled Push",
+ getPushRowValue("Push server version"));
+ Assert.assertNull("Found push info client string for disabled Push",
+ getPushRowValue("Push client version"));
+ }
+
+ @Test
+ public void testEnabledPush() {
+ setDebug(true);
+ openTestURL("enablePush=true");
+
+ selectInfoTab();
+ WebElement pushRow = getPushRowValue("Push server version");
+ String atmVersion = findElement(By.className("atmosphere-version"))
+ .getText();
+ Assert.assertTrue("Push row doesn't contain Atmosphere version",
+ pushRow.getText().contains(atmVersion));
+ String jsString = getPushRowValue("Push client version").getText();
+ Assert.assertTrue(
+ "Push client version doesn't contain 'vaadin' string",
+ jsString.contains("vaadin"));
+ Assert.assertTrue(
+ "Push client version doesn't contain 'jquery' string",
+ jsString.contains("jquery"));
+ }
+
+ private void selectInfoTab() {
+ if (isElementPresent(By.className("v-ie8"))) {
+
+ int size = findElements(By.className("v-debugwindow-tab")).size();
+ for (int i = 0; i < size; i++) {
+ WebElement tab = findElement(By
+ .className("v-debugwindow-tab-selected"));
+ String title = tab.getAttribute("title");
+ if (title != null && title.startsWith("General information")) {
+ break;
+ }
+ Actions actions = new Actions(getDriver());
+ actions.sendKeys(Keys.TAB);
+ actions.sendKeys(Keys.SPACE);
+ actions.build().perform();
+ }
+ } else {
+ findElements(By.className("v-debugwindow-tab")).get(0).click();
+ findElements(By.className("v-debugwindow-tab")).get(1).click();
+ }
+ }
+
+ private WebElement getPushRowValue(String key) {
+ List<WebElement> rows = findElements(By.className("v-debugwindow-row"));
+ for (WebElement row : rows) {
+ WebElement caption = row.findElement(By.className("caption"));
+ if (caption.getText().startsWith(key)) {
+ return row.findElement(By.className("value"));
+ }
+ }
+ return null;
+ }
+}