summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJohannes Dahlström <johannesd@vaadin.com>2012-11-12 12:52:17 +0200
committerJohannes Dahlström <johannesd@vaadin.com>2012-11-12 12:52:17 +0200
commit960972e41f9cb0b59aa6a24a882d52bf7940d5f6 (patch)
treef149216eee731a29aa26e347fd2a136402f8cfc2 /server
parentc6fce8f5ea541625483a988b193935a6ae886a10 (diff)
downloadvaadin-framework-960972e41f9cb0b59aa6a24a882d52bf7940d5f6.tar.gz
vaadin-framework-960972e41f9cb0b59aa6a24a882d52bf7940d5f6.zip
Call ViewDisplay.showView before View.enter in Navigator.navigateTo (#10132)
Change-Id: I48ecb305166557f1671bdd635c25f17b8f490297
Diffstat (limited to 'server')
-rw-r--r--server/src/com/vaadin/navigator/Navigator.java6
-rw-r--r--server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java19
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");
}
}