Add a test for show-tokens param in match info web-service.

Change-Id: I08f474fa81f8a509c9593c4a71e7fb54f5376c9e
diff --git a/Changes b/Changes
index d41938b..4a39e12 100644
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 # version 1.4
 
 - Reenable and update search POST tests [AI-assisted]
+- Add a test for show-tokens param in match info web-service.
 
 # version 1.3
 
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/MatchInfoControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/MatchInfoControllerTest.java
index 41b27f7..2bf3762 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/MatchInfoControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/MatchInfoControllerTest.java
@@ -19,6 +19,40 @@
 
 public class MatchInfoControllerTest extends SpringJerseyTest {
 
+	 @Test
+	    public void testGetMatchInfoShowTokens () throws KustvaktException {
+	        Response response = target().path(API_VERSION).path("corpus")
+	                .path("GOE").path("AGA").path("01784").path("p4145-4146")
+	                .queryParam("foundry", "opennlp")
+	                .queryParam("show-tokens", "true")
+	                .request().get();
+	        assertEquals(Status.OK.getStatusCode(), response.getStatus());
+	        String entity = response.readEntity(String.class);
+	        JsonNode node = JsonUtils.readTree(entity);
+	        assertNotNull(node);
+	        
+	        // Check expected JSON structure
+	        assertTrue(node.at("/hasSnippet").asBoolean());
+	        assertTrue(node.at("/hasTokens").asBoolean());
+	        
+	        // Check snippet contains expected content
+	        String snippet = node.at("/snippet").asText();
+	        assertNotNull(snippet);
+	        assertTrue(snippet.contains("<span class=\"context-left\"></span><span class=\"match\">"));
+	        assertTrue(snippet.contains("<span title=\"opennlp/p:PPER\">es</span>"));
+	        assertTrue(snippet.contains("<mark><span title=\"opennlp/p:NN\">Wasser</span></mark>"));
+	        
+	        // Check tokens match array
+	        JsonNode tokensMatch = node.at("/tokens/match");
+	        assertNotNull(tokensMatch);
+	        assertTrue(tokensMatch.isArray());
+	        assertEquals(29, tokensMatch.size());
+	        assertEquals("es", tokensMatch.get(0).asText());
+	        assertEquals("war", tokensMatch.get(1).asText());
+	        assertEquals("Wasser", tokensMatch.get(20).asText());
+	        assertEquals("erreichten", tokensMatch.get(28).asText());
+	    }
+	 
     @Test
     public void testGetMatchInfoPublicCorpus () throws KustvaktException {
         Response response = target().path(API_VERSION).path("corpus")
@@ -137,4 +171,4 @@
                         + "match-GOE/AGD/00000-p75-76 is not allowed.",
                 node.at("/errors/0/1").asText());
     }
-}
+}
\ No newline at end of file