public void diff_branchRedirect()

in javatests/com/google/gitiles/ViewFilterTest.java [587:643]


  public void diff_branchRedirect() throws Exception {
    RevCommit parent = repo.commit().create();
    repo.branch(MASTER).commit().parent(parent).create();
    RevCommit main = repo.branch(MAIN).commit().parent(parent).create();
    BranchRedirect branchRedirect =
        new BranchRedirect() {
          @Override
          protected Optional<String> getRedirectBranch(Repository repo, String sourceBranch) {
            if (MASTER.equals(toFullBranchName(sourceBranch))) {
              return Optional.of(MAIN);
            }
            return Optional.empty();
          }
        };

    GitilesView view;

    view = getView("/repo/+diff/master^..master", branchRedirect);
    assertThat(view.getType()).isEqualTo(Type.DIFF);
    assertThat(view.getRevision().getName()).isEqualTo(MAIN);
    assertThat(view.getRevision().getId()).isEqualTo(main);
    assertThat(view.getOldRevision().getName()).isEqualTo("refs/heads/main^");
    assertThat(view.getOldRevision().getId()).isEqualTo(parent);
    assertThat(view.getPathPart()).isEmpty();

    view = getView("/repo/+diff/master..master^", branchRedirect);
    assertThat(view.getType()).isEqualTo(Type.DIFF);
    assertThat(view.getRevision().getName()).isEqualTo("refs/heads/main^");
    assertThat(view.getRevision().getId()).isEqualTo(parent);
    assertThat(view.getOldRevision().getName()).isEqualTo(MAIN);
    assertThat(view.getOldRevision().getId()).isEqualTo(main);
    assertThat(view.getPathPart()).isEmpty();

    view = getView("/repo/+diff/master^..master/", branchRedirect);
    assertThat(view.getType()).isEqualTo(Type.DIFF);
    assertThat(view.getRevision().getName()).isEqualTo(MAIN);
    assertThat(view.getRevision().getId()).isEqualTo(main);
    assertThat(view.getOldRevision().getName()).isEqualTo("refs/heads/main^");
    assertThat(view.getOldRevision().getId()).isEqualTo(parent);
    assertThat(view.getPathPart()).isEmpty();

    view = getView("/repo/+diff/master^..master/foo", branchRedirect);
    assertThat(view.getType()).isEqualTo(Type.DIFF);
    assertThat(view.getRevision().getName()).isEqualTo(MAIN);
    assertThat(view.getRevision().getId()).isEqualTo(main);
    assertThat(view.getOldRevision().getName()).isEqualTo("refs/heads/main^");
    assertThat(view.getOldRevision().getId()).isEqualTo(parent);
    assertThat(view.getPathPart()).isEqualTo("foo");

    view = getView("/repo/+diff/refs/heads/master^..refs/heads/master", branchRedirect);
    assertThat(view.getType()).isEqualTo(Type.DIFF);
    assertThat(view.getRevision().getName()).isEqualTo(MAIN);
    assertThat(view.getRevision().getId()).isEqualTo(main);
    assertThat(view.getOldRevision().getName()).isEqualTo("refs/heads/main^");
    assertThat(view.getOldRevision().getId()).isEqualTo(parent);
    assertThat(view.getPathPart()).isEmpty();
  }