Implement a redirector for gitweb-style URLs. Add a filter to the host index chain to redirect in the presence of gitweb-style query parameters. Only handles gitweb URLs using the query parameter flavor; see gitweb(1) for details. The intent of this filter is to provide compatibility for preexisting links to old gitweb URLs to be migrated to Gitiles; of course Gitiles itself does not create such URLs. For this reason, use HTTP 301 (Moved Permanently) for the redirect rather than 302 Found. Include simple but not exhaustive tests; the code block in question is far more concise than exhaustive tests would be. Change-Id: Ief7022b7cd419fc0380992071ad6e4a4428a6169
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/FakeHttpServletResponse.java b/gitiles-servlet/src/test/java/com/google/gitiles/FakeHttpServletResponse.java index 5249e41..a6c90e3 100644 --- a/gitiles-servlet/src/test/java/com/google/gitiles/FakeHttpServletResponse.java +++ b/gitiles-servlet/src/test/java/com/google/gitiles/FakeHttpServletResponse.java
@@ -16,9 +16,11 @@ import static com.google.common.base.Charsets.UTF_8; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import com.google.common.base.Charsets; +import com.google.common.collect.Iterables; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.ListMultimap; import com.google.common.net.HttpHeaders; @@ -252,4 +254,8 @@ public String getActualBodyString() { return RawParseUtils.decode(getActualBody()); } + + public String getHeader(String name) { + return Iterables.getFirst(headers.get(checkNotNull(name)), null); + } }