TestAccount: Build HTTP URL more robustly * Use URIBuilder, which does proper escaping. * Use toUriString to properly enclose IPv6 addresses in square brackets. Change-Id: Ibc4b714010520b098cf8293ce60e1077add2102e
diff --git a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/TestAccount.java b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/TestAccount.java index 5117328..3ab4a88 100644 --- a/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/TestAccount.java +++ b/gerrit-acceptance-framework/src/test/java/com/google/gerrit/acceptance/TestAccount.java
@@ -16,12 +16,15 @@ import static java.util.stream.Collectors.toList; +import com.google.common.net.InetAddresses; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.server.mail.Address; import com.jcraft.jsch.KeyPair; import java.io.ByteArrayOutputStream; +import java.net.InetSocketAddress; import java.util.Arrays; import java.util.List; +import org.apache.http.client.utils.URIBuilder; import org.eclipse.jgit.lib.PersonIdent; public class TestAccount { @@ -77,12 +80,13 @@ } public String getHttpUrl(GerritServer server) { - return String.format( - "http://%s:%s@%s:%d", - username, - httpPassword, - server.getHttpAddress().getAddress().getHostAddress(), - server.getHttpAddress().getPort()); + InetSocketAddress addr = server.getHttpAddress(); + return new URIBuilder() + .setScheme("http") + .setUserInfo(username, httpPassword) + .setHost(InetAddresses.toUriString(addr.getAddress())) + .setPort(addr.getPort()) + .toString(); } public Account.Id getId() {