]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add Navigator.getState() returning the current navigation state (#9972) 33/133/1
authorJohannes Dahlström <johannesd@vaadin.com>
Wed, 17 Oct 2012 13:29:28 +0000 (16:29 +0300)
committerJohannes Dahlström <johannesd@vaadin.com>
Wed, 17 Oct 2012 13:29:28 +0000 (16:29 +0300)
Change-Id: Ic423252ed82ea5c991760ece76a9a0f0e5a259a4

server/src/com/vaadin/navigator/Navigator.java
server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java

index 72d6c65fd231829df96d17721abf7435f09519a9..4b2474a0f28c50a3872c3b07d3a2c4d865cb14ed 100644 (file)
@@ -542,6 +542,16 @@ public class Navigator implements Serializable {
         return stateManager;
     }
 
+    /**
+     * Returns the current navigation state reported by this Navigator's
+     * {@link NavigationStateManager}.
+     * 
+     * @return The navigation state.
+     */
+    public String getState() {
+        return getStateManager().getState();
+    }
+
     /**
      * Return the ViewDisplay used by the navigator. Unless another display is
      * specified, a {@link SimpleViewDisplay} (which is a {@link Component}) is
index 7e21b751dceec76a3413bcbb1fe76b521781b31c..218791e4540191a28af3b98098ccdbd5e24fa77a 100644 (file)
@@ -228,21 +228,24 @@ public class NavigatorTest extends TestCase {
         view1.enter(eventParametersEqual(""));
         display.showView(view1);
         manager.setState("test1");
+        EasyMock.expect(manager.getState()).andReturn("test1");
 
         EasyMock.expect(provider.getViewName("test2/")).andReturn("test2");
         EasyMock.expect(provider.getView("test2")).andReturn(view2);
-        EasyMock.expect(manager.getState()).andReturn("view1");
+        EasyMock.expect(manager.getState()).andReturn("test1");
         view2.enter(eventParametersEqual(""));
         display.showView(view2);
         manager.setState("test2");
+        EasyMock.expect(manager.getState()).andReturn("test2");
 
         EasyMock.expect(provider.getViewName("test1/params"))
                 .andReturn("test1");
         EasyMock.expect(provider.getView("test1")).andReturn(view1);
-        EasyMock.expect(manager.getState()).andReturn("view2");
+        EasyMock.expect(manager.getState()).andReturn("test2");
         view1.enter(eventParametersEqual("params"));
         display.showView(view1);
         manager.setState("test1/params");
+        EasyMock.expect(manager.getState()).andReturn("test1/params");
 
         control.replay();
 
@@ -251,8 +254,13 @@ public class NavigatorTest extends TestCase {
         navigator.addProvider(provider);
 
         navigator.navigateTo("test1");
+        assertEquals("test1", navigator.getState());
+
         navigator.navigateTo("test2/");
+        assertEquals("test2", navigator.getState());
+
         navigator.navigateTo("test1/params");
+        assertEquals("test1/params", navigator.getState());
     }
 
     public void testMainView() {
@@ -284,7 +292,7 @@ public class NavigatorTest extends TestCase {
         EasyMock.expect(provider.getViewName("test1/params"))
                 .andReturn("test1");
         EasyMock.expect(provider.getView("test1")).andReturn(view1);
-        EasyMock.expect(manager.getState()).andReturn("view2");
+        EasyMock.expect(manager.getState()).andReturn("test2");
         view1.enter(eventParametersEqual("params"));
         display.showView(view1);
         manager.setState("test1/params");
@@ -330,7 +338,7 @@ public class NavigatorTest extends TestCase {
         ViewChangeEvent event2 = new ViewChangeEvent(navigator, view1, view2,
                 "test2", "");
         listener.addExpectedIsViewChangeAllowed(event2, true);
-        EasyMock.expect(manager.getState()).andReturn("view1");
+        EasyMock.expect(manager.getState()).andReturn("test1");
         view2.enter(eventParametersEqual(""));
         display.showView(view2);
         manager.setState("test2");