blob: 5f7e70dff626cf1de42ccbc2a6a7b24d06abd33c [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.test.util;
import junit.framework.Assert;
import org.chromium.chrome.browser.util.StreamUtil;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
/**
* A test utility class to get URLs that point to the test HTTP server, and to verify that it is up
* and giving expected responses to given URLs.
*/
public final class TestHttpServerClient {
private static final int SERVER_PORT = 8000;
private TestHttpServerClient() {
}
/**
* Construct a suitable URL for loading a test data file from the hosts' HTTP server.
*
* @param path path relative to the document root.
* @return an HTTP url.
*/
public static String getUrl(String path) {
return "http://localhost:" + SERVER_PORT + "/" + path;
}
/**
* Establishes a connection with the test server at default URL and verifies that it is running.
*/
public static void checkServerIsUp() {
checkServerIsUp(getUrl("chrome/test/data/android/ok.txt"), "OK Computer");
}
/**
* Establishes a connection with the test server at a given URL and verifies that it is running
* by making sure that the expected response is received.
*/
public static void checkServerIsUp(String serverUrl, String expectedResponse) {
InputStream is = null;
try {
URL testUrl = new URL(serverUrl);
is = testUrl.openStream();
byte[] buffer = new byte[128];
int length = is.read(buffer);
Assert.assertNotSame("Failed to access test HTTP Server at URL: " + serverUrl,
-1, expectedResponse.length());
Assert.assertEquals("Failed to access test HTTP Server at URL: " + serverUrl,
expectedResponse, new String(buffer, 0, length).trim());
} catch (MalformedURLException e) {
Assert.fail(
"Failed to check test HTTP server at URL: " + serverUrl + ". Status: " + e);
} catch (IOException e) {
Assert.fail(
"Failed to check test HTTP server at URL: " + serverUrl + ". Status: " + e);
} finally {
StreamUtil.closeQuietly(is);
}
}
}