예제 #1
0
  @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));
  }