From 0b46c4c54965432acc200fb9f54095704793038f Mon Sep 17 00:00:00 2001 From: shleh Date: Fri, 28 May 2004 03:46:23 +0000 Subject: [PATCH] added button to start tests. set up the report listening loop. can restart listening loop repeatedly. can detect the end of a test suite. dummy handling of reports. some log displays in reportAre --- .../phpeclipse/phpunit/PHPUnitView.java | 104 +++++++++++++++++++- 1 files changed, 103 insertions(+), 1 deletions(-) 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 94605d5..6510e34 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 @@ -1,7 +1,17 @@ package net.sourceforge.phpeclipse.phpunit; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.ServerSocket; +import java.net.Socket; + import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.events.ControlListener; +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; @@ -54,6 +64,8 @@ public class PHPUnitView extends ViewPart { Text reportArea; // TODO: replace with Tree display like JUnit + Button startButton; + public PHPUnitView() { } @@ -79,6 +91,30 @@ public class PHPUnitView extends ViewPart { reportArea = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY); + 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! } @@ -86,7 +122,7 @@ public class PHPUnitView extends ViewPart { * @see org.eclipse.ui.IWorkbenchPart#setFocus() */ public void setFocus() { - markTestPass("hello"); + //markTestPass("hello"); } /** @@ -107,7 +143,73 @@ public class PHPUnitView extends ViewPart { + // 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() { + + ServerSocket sSocket = null; + Socket serviceSocket = null; + + try { + + reportArea.append("listening at port 12345"); + + sSocket = new ServerSocket(12345); + + // accept connection from test reporter. + serviceSocket = sSocket.accept(); + + + InputStreamReader reader = new InputStreamReader(serviceSocket.getInputStream()); + BufferedReader in = new BufferedReader(reader); + String report = null; + + // keep listening until the + while ( (report = in.readLine()) != null && (report != "end_all_tests") ) { + + handleReport(report); + } + + reportArea.append("Finished!"); + + sSocket.close(); + serviceSocket.close(); + + } catch (Exception e) { + + e.printStackTrace(); + + } + + + + + } + /** + * handle this report: test passed, faile, end of all. + * @param report + */ + private void handleReport(String report) { + + reportArea.append("msg: " + report + "\n"); + + } } -- 1.7.1