Merge "Update dependency versions to match Gerrit"
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/Linkifier.java b/gitiles-servlet/src/main/java/com/google/gitiles/Linkifier.java
index 735e6f5..a9673b4 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/Linkifier.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/Linkifier.java
@@ -33,7 +33,10 @@
static {
// HTTP URL regex adapted from com.google.gwtexpui.safehtml.client.SafeHtml.
- String part = "[a-zA-Z0-9$_.+!*',%;:@=?#/~<>-]";
+ String part = "(?:" +
+ "[a-zA-Z0-9$_.+!*',%;:@=?#/~<>-]" +
+ "|&(?!lt;|gt;)" +
+ ")";
String httpUrl = "https?://" +
part + "{2,}" +
"(?:[(]" + part + "*" + "[)])*" +
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/LinkifierTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/LinkifierTest.java
index a943b2f..84f5f4f 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/LinkifierTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/LinkifierTest.java
@@ -110,4 +110,16 @@
"url", "http://test-host-review/foo/#/q/I0123456789,n,z")),
l.linkify(REQ, "http://my/url/I0123456789 is not change I0123456789"));
}
+
+ public void testLinkifyAmpersand() throws Exception {
+ Linkifier l = new Linkifier(TestGitilesUrls.URLS);
+ assertEquals(ImmutableList.of(
+ ImmutableMap.of("text", "http://my/url?a&b", "url", "http://my/url?a&b")),
+ l.linkify(REQ, "http://my/url?a&b"));
+ assertEquals(ImmutableList.of(
+ ImmutableMap.of("text", "http://weird/htmlified/?url",
+ "url", "http://weird/htmlified/?url"),
+ ImmutableMap.of("text", "<p&rt;")),
+ l.linkify(REQ, "http://weird/htmlified/?url<p&rt;"));
+ }
}