summaryrefslogtreecommitdiffstats
path: root/container-integration-test/src
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2018-07-12 14:01:28 +0200
committergjoranv <gv@oath.com>2018-07-12 14:36:17 +0200
commita1af151124df05dd6307487dd06fc3c22525edab (patch)
tree411a8a1c0cd12a4ce23da642ac6ea04a737ede81 /container-integration-test/src
parentf7b9c0261930c81132c66e3f174b8c468894b92f (diff)
Reapply "Adding handler and binding when services.xml has <search>-field"
Diffstat (limited to 'container-integration-test/src')
-rw-r--r--container-integration-test/src/test/java/com/yahoo/search/query/gui/GUIHandlerTest.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/container-integration-test/src/test/java/com/yahoo/search/query/gui/GUIHandlerTest.java b/container-integration-test/src/test/java/com/yahoo/search/query/gui/GUIHandlerTest.java
new file mode 100644
index 00000000000..5fd73afe800
--- /dev/null
+++ b/container-integration-test/src/test/java/com/yahoo/search/query/gui/GUIHandlerTest.java
@@ -0,0 +1,84 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.query.gui;
+
+import com.yahoo.application.Networking;
+import com.yahoo.application.container.JDisc;
+import com.yahoo.application.container.handler.Request;
+import com.yahoo.application.container.handler.Response;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+
+/**
+ * @author Henrik Høiness
+ */
+
+public class GUIHandlerTest {
+
+ private JDisc container;
+
+ @Before
+ public void startContainer() {
+ container = JDisc.fromServicesXml(servicesXml(), Networking.disable);
+ }
+
+ @After
+ public void stopContainer() {
+ /*
+ try {
+ Thread.sleep(100_000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }*/
+ container.close();
+ }
+
+ @Test
+ public void testRequest() throws Exception {
+ assertResponse("/querybuilder/", "<!-- Copyright 2018 Yahoo Holdings.","text/html; charset=UTF-8", 200);
+ }
+
+ @Test
+ public void testContentTypes() throws Exception{
+ assertResponse("/querybuilder/_includes/css/vespa.css", "/**","text/css; charset=UTF-8", 200);
+ assertResponse("/querybuilder/js/agency.js", "/*!","application/javascript; charset=UTF-8", 200);
+ assertResponse("/querybuilder/img/reload.svg", "<?xml","image/svg+xml; charset=UTF-8", 200);
+ assertResponse("/querybuilder/img/Vespa-V2.png", null,"image/png; charset=UTF-8", 200);
+ }
+
+ @Test
+ public void testInvalidPath() throws Exception{
+ assertResponse("/querybuilder/invalid_filepath", "{\"error-code\":\"NOT_FOUND\",\"message\":\"Nothing at path","application/json; charset=UTF-8", 404);
+ }
+
+
+ private void assertResponse(String path, String expectedStartString, String expectedContentType, int expectedStatusCode) throws IOException {
+ assertResponse(Request.Method.GET, path, expectedStartString,expectedContentType, expectedStatusCode);
+ }
+
+ private void assertResponse(Request.Method method, String path, String expectedStartString, String expectedContentType, int expectedStatusCode) throws IOException {
+ Response response = container.handleRequest(new Request("http://localhost:8080" + path, new byte[0], method));
+ assertEquals("Status code", expectedStatusCode, response.getStatus());
+ assertEquals(expectedContentType, response.getHeaders().getFirst("Content-Type"));
+ if(expectedStartString != null){
+ assertTrue(response.getBodyAsString().startsWith(expectedStartString));
+ }
+ }
+
+ private String servicesXml() {
+ return "<jdisc version='1.0'>\n" +
+ " <handler id='com.yahoo.search.query.gui.GUIHandler'>\n" +
+ " <binding>http://*/querybuilder/*</binding>\n" +
+ " </handler>\n" +
+ " <http>\n" +
+ " <server id='default' port='8080'/>\n" +
+ " </http>\n" +
+ "</jdisc>";
+ }
+
+} \ No newline at end of file