Index: net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java |
diff --git a/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java b/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java |
index 270b821fd750a15d689ccd6a5f1151c4ef34a663..66a9bd99d37be0afff635e18f7f1d8589c0aea0d 100644 |
--- a/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java |
+++ b/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java |
@@ -72,6 +72,7 @@ public class TestWebServer { |
private final ServerThread mServerThread; |
private String mServerUri; |
private final boolean mSsl; |
+ private final int mPort; |
private static class Response { |
final byte[] mResponseData; |
@@ -100,10 +101,13 @@ public class TestWebServer { |
/** |
* Create and start a local HTTP server instance. |
+ * @param port Port number the server must use, or 0 to automatically choose a free port. |
* @param ssl True if the server should be using secure sockets. |
* @throws Exception |
*/ |
- private TestWebServer(boolean ssl) throws Exception { |
+ private TestWebServer(int port, boolean ssl) throws Exception { |
+ mPort = port; |
+ |
mSsl = ssl; |
if (mSsl) { |
mServerUri = "https:"; |
@@ -117,32 +121,40 @@ public class TestWebServer { |
} |
} |
- mServerThread = new ServerThread(this, mSsl); |
+ mServerThread = new ServerThread(this, mPort, mSsl); |
mServerUri += "//localhost:" + mServerThread.mSocket.getLocalPort(); |
} |
- public static TestWebServer start() throws Exception { |
+ public static TestWebServer start(int port) throws Exception { |
if (sInstance != null) { |
throw new IllegalStateException("Tried to start multiple TestWebServers"); |
} |
- TestWebServer server = new TestWebServer(false); |
+ TestWebServer server = new TestWebServer(port, false); |
server.mServerThread.start(); |
setInstance(server); |
return server; |
} |
- public static TestWebServer startSsl() throws Exception { |
+ public static TestWebServer start() throws Exception { |
+ return start(0); |
+ } |
+ |
+ public static TestWebServer startSsl(int port) throws Exception { |
if (sSecureInstance != null) { |
throw new IllegalStateException("Tried to start multiple SSL TestWebServers"); |
} |
- TestWebServer server = new TestWebServer(true); |
+ TestWebServer server = new TestWebServer(port, true); |
server.mServerThread.start(); |
setSecureInstance(server); |
return server; |
} |
+ public static TestWebServer startSsl() throws Exception { |
+ return startSsl(0); |
+ } |
+ |
/** |
* Terminate the http server. |
*/ |
@@ -569,7 +581,7 @@ public class TestWebServer { |
} |
- public ServerThread(TestWebServer server, boolean ssl) throws Exception { |
+ public ServerThread(TestWebServer server, int port, boolean ssl) throws Exception { |
super("ServerThread"); |
mServer = server; |
mIsSsl = ssl; |
@@ -579,9 +591,9 @@ public class TestWebServer { |
if (mIsSsl) { |
mSslContext = SSLContext.getInstance("TLS"); |
mSslContext.init(getKeyManagers(), null, null); |
- mSocket = mSslContext.getServerSocketFactory().createServerSocket(0); |
+ mSocket = mSslContext.getServerSocketFactory().createServerSocket(port); |
} else { |
- mSocket = new ServerSocket(0); |
+ mSocket = new ServerSocket(port); |
} |
return; |
} catch (IOException e) { |