Index: TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java =================================================================== diff -u -re39b87861fe915e8193f05c82d588dee12d60d74 -rebe9e6d4f4050f5f53d31a4ddb0692ab31474355 --- TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java (.../MockLearner.java) (revision e39b87861fe915e8193f05c82d588dee12d60d74) +++ TestHarness4LAMS2/src/org/lamsfoundation/testharness/learner/MockLearner.java (.../MockLearner.java) (revision ebe9e6d4f4050f5f53d31a4ddb0692ab31474355) @@ -96,8 +96,10 @@ private static final String SCRATCHIE_FINISH_SUBSTRING = "/lams/tool/lascrt11/learning/finish.do"; private static final String SCRATCHIE_RESULTS_SUBSTRING = "/lams/tool/lascrt11/learning/showResults.do"; + private static final String SCRATCHIE_REFLECTION_SUBSTRING = "/lams/tool/lascrt11/learning/newReflection.do"; private static final Pattern SCRATCHIE_SCRATCH_PATTERN = Pattern.compile("scratchItem\\((\\d+), (\\d+)\\)"); private static final String SCRATCHIE_FINISH_AVAILABLE = "return finish()"; + private static final String SCRATCHIE_REFLECTION_AVAILABLE = "return continueReflect()"; private static final String KNOCK_GATE_SUBSTRING = "/lams/learning/gate.do?method=knockGate"; @@ -262,7 +264,8 @@ return handleForum(resp); } else if (asText.indexOf(MockLearner.LEADER_FINISH_SUBSTRING) != -1) { return handleLeader(resp); - } else if (asText.indexOf(MockLearner.SCRATCHIE_RESULTS_SUBSTRING) != -1) { + } else if (asText.contains(MockLearner.SCRATCHIE_FINISH_SUBSTRING) + || asText.contains(MockLearner.SCRATCHIE_RESULTS_SUBSTRING)) { return handleScratchie(resp); } else if (asText.indexOf(MockLearner.LOAD_TOOL_ACTIVITY_SUBSTRING) != -1) { return handleLoadToolActivity(asText); @@ -406,14 +409,24 @@ } } - while (refreshQuestionsURL != null && !asText.contains(MockLearner.SCRATCHIE_FINISH_AVAILABLE)) { + while (refreshQuestionsURL != null + && !(asText.contains(MockLearner.SCRATCHIE_FINISH_AVAILABLE) || asText + .contains(MockLearner.SCRATCHIE_REFLECTION_AVAILABLE))) { MockLearner.log.debug("Waiting for leader to finish scratchie"); delay(); String url = resp.getURL().toString() + "&reqId=" + System.currentTimeMillis(); - WebResponse questionRefreshResp = (WebResponse) new Call(wc, test, "Scratchie refresh", refreshQuestionsURL).execute(); + WebResponse questionRefreshResp = (WebResponse) new Call(wc, test, "Scratchie refresh", refreshQuestionsURL) + .execute(); asText = questionRefreshResp.getText(); } + String reflectionURL = findURLInLocationHref(resp, MockLearner.SCRATCHIE_REFLECTION_SUBSTRING); + if (reflectionURL != null) { + MockLearner.log.debug("Showing reflection of scratchie using url " + reflectionURL); + resp = (WebResponse) new Call(wc, test, "Scratchie show reflection", reflectionURL).execute(); + resp = handlePageWithForms(resp.getForms()); + } + String resultsURL = findURLInLocationHref(resp, MockLearner.SCRATCHIE_RESULTS_SUBSTRING); if (resultsURL != null) { MockLearner.log.debug("Showing results of scratchie using url " + resultsURL);