Initial Contribution

Signed-off-by: Vinay Vishal <vinay.vishal@oracle.com>
diff --git a/appserver/tests/appserv-tests/devtests/persistence/util/WebTestUtil.java b/appserver/tests/appserv-tests/devtests/persistence/util/WebTestUtil.java
new file mode 100755
index 0000000..11ca650
--- /dev/null
+++ b/appserver/tests/appserv-tests/devtests/persistence/util/WebTestUtil.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package util;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
+
+/** WebTestUtil.java
+  * This program opens HttpURLconnection,sends the request to the 
+  * servlet , & receives the response from the servlet.
+  * Using commandline args the user can specify for WebTestUtil
+  * 1. test suite name
+  * 2. host name
+  * 3. port no
+  * 4. context root of the servlet that is defined in web.xml
+  * 5. url pattern of the servlet that is defined in web.xml
+  *
+  * @author      Sarada Kommalapati
+  */
+
+
+public class WebTestUtil {
+
+    private SimpleReporterAdapter stat;
+
+    private String testSuiteID;
+    private String TEST_NAME;
+    private String host;
+    private String port;
+    private String contextRoot;
+    private String urlPattern;
+
+
+    public WebTestUtil( String host, String port, String contextRoot , String urlPattern, String testSuiteID, SimpleReporterAdapter stat) {
+        this.testSuiteID = testSuiteID;
+        TEST_NAME = testSuiteID;
+        this.host = host;
+        this.port = port;
+        this.contextRoot = contextRoot;
+        this.urlPattern = urlPattern;
+        this.stat = stat;
+    }
+    
+
+    public void test( String c) throws Exception {
+      this.test( c, "");
+    }
+
+
+    public void test( String c, String params) throws Exception {
+        String EXPECTED_RESPONSE = c + ":pass";
+        String TEST_CASE = TEST_NAME + c;
+        String url = "http://" + host + ":" + port + contextRoot + "/";
+        url = url + urlPattern + "?case=" + c;
+        if ( (params != null) & (!params.trim().equals("")) ) {
+            url = url + "&" + params.trim();
+        }
+
+        System.out.println("url="+url);
+
+        HttpURLConnection conn = (HttpURLConnection)
+            (new URL(url)).openConnection();
+        int code = conn.getResponseCode();
+        if (code != 200) {
+            System.err.println("Unexpected return code: " + code);
+            stat.addStatus(TEST_CASE, stat.FAIL);
+        } else {
+            InputStream is = conn.getInputStream();
+            BufferedReader input = new BufferedReader(new InputStreamReader(is));
+	    String line = null;
+	    while ((line = input.readLine()) != null) {
+              // System.out.println("line="+line);
+	      if (line.contains(EXPECTED_RESPONSE)) {
+		stat.addStatus(TEST_CASE, stat.PASS);
+		break;
+	      }
+	    }
+	    
+	    if (line == null) {
+	      System.out.println("Unable to find " + EXPECTED_RESPONSE +
+				  " in the response");
+	    }
+	    stat.addStatus(TEST_CASE, stat.FAIL);
+        }    
+    }
+
+}
+
+