@Test public void placeManagerRevealRelativePlaceWithZeroLevelShouldGoToDefaultPlace() { // Given doAnswer( invocation -> { Object[] args = invocation.getArguments(); deferredCommandManager.addCommand( () -> placeManager.updateHistory( new PlaceRequest.Builder().nameToken("defaultPlace").build(), true)); ((PlaceRequestInternalEvent) args[0]).setHandled(); return null; }) .when(eventBus) .fireEventFromSource(isA(PlaceRequestInternalEvent.class), eq(placeManager)); // When placeManager.revealRelativePlace(0); deferredCommandManager.pump(); // Then PlaceRequest placeRequest = placeManager.getCurrentPlaceRequest(); assertEquals("defaultPlace", placeRequest.getNameToken()); assertEquals(0, placeRequest.getParameterNames().size()); verify(gwtWindowMethods).setBrowserHistoryToken(any(String.class), eq(false)); }
@Test public void placeManagerUserCallUpdateHistoryWhenRevealingPlace() { // Given doAnswer( invocation -> { Object[] args = invocation.getArguments(); deferredCommandManager.addCommand( () -> placeManager.updateHistory( new PlaceRequest.Builder() .nameToken("dummyNameToken") .with("dummyParam", "dummyValue") .build(), true)); ((PlaceRequestInternalEvent) args[0]).setHandled(); return null; }) .when(eventBus) .fireEventFromSource(isA(PlaceRequestInternalEvent.class), eq(placeManager)); // When placeManager.revealPlace(new PlaceRequest.Builder().nameToken("dummyNameToken").build()); deferredCommandManager.pump(); // Then PlaceRequest placeRequest = placeManager.getCurrentPlaceRequest(); assertEquals("dummyNameToken", placeRequest.getNameToken()); assertEquals(1, placeRequest.getParameterNames().size()); assertEquals("dummyValue", placeRequest.getParameter("dummyParam", null)); verify(gwtWindowMethods).setBrowserHistoryToken(any(String.class), eq(false)); }
/** Returns a new place request with the a new value for the specified parameter. */ public PlaceRequest.Builder replaceParameter( PlaceRequest placeRequest, String parameter, String newValue) { PlaceRequest.Builder builder = new PlaceRequest.Builder().nameToken(placeRequest.getNameToken()); for (String p : placeRequest.getParameterNames()) { if (parameter.equals(p)) { builder.with(parameter, newValue); } else { builder.with(p, placeRequest.getParameter(p, "")); } } return builder; }