@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));
  }
Beispiel #3
0
 /** 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;
 }