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;
Text reportArea; // TODO: replace with Tree display like JUnit
+ Button startButton;
+
public PHPUnitView() {
}
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!
}
* @see org.eclipse.ui.IWorkbenchPart#setFocus()
*/
public void setFocus() {
- markTestPass("hello");
+ //markTestPass("hello");
}
/**
+ // 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");
+
+ }
}