diff options
author | gjoranv <gjoranv@gmail.com> | 2018-07-12 14:01:28 +0200 |
---|---|---|
committer | gjoranv <gv@oath.com> | 2018-07-12 14:36:17 +0200 |
commit | a1af151124df05dd6307487dd06fc3c22525edab (patch) | |
tree | 411a8a1c0cd12a4ce23da642ac6ea04a737ede81 /container-integration-test/src | |
parent | f7b9c0261930c81132c66e3f174b8c468894b92f (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.java | 84 |
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 |