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();
}