Add HttpHeaders.containsHeaderString() test
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/core/HttpHeaders.java b/jaxrs-api/src/main/java/jakarta/ws/rs/core/HttpHeaders.java
index 84cdd4c..999577b 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/core/HttpHeaders.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/core/HttpHeaders.java
@@ -75,7 +75,8 @@
      * (missing comma), or the value {@code no - store} (whitespace within value).
      *
      * @param name the message header.
-     * @param valueSeparatorRegex Separates the header value into single values. {@code null} does not split.
+     * @param valueSeparatorRegex Regular expression that separates the header value into single values. 
+     * {@code null} does not split.
      * @param valuePredicate value must fulfil this predicate.
      * @return {@code true} if and only if a header with the given name exists, having either a whitespace-trimmed value
      * matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientrequestcontext/JAXRSClientIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientrequestcontext/JAXRSClientIT.java
index debf1a1..6f31ef0 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientrequestcontext/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientrequestcontext/JAXRSClientIT.java
@@ -864,9 +864,9 @@
   /*
    * @testName: containsHeaderStringTest
    * 
-   * @assertion_ids: JAXRS:JAVADOC:???; 
+   * @assertion_ids:  JAXRS:JAVADOC:1353; JAXRS:JAVADOC:1354; 
    * 
-   * @test_Strategy: Check if the specified headers a specified value.
+   * @test_Strategy: Check if the specified header contains a specified value.
    * 
    * ClientRequestFilter.abortWith
    */
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientresponsecontext/JAXRSClientIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientresponsecontext/JAXRSClientIT.java
index 45cc716..5ab7ad8 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientresponsecontext/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/api/client/clientresponsecontext/JAXRSClientIT.java
@@ -430,9 +430,9 @@
   /*
    * @testName: containsHeaderStringTest
    * 
-   * @assertion_ids: JAXRS:JAVADOC:???; 
+   * @assertion_ids:  JAXRS:JAVADOC:1355; JAXRS:JAVADOC:1356; 
    * 
-   * @test_Strategy: Check if the specified headers a specified value.
+   * @test_Strategy: Check if the specified header contains a specified value.
    * 
    * ClientRequestFilter.abortWith
    */
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/HttpHeadersTest.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/HttpHeadersTest.java
index 72df7b6..43a7f41 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/HttpHeadersTest.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/HttpHeadersTest.java
@@ -16,6 +16,9 @@
 
 package ee.jakarta.tck.ws.rs.ee.rs.core.headers;
 
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Iterator;
@@ -68,6 +71,39 @@
   }
 
   @GET
+  @Path("/contains-headers")
+  public String containsHeadersGet() {
+    sb = new StringBuffer();
+    List<String> myHeaders = Arrays.asList("Accept", "Content-Type", "Header3");
+
+    try {
+        assertTrue(hs.containsHeaderString("accept", "text/html"::equalsIgnoreCase));
+        sb.append("Header: accept contains text/html; ");
+      
+        //Verify Predicate and separator character usage
+        assertTrue(hs.containsHeaderString("Accept", ",", "Text/html;Level=1"::equalsIgnoreCase));
+        sb.append("Header: accept contains text/html;level=1; ");
+        
+        //Verify incorrect separator character fails
+        assertFalse(hs.containsHeaderString("Accept", ";", "text/html;level=1"::equals));
+        sb.append("Incorrect separator character fails as expected; ");
+        
+        //Verify white space in parameter not trimmed
+        assertFalse(hs.containsHeaderString("header3", "**", "value3"::equalsIgnoreCase));
+        sb.append("White space not trimmed from parameter as expected; ");
+        
+        //Verify white space in front and back of value trimmed
+        assertTrue(hs.containsHeaderString("HEADER3", "**", "value2"::equalsIgnoreCase));
+        sb.append("White space trimmed around value as expected; ");  
+    } catch (Throwable ex) {
+      sb.append("Unexpected exception thrown in containsHeadersGet: "
+          + ex.getMessage());
+      ex.printStackTrace();
+    }
+    return sb.toString();
+  }
+
+  @GET
   @Path("/acl")
   public String aclGet() {
     sb = new StringBuffer();
diff --git a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/JAXRSClientIT.java b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/JAXRSClientIT.java
index 5b3cc4d..1a4c8ce 100644
--- a/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/JAXRSClientIT.java
+++ b/jaxrs-tck/src/main/java/ee/jakarta/tck/ws/rs/ee/rs/core/headers/JAXRSClientIT.java
@@ -211,6 +211,26 @@
   }
 
   /*
+   * @testName: requestHeadersTest
+   * 
+   * @assertion_ids: JAXRS:JAVADOC:1361; JAXRS:JAVADOC:1362;
+   * 
+   * @test_Strategy: HttpHeaders.containsHeaderString used to confirm that a given header contains
+   * a specified value with the appropriate value separator.
+   */
+  @Test
+  public void containsHeaderStringTest() throws Fault {
+    setProperty(Property.REQUEST_HEADERS,
+        "Accept:text/*, text/html, text/html;level=1, */*");
+    setProperty(Property.REQUEST_HEADERS,
+        "Content-Type:application/xml;charset=utf8");
+    setProperty(Property.REQUEST_HEADERS,
+        "Header3:value1 ** value2 **value 3");
+    setProperty(Property.REQUEST, buildRequest(Request.GET, "contains-headers"));
+    invoke();
+  }
+
+  /*
    * @testName: getDateTest
    * 
    * @assertion_ids: JAXRS:JAVADOC:779;