Make sure that in SitePluginTests http client connects to the correct node and closes the node after the test
This commit is contained in:
parent
f96c1f1e10
commit
5b9e9a004a
|
@ -19,12 +19,15 @@
|
||||||
|
|
||||||
package org.elasticsearch.test.integration.plugin;
|
package org.elasticsearch.test.integration.plugin;
|
||||||
|
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.http.HttpServerTransport;
|
||||||
import org.elasticsearch.node.internal.InternalNode;
|
import org.elasticsearch.node.internal.InternalNode;
|
||||||
import org.elasticsearch.rest.RestStatus;
|
import org.elasticsearch.rest.RestStatus;
|
||||||
import org.elasticsearch.test.integration.AbstractNodesTests;
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
import org.elasticsearch.test.integration.rest.helper.HttpClient;
|
import org.elasticsearch.test.integration.rest.helper.HttpClient;
|
||||||
import org.elasticsearch.test.integration.rest.helper.HttpClientResponse;
|
import org.elasticsearch.test.integration.rest.helper.HttpClientResponse;
|
||||||
|
import org.testng.annotations.AfterMethod;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilder;
|
import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilder;
|
||||||
|
@ -37,23 +40,38 @@ import static org.hamcrest.Matchers.equalTo;
|
||||||
*/
|
*/
|
||||||
public class SitePluginTests extends AbstractNodesTests {
|
public class SitePluginTests extends AbstractNodesTests {
|
||||||
|
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void setupPluginDirectory() {
|
||||||
|
putDefaultSettings(settingsBuilder()
|
||||||
|
.put("path.plugins", "target/test-classes/org/elasticsearch/test/integration/plugin/")
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeMethod
|
||||||
|
public void startNodes() {
|
||||||
|
startNode("test");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterMethod
|
||||||
|
public void closeNodes() {
|
||||||
|
closeAllNodes();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpClient httpClient(String id) {
|
||||||
|
HttpServerTransport httpServerTransport = ((InternalNode) node(id)).injector().getInstance(HttpServerTransport.class);
|
||||||
|
return new HttpClient(httpServerTransport.boundAddress().publishAddress());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRedirectSitePlugin() throws Exception {
|
public void testRedirectSitePlugin() throws Exception {
|
||||||
|
|
||||||
Settings settings = settingsBuilder()
|
|
||||||
.put("path.plugins", "target/test-classes/org/elasticsearch/test/integration/plugin/")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
InternalNode node = (InternalNode) buildNode("test", settings);
|
|
||||||
node.start();
|
|
||||||
|
|
||||||
// We use an HTTP Client to test redirection
|
// We use an HTTP Client to test redirection
|
||||||
HttpClientResponse response = new HttpClient("http://localhost:9200").request("/_plugin/dummy");
|
HttpClientResponse response = httpClient("test").request("/_plugin/dummy");
|
||||||
assertThat(response.errorCode(), equalTo(RestStatus.MOVED_PERMANENTLY.getStatus()));
|
assertThat(response.errorCode(), equalTo(RestStatus.MOVED_PERMANENTLY.getStatus()));
|
||||||
assertThat(response.response(), containsString("/_plugin/dummy/"));
|
assertThat(response.response(), containsString("/_plugin/dummy/"));
|
||||||
|
|
||||||
// We test the real URL
|
// We test the real URL
|
||||||
response = new HttpClient("http://localhost:9200").request("/_plugin/dummy/");
|
response = httpClient("test").request("/_plugin/dummy/");
|
||||||
assertThat(response.errorCode(), equalTo(RestStatus.OK.getStatus()));
|
assertThat(response.errorCode(), equalTo(RestStatus.OK.getStatus()));
|
||||||
assertThat(response.response(), containsString("<title>Dummy Site Plugin</title>"));
|
assertThat(response.response(), containsString("<title>Dummy Site Plugin</title>"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,14 @@ package org.elasticsearch.test.integration.rest.helper;
|
||||||
|
|
||||||
import org.elasticsearch.ElasticSearchException;
|
import org.elasticsearch.ElasticSearchException;
|
||||||
import org.elasticsearch.common.io.Streams;
|
import org.elasticsearch.common.io.Streams;
|
||||||
|
import org.elasticsearch.common.transport.InetSocketTransportAddress;
|
||||||
|
import org.elasticsearch.common.transport.TransportAddress;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
|
@ -32,6 +35,15 @@ public class HttpClient {
|
||||||
|
|
||||||
private final URL baseUrl;
|
private final URL baseUrl;
|
||||||
|
|
||||||
|
public HttpClient(TransportAddress transportAddress) {
|
||||||
|
InetSocketAddress address = ((InetSocketTransportAddress) transportAddress).address();
|
||||||
|
try {
|
||||||
|
baseUrl = new URL("http", address.getHostName(), address.getPort(), "/");
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new ElasticSearchException("", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public HttpClient(String url) {
|
public HttpClient(String url) {
|
||||||
try {
|
try {
|
||||||
baseUrl = new URL(url);
|
baseUrl = new URL(url);
|
||||||
|
@ -40,6 +52,10 @@ public class HttpClient {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HttpClient(URL url) {
|
||||||
|
baseUrl = url;
|
||||||
|
}
|
||||||
|
|
||||||
public HttpClientResponse request(String path) {
|
public HttpClientResponse request(String path) {
|
||||||
return request("GET", path);
|
return request("GET", path);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue