--- /dev/null
+package com.vaadin.tests.gwtadapter.applicationconnection;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+\r
+import org.junit.Test;\r
+\r
+import com.vaadin.terminal.gwt.client.ApplicationConnection;\r
+\r
+public class URLGeneration {\r
+\r
+ private static final String[] URIS = new String[] {\r
+ "http://demo.vaadin.com/", //\r
+ "https://demo.vaadin.com/",\r
+ "http://demo.vaadin.com/foo",\r
+ "http://demo.vaadin.com/foo?f",\r
+ "http://demo.vaadin.com/foo?f=1",\r
+ "http://demo.vaadin.com:1234/foo?a",\r
+ "http://demo.vaadin.com:1234/foo#frag?fakeparam",\r
+ // Jetspeed\r
+ "http://localhost:8080/jetspeed/portal/_ns:Z3RlbXBsYXRlLXRvcDJfX3BhZ2UtdGVtcGxhdGVfX2RwLTFfX1AtMTJjNTRkYjdlYjUtMTAwMDJ8YzB8ZDF8aVVJREx8Zg__",\r
+ // Liferay generated url\r
+ "http://vaadin.com/directory?p_p_id=Directory_WAR_Directory&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_resource_id=UIDL&p_p_cacheability=cacheLevelPage&p_p_col_id=row-1&p_p_col_count=1",\r
+\r
+ };\r
+ private static final String[] URIS_WITH_ABCD_PARAM = new String[] {\r
+ "http://demo.vaadin.com/?a=b&c=d",\r
+ "https://demo.vaadin.com/?a=b&c=d",\r
+ "http://demo.vaadin.com/foo?a=b&c=d",\r
+ "http://demo.vaadin.com/foo?f&a=b&c=d",\r
+ "http://demo.vaadin.com/foo?f=1&a=b&c=d",\r
+ "http://demo.vaadin.com:1234/foo?a&a=b&c=d",\r
+ "http://demo.vaadin.com:1234/foo?a=b&c=d#frag?fakeparam",\r
+ "http://localhost:8080/jetspeed/portal/_ns:Z3RlbXBsYXRlLXRvcDJfX3BhZ2UtdGVtcGxhdGVfX2RwLTFfX1AtMTJjNTRkYjdlYjUtMTAwMDJ8YzB8ZDF8aVVJREx8Zg__?a=b&c=d",\r
+ "http://vaadin.com/directory?p_p_id=Directory_WAR_Directory&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_resource_id=UIDL&p_p_cacheability=cacheLevelPage&p_p_col_id=row-1&p_p_col_count=1&a=b&c=d",\r
+\r
+ };\r
+\r
+ private static final String[] URIS_WITH_ABCD_PARAM_AND_FRAGMENT = new String[] {\r
+ "http://demo.vaadin.com/?a=b&c=d#fragment",\r
+ "https://demo.vaadin.com/?a=b&c=d#fragment",\r
+ "http://demo.vaadin.com/foo?a=b&c=d#fragment",\r
+ "http://demo.vaadin.com/foo?f&a=b&c=d#fragment",\r
+ "http://demo.vaadin.com/foo?f=1&a=b&c=d#fragment",\r
+ "http://demo.vaadin.com:1234/foo?a&a=b&c=d#fragment",\r
+ "",\r
+ "http://localhost:8080/jetspeed/portal/_ns:Z3RlbXBsYXRlLXRvcDJfX3BhZ2UtdGVtcGxhdGVfX2RwLTFfX1AtMTJjNTRkYjdlYjUtMTAwMDJ8YzB8ZDF8aVVJREx8Zg__?a=b&c=d#fragment",\r
+ "http://vaadin.com/directory?p_p_id=Directory_WAR_Directory&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_resource_id=UIDL&p_p_cacheability=cacheLevelPage&p_p_col_id=row-1&p_p_col_count=1&a=b&c=d#fragment",\r
+\r
+ };\r
+\r
+ @Test\r
+ public void testParameterAdding() {\r
+ for (int i = 0; i < URIS.length; i++) {\r
+ // Adding nothing\r
+ assertEquals(URIS[i],\r
+ ApplicationConnection.addGetParameters(URIS[i], ""));\r
+\r
+ // Adding a=b&c=d\r
+ assertEquals(URIS_WITH_ABCD_PARAM[i],\r
+ ApplicationConnection.addGetParameters(URIS[i], "a=b&c=d"));\r
+\r
+ // Fragments\r
+ if (URIS_WITH_ABCD_PARAM_AND_FRAGMENT[i].length() > 0) {\r
+ assertEquals(\r
+ URIS_WITH_ABCD_PARAM_AND_FRAGMENT[i],\r
+ ApplicationConnection.addGetParameters(URIS[i]\r
+ + "#fragment", "a=b&c=d"));\r
+\r
+ // Empty fragment\r
+ assertEquals(URIS_WITH_ABCD_PARAM_AND_FRAGMENT[i].replace(\r
+ "#fragment", "#"),\r
+ ApplicationConnection.addGetParameters(URIS[i] + "#",\r
+ "a=b&c=d"));\r
+ }\r
+ }\r
+ }\r
+}\r