Index: TestHarness4LAMS2/src/org/lamsfoundation/testharness/Call.java =================================================================== diff -u -r37d07da894922569d79ce4f517c45f8cbed4c452 -r63f3f29ba085acacf9281740bf3396e3eea197c5 --- TestHarness4LAMS2/src/org/lamsfoundation/testharness/Call.java (.../Call.java) (revision 37d07da894922569d79ce4f517c45f8cbed4c452) +++ TestHarness4LAMS2/src/org/lamsfoundation/testharness/Call.java (.../Call.java) (revision 63f3f29ba085acacf9281740bf3396e3eea197c5) @@ -118,7 +118,7 @@ } /** - * need add CallRecord to TestReport + * need add CallRecord to TestReporter */ public Object execute(){ switch(test.callType){ @@ -215,10 +215,8 @@ } private boolean isCancelButton(SubmitButton button) { - if(button.getName().contains("CANCEL")||button.getName().contains("Cancel")||button.getName().contains("cancel") - ||button.getValue().contains("cancel")||button.getValue().contains("Cancel")||button.getValue().contains("CANCEL")) - return true; - return false; + return button.getName().contains("CANCEL")||button.getName().contains("Cancel")||button.getName().contains("cancel") + ||button.getValue().contains("cancel")||button.getValue().contains("Cancel")||button.getValue().contains("CANCEL"); } /** Index: TestHarness4LAMS2/src/org/lamsfoundation/testharness/TestReporter.java =================================================================== diff -u -r37d07da894922569d79ce4f517c45f8cbed4c452 -r63f3f29ba085acacf9281740bf3396e3eea197c5 --- TestHarness4LAMS2/src/org/lamsfoundation/testharness/TestReporter.java (.../TestReporter.java) (revision 37d07da894922569d79ce4f517c45f8cbed4c452) +++ TestHarness4LAMS2/src/org/lamsfoundation/testharness/TestReporter.java (.../TestReporter.java) (revision 63f3f29ba085acacf9281740bf3396e3eea197c5) @@ -22,6 +22,12 @@ */ package org.lamsfoundation.testharness; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.LineNumberReader; +import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -132,8 +138,46 @@ public static void generateReport(AbstractTestManager manager) { report(manager); log.info("Generating the formal test report document..."); - //TODO implement me log.info("Sorry, this feature is not ready yet. It should come soon."); } + private static class TemplateCompiler{ + static String loadAndCompile() throws IOException{ + StringBuilder result = new StringBuilder(); + LineNumberReader lnReader = new LineNumberReader(new FileReader(fileTemplate)); + String line = lnReader.readLine(); + while (line != null){ + List block = new ArrayList(); + int statementIdx = line.indexOf("<#"); + int elIdx = line.indexOf("${"); + if(statementIdx!=-1){ + block.add(line); + String keyword = line.substring(statementIdx+2,line.indexOf(' ',statementIdx)); + String endTag = "'; + while((line!=null)&&(line.indexOf(endTag) == -1)){ + block.add(line = lnReader.readLine()); + } + if(line == null){ + throw new TestHarnessException("Cannot find end tag "+endTag); + } + result.append(compileBlock((String[])block.toArray(),keyword, endTag)); + }else if(elIdx!=-1){ + String el = line.substring(elIdx,line.indexOf('}',elIdx)+1); + result.append(line.replace(el, compileEl(el))); + }else{ + result.append(line).append('\n'); + } + line = lnReader.readLine(); + } + return null; + } + + private static Object compileBlock(String[] strings, String keyword, String endTag) { + return null; + } + + private static String compileEl(String el) { + return null; + } + } } Index: TestHarness4LAMS2/src/org/lamsfoundation/testharness/monitor/MonitorTest.java =================================================================== diff -u -r098047d0aca5ce41ec53d8ccdd6d0bdc3ba6fc5d -r63f3f29ba085acacf9281740bf3396e3eea197c5 --- TestHarness4LAMS2/src/org/lamsfoundation/testharness/monitor/MonitorTest.java (.../MonitorTest.java) (revision 098047d0aca5ce41ec53d8ccdd6d0bdc3ba6fc5d) +++ TestHarness4LAMS2/src/org/lamsfoundation/testharness/monitor/MonitorTest.java (.../MonitorTest.java) (revision 63f3f29ba085acacf9281740bf3396e3eea197c5) @@ -105,7 +105,7 @@ } public void notifyMonitorToStop(CountDownLatch stopSignal){ - if(monitorThread.isAlive()){ + if((monitorThread != null) && monitorThread.isAlive()){ ((MockMonitor)users[0]).setStopFlag(stopSignal); }else{ stopSignal.countDown();