aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/test
diff options
context:
space:
mode:
authorPeter Lehto <peter@vaadin.com>2017-06-13 12:41:36 +0300
committerArtur <artur@vaadin.com>2017-06-13 12:41:36 +0300
commitcb1a2b99472faabba3596d673dbdbc377fb1628a (patch)
tree5d314656198c06b6411fce5a6b6a62214fa59197 /server/src/test
parent2f5e484a12f25d10ac6034d8ee9176b553b96c2d (diff)
downloadvaadin-framework-cb1a2b99472faabba3596d673dbdbc377fb1628a.tar.gz
vaadin-framework-cb1a2b99472faabba3596d673dbdbc377fb1628a.zip
Add getStateParameterMap to Navigator to get parameters as a map (#9517)
Diffstat (limited to 'server/src/test')
-rw-r--r--server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java127
1 files changed, 109 insertions, 18 deletions
diff --git a/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java
index 6991fd1b9e..022b388840 100644
--- a/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java
+++ b/server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java
@@ -23,6 +23,8 @@ import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail;
import java.util.LinkedList;
+import java.util.Map;
+import java.util.Map.Entry;
import org.easymock.EasyMock;
import org.easymock.IArgumentMatcher;
@@ -51,6 +53,25 @@ import com.vaadin.ui.VerticalLayout;
public class NavigatorTest {
+ private final class TestNavigationStateManager
+ implements NavigationStateManager {
+ private String state;
+
+ @Override
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ @Override
+ public void setNavigator(Navigator navigator) {
+ }
+
+ @Override
+ public String getState() {
+ return state;
+ }
+ }
+
// TODO test internal parameters (and absence of them)
// TODO test listeners blocking navigation, multiple listeners
@@ -854,24 +875,7 @@ public class NavigatorTest {
@Test
public void testNavigateTo_navigateSameUriTwice_secondNavigationDoesNothing() {
- NavigationStateManager manager = new NavigationStateManager() {
-
- private String state;
-
- @Override
- public void setState(String state) {
- this.state = state;
- }
-
- @Override
- public void setNavigator(Navigator navigator) {
- }
-
- @Override
- public String getState() {
- return state;
- }
- };
+ NavigationStateManager manager = new TestNavigationStateManager();
final String viewName = "view";
@@ -969,4 +973,91 @@ public class NavigatorTest {
((Label) ((HorizontalLayout) ui.getContent()).getComponent(0))
.getValue());
}
+
+ @Test
+ public void parameterMap_noViewSeparator() {
+ Navigator navigator = createNavigatorWithState("fooview");
+ Assert.assertTrue(navigator.getStateParameterMap().isEmpty());
+ Assert.assertTrue(navigator.getStateParameterMap("foo").isEmpty());
+ }
+
+ @Test
+ public void parameterMap_noParameters() {
+ Navigator navigator = createNavigatorWithState("fooview/");
+ Assert.assertTrue(navigator.getStateParameterMap().isEmpty());
+ }
+
+ @Test
+ public void parameterMap_oneParameterNoValue() {
+ Navigator navigator = createNavigatorWithState("fooview/bar");
+ assertMap(navigator.getStateParameterMap(), entry("bar", ""));
+ }
+
+ @Test
+ public void parameterMap_oneParameterNoValueButEquals() {
+ Navigator navigator = createNavigatorWithState("fooview/bar=");
+ assertMap(navigator.getStateParameterMap(), entry("bar", ""));
+ }
+
+ @Test
+ public void parameterMap_oneParameterWithValue() {
+ Navigator navigator = createNavigatorWithState("fooview/bar=baz");
+ assertMap(navigator.getStateParameterMap(), entry("bar", "baz"));
+ }
+
+ @Test
+ public void parameterMap_twoParameters() {
+ Navigator navigator = createNavigatorWithState("fooview/foo=bar&baz");
+ assertMap(navigator.getStateParameterMap(), entry("foo", "bar"),
+ entry("baz", ""));
+ }
+
+ @Test
+ public void parameterMap_customSeparator() {
+ Navigator navigator = createNavigatorWithState("fooview/foo=bar&baz");
+ assertMap(navigator.getStateParameterMap("a"), entry("foo", "b"),
+ entry("r&b", ""), entry("z", ""));
+ }
+
+ @SafeVarargs
+ private final void assertMap(Map<String, String> map,
+ Entry<String, String>... entries) {
+ Assert.assertEquals(entries.length, map.size());
+ for (Entry<String, String> entry : entries) {
+ Assert.assertTrue(
+ "Map should contain a key called '" + entry.getKey() + "'",
+ map.containsKey(entry.getKey()));
+ Assert.assertEquals(entry.getValue(), map.get(entry.getKey()));
+ }
+
+ }
+
+ private Entry<String, String> entry(String key, String value) {
+ return new Entry<String, String>() {
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String setValue(String value) {
+ throw new UnsupportedOperationException();
+ }
+
+ };
+ }
+
+ private Navigator createNavigatorWithState(String state) {
+ TestNavigationStateManager manager = new TestNavigationStateManager();
+ Navigator navigator = new Navigator(createMockUI(), manager,
+ EasyMock.createMock(ViewDisplay.class));
+ manager.setState(state);
+ return navigator;
+ }
}