summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Åstrand <legioth@gmail.com>2017-01-09 10:21:13 +0200
committerGitHub <noreply@github.com>2017-01-09 10:21:13 +0200
commitc5c6a350b53652616176c4f6074ce7478bd85175 (patch)
tree0e005447975053bdd24d44c1d7b96fa168453eda
parent74342821007c1fa1f99df9c7b3703404c3fc7c08 (diff)
downloadvaadin-framework-c5c6a350b53652616176c4f6074ce7478bd85175.tar.gz
vaadin-framework-c5c6a350b53652616176c4f6074ce7478bd85175.zip
Remove uriFragmentChanged from the public API of UriFragmentManager (#8164)
It's an implementation detail that UriFragmentManager uses a UriFragmentChangedListener, so this shouldn't be exposed in its public API.
-rw-r--r--server/src/main/java/com/vaadin/navigator/Navigator.java16
-rw-r--r--server/src/test/java/com/vaadin/tests/server/navigator/NavigatorTest.java8
-rw-r--r--server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java5
3 files changed, 8 insertions, 21 deletions
diff --git a/server/src/main/java/com/vaadin/navigator/Navigator.java b/server/src/main/java/com/vaadin/navigator/Navigator.java
index d403b48690..6a55b36ab8 100644
--- a/server/src/main/java/com/vaadin/navigator/Navigator.java
+++ b/server/src/main/java/com/vaadin/navigator/Navigator.java
@@ -39,8 +39,6 @@ import java.util.List;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.server.Page;
-import com.vaadin.server.Page.UriFragmentChangedEvent;
-import com.vaadin.server.Page.UriFragmentChangedListener;
import com.vaadin.shared.Registration;
import com.vaadin.shared.util.SharedUtil;
import com.vaadin.ui.Component;
@@ -101,10 +99,10 @@ public class Navigator implements Serializable {
* This class is mostly for internal use by Navigator, and is only public
* and static to enable testing.
*/
- public static class UriFragmentManager
- implements NavigationStateManager, UriFragmentChangedListener {
+ public static class UriFragmentManager implements NavigationStateManager {
private final Page page;
private Navigator navigator;
+ private Registration uriFragmentRegistration;
/**
* Creates a new URIFragmentManager and attach it to listen to URI
@@ -120,9 +118,10 @@ public class Navigator implements Serializable {
@Override
public void setNavigator(Navigator navigator) {
if (this.navigator == null && navigator != null) {
- page.addUriFragmentChangedListener(this);
+ uriFragmentRegistration = page.addUriFragmentChangedListener(
+ event -> navigator.navigateTo(getState()));
} else if (this.navigator != null && navigator == null) {
- page.removeUriFragmentChangedListener(this);
+ uriFragmentRegistration.remove();
}
this.navigator = navigator;
}
@@ -142,11 +141,6 @@ public class Navigator implements Serializable {
setFragment("!" + state);
}
- @Override
- public void uriFragmentChanged(UriFragmentChangedEvent event) {
- navigator.navigateTo(getState());
- }
-
/**
* Returns the current URI fragment tracked by this UriFragentManager.
*
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 20271defe5..9ac9492d95 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
@@ -32,14 +32,12 @@ import org.junit.Test;
import com.vaadin.navigator.NavigationStateManager;
import com.vaadin.navigator.Navigator;
-import com.vaadin.navigator.Navigator.UriFragmentManager;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.navigator.ViewDisplay;
import com.vaadin.navigator.ViewProvider;
import com.vaadin.server.Page;
-import com.vaadin.server.Page.UriFragmentChangedEvent;
import com.vaadin.server.VaadinRequest;
import com.vaadin.shared.Registration;
import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView;
@@ -298,11 +296,9 @@ public class NavigatorTest {
page.removeUriFragmentCalled());
Assert.assertNull("Navigator is not null in UI after destroy",
ui.getNavigator());
- UriFragmentManager manager = (UriFragmentManager) navigator
- .getStateManager();
- manager.uriFragmentChanged(
- EasyMock.createMock(UriFragmentChangedEvent.class));
+ page.setUriFragment("foobar", true);
+
Assert.fail(
"Expected null pointer exception after call uriFragmentChanged "
+ "for destroyed navigator");
diff --git a/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java b/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
index 6c7a3cf0d8..230f2f2a65 100644
--- a/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
+++ b/server/src/test/java/com/vaadin/tests/server/navigator/UriFragmentManagerTest.java
@@ -24,7 +24,6 @@ import org.junit.Test;
import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.Navigator.UriFragmentManager;
import com.vaadin.server.Page;
-import com.vaadin.server.Page.UriFragmentChangedEvent;
import com.vaadin.shared.Registration;
public class UriFragmentManagerTest {
@@ -62,9 +61,7 @@ public class UriFragmentManagerTest {
navigator.navigateTo("test");
control.replay();
- UriFragmentChangedEvent event = new UriFragmentChangedEvent(page,
- "oldtest");
- manager.uriFragmentChanged(event);
+ page.setUriFragment("oldtest", true);
}
@Test