Index: TestHarness4LAMS2/.classpath =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/.classpath,v diff -u -r1.6 -r1.6.2.1 --- TestHarness4LAMS2/.classpath 16 Jan 2014 16:46:42 -0000 1.6 +++ TestHarness4LAMS2/.classpath 12 Dec 2016 17:48:45 -0000 1.6.2.1 @@ -13,5 +13,12 @@ + + + + + + + Index: TestHarness4LAMS2/lib/jboss-logging-3.1.4.GA.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/jboss-logging-3.1.4.GA.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/lib/jboss-websocket-api_1.1_spec-1.1.0.Final.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/jboss-websocket-api_1.1_spec-1.1.0.Final.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/lib/undertow-core-1.1.8.Final.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/undertow-core-1.1.8.Final.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/lib/undertow-servlet-1.1.8.Final.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/undertow-servlet-1.1.8.Final.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/lib/undertow-websockets-jsr-1.1.8.Final.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/undertow-websockets-jsr-1.1.8.Final.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/lib/xnio-api-3.3.0.Final.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/xnio-api-3.3.0.Final.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/lib/xnio-nio-3.3.0.Final.jar =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/lib/Attic/xnio-nio-3.3.0.Final.jar,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java =================================================================== RCS file: /usr/local/cvsroot/TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java,v diff -u -r1.25.2.8 -r1.25.2.9 --- TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java 21 Jul 2016 07:35:54 -0000 1.25.2.8 +++ TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java 12 Dec 2016 17:48:46 -0000 1.25.2.9 @@ -24,7 +24,6 @@ import java.io.File; import java.io.IOException; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -35,7 +34,11 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.websocket.MessageHandler; + import org.apache.log4j.Logger; +import org.apache.tomcat.util.json.JSONException; +import org.apache.tomcat.util.json.JSONObject; import org.lamsfoundation.testharness.Call; import org.lamsfoundation.testharness.MockUser; import org.lamsfoundation.testharness.TestHarnessException; @@ -67,7 +70,7 @@ private static final String LESSON_FINISHED_FLAG = "LessonComplete.do"; private static final String LOAD_TOOL_ACTIVITY_FLAG = "Load Tool Activity"; private static final Pattern SESSION_MAP_ID_PATTERN = Pattern.compile("sessionMapID=(.+)\\&"); - private static final Pattern TOOL_SESSION_ID_PATTERN = Pattern.compile("var TOOL_SESSION_ID = '(\\d+)'"); + private static final Pattern TOOL_SESSION_ID_PATTERN = Pattern.compile("TOOL_SESSION_ID = '(\\d+)'"); private static final String FINISH_SUBSTRING = "finish.do"; private static final String FORUM_FINISH_SUBSTRING = "lafrum11/learning/finish.do"; @@ -510,6 +513,7 @@ return nextResp; } + @SuppressWarnings("deprecation") private void handleToolChat(WebResponse resp) throws IOException { String asText = resp.getText(); Matcher m = MockLearner.TOOL_SESSION_ID_PATTERN.matcher(asText); @@ -518,14 +522,32 @@ return; } - String url = MockLearner.CHAT_FINISH_SUBSTRING + "?dispatch=sendMessage&toolSessionID=" + m.group(1) - + "&message="; - // send few messages - for (int replyIndex = 0; replyIndex < MockLearner.CHAT_REPLIES; replyIndex++) { - String message = MockLearner.composeArbitraryText(); - message = URLEncoder.encode(message, "UTF-8"); - new Call(wc, test, username + " sends Chat message", url + message).execute(); - delay(); + String toolSessionID = m.group(1); + String url = test.getTestSuite().getTargetServer().replace("http", "ws") + + "/lams/tool/lachat11/learningWebsocket?toolSessionID=" + toolSessionID; + String sessionID = wc.getCookieJar().getCookieValue("JSESSIONID"); + WebsocketClient websocketClient = new WebsocketClient(url, sessionID, new MessageHandler.Whole() { + @Override + public void onMessage(String message) { + log.debug(username + " received Chat " + toolSessionID + " history from server: " + message); + } + }); + + // send few messages to the whole group + JSONObject messageJSON = new JSONObject(); + try { + messageJSON.put("toolSessionID", toolSessionID); + messageJSON.put("toUser", ""); + for (int replyIndex = 0; replyIndex < MockLearner.CHAT_REPLIES; replyIndex++) { + String message = MockLearner.composeArbitraryText(); + messageJSON.put("message", message); + // send message to websocket + websocketClient.sendMessage(messageJSON.toString()); + delay(); + } + websocketClient.close(); + } catch (JSONException e) { + throw new IOException("Error while creating Chat JSON for websocket", e); } } Fisheye: Tag 1.1 refers to a dead (removed) revision in file `TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/WebsocketClient.java'. Fisheye: No comparison available. Pass `N' to diff?