diff --git a/pom.xml b/pom.xml
index eb5d6f1..cb00dee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -95,6 +95,14 @@
 			<version>${jersey.version}</version>
 			<scope>test</scope>
 		</dependency>
+		
+		<!-- Mockserver -->
+		<dependency>
+		    <groupId>org.mock-server</groupId>
+		    <artifactId>mockserver-netty</artifactId>
+		    <version>5.11.2</version>
+		    <scope>test</scope>
+		</dependency>
 	</dependencies>
 
 	<repositories>
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java b/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java
index 22a133f..f31718b 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java
@@ -133,7 +133,7 @@
             description.put("de", r.getDescription());
 
             ResourceInfo ri = new ResourceInfo(r.getResourceId(), r.getTitles(),
-                    description, KorapSRU.KORAP_WEB_URL,
+                    description, KorapSRU.korapWebUri,
                     Arrays.asList(r.getLanguages()), dataviews,
                     this.getSupportedLayers(), null);
             resourceList.add(ri);
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java b/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java
index 082ac5e..af6db64 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java
@@ -33,8 +33,8 @@
 public class KorapSRU extends SimpleEndpointSearchEngineBase {
 
     public static final String CLARIN_FCS_RECORD_SCHEMA = "http://clarin.eu/fcs/resource";
-    public static final String KORAP_WEB_URL = "https://korap.ids-mannheim.de/";
 
+    public static String korapWebUri;
     public static String redirectBaseURI;
     public static KorapClient korapClient;
     private KorapEndpointDescription korapEndpointDescription;
@@ -55,9 +55,10 @@
             SRUQueryParserRegistry.Builder parserRegistryBuilder,
             Map<String, String> params) throws SRUConfigException {
 
-        String korapURI = context.getInitParameter("korap.service.uri");
-
-        korapClient = new KorapClient(korapURI,
+        korapWebUri = context.getInitParameter("korap.web.uri");
+        
+        String korapApiUri = context.getInitParameter("korap.api.uri");
+        korapClient = new KorapClient(korapApiUri,
                 config.getNumberOfRecords(),
                 config.getMaximumRecords());
 
@@ -70,7 +71,7 @@
         }
         sb.append("/").append(config.getDatabase());
         sb.append("/").append("redirect/");
-        this.redirectBaseURI = sb.toString();
+        redirectBaseURI = sb.toString();
     }
 
     @Override
diff --git a/src/main/webapp/WEB-INF/sru-server-config.xml b/src/main/webapp/WEB-INF/sru-server-config.xml
index 4f2bef6..f9b78e4 100644
--- a/src/main/webapp/WEB-INF/sru-server-config.xml
+++ b/src/main/webapp/WEB-INF/sru-server-config.xml
@@ -5,8 +5,8 @@
         <title xml:lang="en" primary="true">KorAP</title>
         <description xml:lang="de">Suche mit KorAP via SRU.</description>
         <description xml:lang="en" primary="true">Search in KorAP via SRU.</description>
-        <author xml:lang="en">Institute for the German language</author>
-        <author xml:lang="de" primary="true">Institut für Deutsche Sprache</author>     
+        <author xml:lang="en">Leibniz institute for the German language</author>
+        <author xml:lang="de" primary="true">Leibniz Institut für Deutsche Sprache</author>     
     </databaseInfo>
     
     <indexInfo>
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 17ba3ec..5e33950 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -6,10 +6,14 @@
 	<display-name>KorapSRU</display-name>
 
 	<context-param>
-		<param-name>korap.service.uri</param-name>
+		<param-name>korap.api.uri</param-name>
 		<!-- <param-value>http://localhost:8089/api/v1.0/</param-value> -->
 		<param-value>https://korap.ids-mannheim.de/api/v1.0</param-value>
 	</context-param>
+	<context-param>
+		<param-name>korap.web.uri</param-name>
+		<param-value>https://korap.ids-mannheim.de</param-value>
+	</context-param>
 
 	<servlet>
 		<display-name>KorAP SRU/CQL Service (HTTP Interface)</display-name>
diff --git a/src/test/java/de/ids_mannheim/korap/test/KorapJerseyTest.java b/src/test/java/de/ids_mannheim/korap/test/KorapJerseyTest.java
index 388670f..dad2215 100644
--- a/src/test/java/de/ids_mannheim/korap/test/KorapJerseyTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/KorapJerseyTest.java
@@ -27,7 +27,8 @@
                 .initParam("eu.clarin.sru.server.maximumRecords", "50")
                 .contextParam("de.ids_mannheim.korap.endpointDescription",
                         "/src/main/webapp/WEB-INF/endpoint-description.xml")
-                .contextParam("korap.service.uri", "http://localhost:8089/api/v1.0")
+                .contextParam("korap.api.uri", "http://localhost:1080")
+                .contextParam("korap.web.uri", "http://localhost:1080")
                 .build();
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java b/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java
index 4d41ae2..431033d 100644
--- a/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java
@@ -1,17 +1,27 @@
 package de.ids_mannheim.korap.test;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockserver.integration.ClientAndServer.startClientAndServer;
+import static org.mockserver.model.HttpRequest.request;
+import static org.mockserver.model.HttpResponse.response;
 
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.http.client.ClientProtocolException;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
+import org.mockserver.client.MockServerClient;
+import org.mockserver.integration.ClientAndServer;
+import org.mockserver.model.Header;
 import org.w3c.dom.Document;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
@@ -33,6 +43,20 @@
 public class KorapSRUTest extends KorapJerseyTest{
 	private DocumentBuilder docBuilder;
 	
+	private ClientAndServer mockServer;
+    private MockServerClient mockClient;
+    
+	@Before
+    public void startMockServer () {
+        mockServer = startClientAndServer(1080);
+        mockClient = new MockServerClient("localhost", mockServer.getPort());
+    }
+	
+	@After
+    public void stopMockServer () {
+        mockServer.stop();
+    }
+	
 	public KorapSRUTest() throws ParserConfigurationException {
 		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 		docBuilder = factory.newDocumentBuilder();
@@ -146,6 +170,7 @@
 	
 	@Test
 	public void explainTest() throws URISyntaxException, ClientProtocolException, IOException, IllegalStateException, SAXException{
+	    
 	    ClientResponse response = resource().queryParam("operation", "explain")
                 .get(ClientResponse.class);
         
@@ -204,6 +229,19 @@
 	
 	@Test
 	public void explainEndpointDescriptionTest() throws URISyntaxException, ClientProtocolException, IOException, IllegalStateException, SAXException{
+	    
+	    String korapResources = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/resources.json"),
+                StandardCharsets.UTF_8);
+        
+        mockClient.reset()
+        .when(request().withMethod("GET").withPath("/resource"))
+        .respond(response()
+                .withHeader(new Header("Content-Type",
+                        "application/json; charset=utf-8"))
+                .withBody(korapResources).withStatusCode(200));
+        
 	    ClientResponse response = resource().queryParam("operation", "explain")
 	            .queryParam("x-fcs-endpoint-description", "true")
                 .get(ClientResponse.class);
@@ -238,12 +276,15 @@
 		
 		
 		nodelist = doc.getElementsByTagName("ed:Resource");
-		for (int i=0; i<nodelist.getLength();i++){
-			if (nodelist.item(i).getAttributes().getNamedItem("pid").equals("GOE")){
-				children = nodelist.item(i).getChildNodes();
-				assertEquals("ed:Title", children.item(0).getNodeName());
-				assertEquals("Goethe", children.item(0).getTextContent());
-			}
-		}
+		assertEquals(3, nodelist.getLength());
+		children = nodelist.item(0).getChildNodes();
+		assertEquals(7, children.getLength());
+		assertEquals("ed:Title", children.item(0).getNodeName());
+		assertEquals("ed:Description", children.item(2).getNodeName());
+		assertEquals("ed:LandingPageURI", children.item(3).getNodeName());
+		assertEquals("ed:Languages", children.item(4).getNodeName());
+		assertEquals("ed:AvailableDataViews", children.item(5).getNodeName());
+		assertEquals("ed:AvailableLayers", children.item(6).getNodeName());
 	}
+	
 }
diff --git a/src/test/resources/korap-api-responses/resources.json b/src/test/resources/korap-api-responses/resources.json
new file mode 100644
index 0000000..c43cbbd
--- /dev/null
+++ b/src/test/resources/korap-api-responses/resources.json
@@ -0,0 +1,53 @@
+[
+    {
+        "resourceId": "WPD17",
+        "titles": {
+            "de": "Deutsche Wikipedia Artikel 2017",
+            "en": "German Wikipedia Articles 2017"
+        },
+        "description": "A collection of articles of German Wikipedia from July 1st, 2017.",
+        "languages": ["deu"],
+        "layers": {
+            "18": "marmot/m",
+            "19": "marmot/p",
+            "23": "opennlp/p",
+            "11": "corenlp/p",
+            "27": "tt/l",
+            "28": "tt/p"
+        }
+    },
+    {
+        "resourceId": "WDD17",
+        "titles": {
+            "de": "Deutsche Wikipedia-Diskussionskorpus 2017",
+            "en": "German Wikipedia talk corpus 2017"
+        },
+        "description": "A collection of talk pages of German Wikipedia from July 1st, 2017.",
+        "languages": ["deu"],
+        "layers": {
+            "18": "marmot/m",
+            "19": "marmot/p",
+            "23": "opennlp/p",
+            "11": "corenlp/p",
+            "27": "tt/l",
+            "28": "tt/p"
+        }
+    },
+    {
+        "resourceId": "WUD17",
+        "titles": {
+            "de": "Deutsche Wikipedia-Benutzerdiskussionskorpus 2017",
+            "en": "German Wikipedia talk corpus 2017"
+        },
+        "description": "A collection of user talk pages of German Wikipedia from July 1st, 2017.",
+        "languages": ["deu"],
+        "layers": {
+            "18": "marmot/m",
+            "19": "marmot/p",
+            "23": "opennlp/p",
+            "11": "corenlp/p",
+            "27": "tt/l",
+            "28": "tt/p"
+        }
+    }
+]
\ No newline at end of file
