Add source to info table in RTF export

Change-Id: I3b6dd9d07cab581c411ffdc40fc415744aaf2bbc
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
index a54460f..72e4b0e 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
@@ -22,6 +22,9 @@
     public void setQueryString (String s);
     public String getCorpusQueryString ();
     public void setCorpusQueryString (String s);
+    public String getSource ();
+    public void setSource (String h, String p);
+
     public int getTotalResults ();
     public boolean hasTimeExceeded ();
     public void setMaxResults (int m);
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
index c36bb7c..b9370aa 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
@@ -219,6 +219,7 @@
         exp.setMaxResults(maxResults);
         exp.setQueryString(q);
         exp.setCorpusQueryString(cq);
+        exp.setSource(host, path);
        
         // set filename based on query (if not already set)
         if (fname != null) {
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
index e19bd98..c7b447f 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
@@ -41,7 +41,7 @@
     private File file;
     
     private JsonNode meta, query, collection;
-    private String fname, queryString, corpusQueryString;
+    private String fname, queryString, corpusQueryString, src;
     private boolean timeExceeded = false;
     private int totalResults = -1;
     private int maxResults = -1;
@@ -91,6 +91,21 @@
     public String getCorpusQueryString () {
         return this.corpusQueryString;
     };
+
+    public void setSource (String host, String path) {
+        StringBuilder s = new StringBuilder(32);
+        if (host != null)
+            s.append(host);
+
+        if (path != null && path.length() > 0)
+            s.append('/').append(path);
+
+        this.src = s.toString();
+    };
+
+    public String getSource () {
+        return this.src;
+    };
     
     public void setMeta (JsonNode meta) {
         this.meta = meta;
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java
index 52e7114..d47a32d 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java
@@ -175,6 +175,10 @@
             this.addInfoRow(w, "Fetched", this.getMaxResults());
         };
 
+        if (this.getSource() != null) {
+            this.addInfoRow(w, "Source", this.getSource());
+        };
+
         this.addInfoRow(w, "Export-Plugin", this.getVersion().toString());
     };
 
diff --git a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
index c3391a6..d316c9a 100644
--- a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
+++ b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
@@ -56,7 +56,9 @@
     private static ClientAndServer mockServer;
 	private static MockServerClient mockClient;
     private ObjectMapper mapper = new ObjectMapper();
-            
+
+    private static final String CELLSPLIT = "\\cell\\cf0\\fs18\\b0\\f1 ";
+
     @BeforeClass
     public static void startServer() {
         // Define logging rules for Mock-Server
@@ -509,13 +511,13 @@
                 Status.OK.getStatusCode(), responsertf.getStatus());
 
         str = responsertf.readEntity(String.class);
+        System.err.println(str);
         assertTrue("Page 1 content", str.contains("Ironhoof"));
         assertTrue("Page 2 content", str.contains("Sinologie"));
         assertTrue("Unicode handling", str.contains("\\u252\\'fcbersetzt"));
-        assertTrue("TotalResults1", str.contains("Count:"));
-        assertTrue("TotalResults2", str.contains("9\\cell"));
-        assertTrue("Fetched1", str.contains("Fetched:"));
-        assertTrue("Fetched2", str.contains("7\\cell"));
+        assertTrue("TotalResults", str.contains("Count:" + CELLSPLIT + "9\\cell"));
+        assertTrue("Fetched", str.contains("Fetched:" + CELLSPLIT + "7\\cell"));
+        assertTrue("Source", str.contains("Source:" + CELLSPLIT + "localhost\\cell"));
     }
 
     
diff --git a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/MatchAggregatorTest.java b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/MatchAggregatorTest.java
index dd97f18..52a8f71 100644
--- a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/MatchAggregatorTest.java
+++ b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/MatchAggregatorTest.java
@@ -101,4 +101,21 @@
         m.setFileName("Beispiel");
         assertEquals(m.getFileName(),"Beispiel");
     };
+
+    @Test
+    public void testSource () throws IOException {
+        MatchAggregator m = new MatchAggregator();
+        assertNull(m.getSource());
+        m.setSource("localhost","");
+        assertEquals(m.getSource(),"localhost");
+        m.setSource("localhost",null);
+        assertEquals(m.getSource(),"localhost");
+        m.setSource("localhost","path");
+        assertEquals(m.getSource(),"localhost/path");
+        m.setSource("","path");
+        assertEquals(m.getSource(),"/path");
+        m.setSource(null,"path");
+        assertEquals(m.getSource(),"/path");
+    };
+
 };
diff --git a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/RtfExportTest.java b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/RtfExportTest.java
index 799ff6c..359b8ca 100644
--- a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/RtfExportTest.java
+++ b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/RtfExportTest.java
@@ -14,7 +14,7 @@
 import de.ids_mannheim.korap.plkexport.JsonExporter;
 
 public class RtfExportTest {
-
+    
     @Test
     public void testInit () throws IOException {
         RtfExporter rtf = new RtfExporter();