diff options
author | Henri Sara <hesara@vaadin.com> | 2012-11-13 10:57:59 +0000 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2012-11-13 10:57:59 +0000 |
commit | b3cf8a0806b95e27f210ba3498cebe1027bfc8f6 (patch) | |
tree | a10c6e283c306f4be56c8b3a2188528edaa97824 | |
parent | d8c6c4cfefff20d20d3c269a47714d42dc26ba1d (diff) | |
parent | 960972e41f9cb0b59aa6a24a882d52bf7940d5f6 (diff) | |
download | vaadin-framework-b3cf8a0806b95e27f210ba3498cebe1027bfc8f6.tar.gz vaadin-framework-b3cf8a0806b95e27f210ba3498cebe1027bfc8f6.zip |
Merge "Call ViewDisplay.showView before View.enter in Navigator.navigateTo (#10132)"
-rw-r--r-- | server/src/com/vaadin/navigator/Navigator.java | 6 | ||||
-rw-r--r-- | server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java | 19 |
2 files changed, 22 insertions, 3 deletions
diff --git a/server/src/com/vaadin/navigator/Navigator.java b/server/src/com/vaadin/navigator/Navigator.java index 4b2474a0f2..811a09fcfb 100644 --- a/server/src/com/vaadin/navigator/Navigator.java +++ b/server/src/com/vaadin/navigator/Navigator.java @@ -497,13 +497,13 @@ public class Navigator implements Serializable { } } - view.enter(event); - currentView = view; - if (display != null) { display.showView(view); } + view.enter(event); + currentView = view; + fireAfterViewChange(event); } diff --git a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java index 218791e454..b090bc5e35 100644 --- a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java +++ b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java @@ -691,6 +691,25 @@ public class NavigatorTest extends TestCase { navigator.setErrorProvider(errorProvider); navigator.navigateTo("doesnotexist2"); + } + + public void testShowViewEnterOrder() { + IMocksControl control = EasyMock.createStrictControl(); + + View view = control.createMock(View.class); + ViewDisplay display = control.createMock(ViewDisplay.class); + + display.showView(view); + view.enter(EasyMock.anyObject(ViewChangeEvent.class)); + + control.replay(); + + NavigationStateManager manager = EasyMock + .createNiceMock(NavigationStateManager.class); + EasyMock.replay(manager); + Navigator navigator = new Navigator(createMockUI(), manager, display); + navigator.addView("view", view); + navigator.navigateTo("view"); } } |