Test that Branch Redirect supports having short ref names in gitiles url.

PiperOrigin-RevId: 372370695
Change-Id: Ia3be25cbec3297cca78729834562464d2f2fb9ab
diff --git a/javatests/com/google/gitiles/BranchRedirectFilterTest.java b/javatests/com/google/gitiles/BranchRedirectFilterTest.java
index fbf0ff4..76c6198 100644
--- a/javatests/com/google/gitiles/BranchRedirectFilterTest.java
+++ b/javatests/com/google/gitiles/BranchRedirectFilterTest.java
@@ -27,6 +27,7 @@
 import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
 import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
 import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.junit.Before;
@@ -57,10 +58,10 @@
         new BranchRedirectFilter() {
           @Override
           protected Optional<String> getRedirectBranch(Repository repo, String sourceBranch) {
-            if (MASTER.equals(sourceBranch)) {
+            if (MASTER.equals(toFullBranchName(sourceBranch))) {
               return Optional.of(MAIN);
             }
-            if (FOO.equals(sourceBranch)) {
+            if (FOO.equals(toFullBranchName(sourceBranch))) {
               return Optional.of(BAR);
             }
             return Optional.empty();
@@ -109,6 +110,20 @@
   }
 
   @Test
+  public void show_withRedirect_usingShortRefInUrl() throws Exception {
+    repo.branch(MASTER).commit().add("foo", "contents").create();
+
+    String path = "/repo/+/master/foo";
+    FakeHttpServletRequest req = newHttpRequest(path, ORIGIN, QUERY_STRING_HTML);
+    FakeHttpServletResponse res = new FakeHttpServletResponse();
+
+    servlet.service(req, res);
+    assertThat(res.getStatus()).isEqualTo(SC_MOVED_PERMANENTLY);
+    assertThat(res.getHeader(HttpHeaders.LOCATION))
+        .isEqualTo("/b/repo/+/refs/heads/main/foo?format=html");
+  }
+
+  @Test
   public void show_onAutomationRequest() throws Exception {
     repo.branch(MASTER).commit().add("foo", "contents").create();
 
@@ -249,6 +264,13 @@
         .isEqualTo("/b/repo/+/refs/heads/main%7E2..refs/heads/main/?format=html");
   }
 
+  private static String toFullBranchName(String sourceBranch) {
+    if (sourceBranch.startsWith(Constants.R_REFS)) {
+      return sourceBranch;
+    }
+    return Constants.R_HEADS + sourceBranch;
+  }
+
   private static FakeHttpServletRequest newHttpRequest(
       String path, String origin, @Nullable String queryString) {
     FakeHttpServletRequest req = FakeHttpServletRequest.newRequest();