X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.phpunit/src/net/sourceforge/phpeclipse/phpunit/PHPUnitView.java b/net.sourceforge.phpeclipse.phpunit/src/net/sourceforge/phpeclipse/phpunit/PHPUnitView.java index 5d8e181..bc1dd6a 100644 --- a/net.sourceforge.phpeclipse.phpunit/src/net/sourceforge/phpeclipse/phpunit/PHPUnitView.java +++ b/net.sourceforge.phpeclipse.phpunit/src/net/sourceforge/phpeclipse/phpunit/PHPUnitView.java @@ -2,10 +2,20 @@ package net.sourceforge.phpeclipse.phpunit; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; import org.eclipse.ui.part.ViewPart; +/** + * @author Ali Echihabi + * + * To change the template for this generated type comment go to + * Window>Preferences>Java>Code Generation>Code and Comments + */ /* * Created on May 22, 2004 * @@ -32,6 +42,7 @@ public class PHPUnitView extends ViewPart { * The first level nodes are the test suites. * children are nested test suites. * leafs: test functions. + * hierarchy: package->testsuite1->testcase->test_function */ @@ -40,49 +51,210 @@ public class PHPUnitView extends ViewPart { private int numFailures; // number of failures so far private int numErrors; // number of errors so far private int numPasses; // number of passes so far (they should add up) + + + private XMLReportHandler handler; Label labelRuns, labelRunsVal; // Runs: 12 Label labelErrors, labelErrorsVal; Label labelFailures, labelFailuresVal; + Text reportArea; // TODO: replace with Tree display like JUnit + + Button startButton; public PHPUnitView() { - + handler = new XMLReportHandler(); } public void createPartControl(Composite parent) { - //viewer = new TreeViewer(parent); - labelRuns = new Label(parent, SWT.WRAP); - labelRuns.setText("Runs: "); - labelRunsVal = new Label(parent, SWT.WRAP); - labelRunsVal.setText("0 / 0"); - - labelFailures = new Label(parent, SWT.WRAP); - labelFailures.setText("Failures: "); - labelFailuresVal = new Label(parent, SWT.WRAP); - labelFailuresVal.setText("0"); +// //viewer = new TreeViewer(parent); +// labelRuns = new Label(parent, SWT.WRAP); +// labelRuns.setText("Runs: "); +// labelRunsVal = new Label(parent, SWT.WRAP); +// labelRunsVal.setText("0 / 0"); +// +// labelFailures = new Label(parent, SWT.WRAP); +// labelFailures.setText("Failures: "); +// labelFailuresVal = new Label(parent, SWT.WRAP); +// labelFailuresVal.setText("0"); +// +// labelErrors = new Label(parent, SWT.WRAP); +// labelErrors.setText("Errors: "); +// labelErrorsVal = new Label(parent, SWT.WRAP); +// labelErrorsVal.setText("0"); + + reportArea = new Text(parent, SWT.MULTI | SWT.BORDER | + SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY); - labelErrors = new Label(parent, SWT.WRAP); - labelErrors.setText("Errors: "); - labelErrorsVal = new Label(parent, SWT.WRAP); - labelErrorsVal.setText("0"); + startButton = new Button(parent, SWT.CENTER); + startButton.setText("Start Tests"); + startButton.addMouseListener( new MouseListener() { + + public void mouseDoubleClick(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + public void mouseDown(MouseEvent arg0) { + // TODO Auto-generated method stub + startTests(); + } + + public void mouseUp(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + + + }); // end add action listener. + + // TODO layout! } /* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchPart#setFocus() */ public void setFocus() { + //markTestPass("hello"); + } + + /** + * mark the given test as passed in the GUI. + * + * @param testID + */ + public void markTestPassed(String testID) { + + // testid, use it in hashmap to retrieve tree item of test and + // change icon color, increment pass counter, etc... + + //for now: + reportArea.append("test : " + testID + " passed \n"); } + public void markTestStarted(String testID) { + + reportArea.append("test started: " + testID + " \n"); + } + + public void createNewTest(String testName, String testID) { + + reportArea.append("new test: " + testName + " - testID " + testID + " \n"); + + } + + public void markTestFail(String testID) { + reportArea.append("test " + testID + " failed \n"); + } + + public void markTestingFinished() { + + reportArea.append("end all tests \n"); + + } + + // action to start tests: + private void startTests() { + + // preparation: + // take the full test suite (could containt other test suites). + // create temp php file that starts that suite and uses socketTestReport + // as a test result reporter. + // add listener: localhost , port 13579 + // start listening at port. + + reportArea.append("Tests started \n"); + listenForReports(); + + + + } + + /** + * + */ + private void listenForReports() { + + ConnectionListener conListener = new ConnectionListener(); + conListener.start(this); + + } //end of method + /** + * handle this report: test passed, faile, end of all. + * @param report + */ + public void handleReport(String report) { + + //delegate to the XML report handler. + //reportArea.append("msg: " + report + "\n"); + handler.handle(report, this); + + + } + /** + * @param command + * @param testCount + * @param testID + */ + public void handleCommand(String command, String testCount, String testID) { + + if (command.equals("testStarted")) { + + createNewTest("testName", testID); + markTestStarted(testID); + + } else if (command.equals("testFinished")) { + + + // do nothing wait for verdict + } else if (command.equals("endAll")) { + + markTestingFinished(); + } + + + } + + /** + * @param currentTestID + * @param verdict + */ + public void setTestVerdict(String currentTestID, String verdict) { + + if( verdict.equals("passed")) + markTestPassed(currentTestID); + else + markTestFail(currentTestID); + + + } + + /** + * @param currentTestID + * @param exception + */ + public void addTestException(String currentTestID, String exception) { + + reportArea.append(" test " + currentTestID + " exception: " + exception + "\n"); + + } + + + +} //end of class -} + + +