put connection Listener and report listener as seperate threads.
[phpeclipse.git] / net.sourceforge.phpeclipse.phpunit / src / net / sourceforge / phpeclipse / phpunit / PHPUnitView.java
index 6510e34..341c218 100644 (file)
@@ -1,14 +1,7 @@
 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;
@@ -49,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
         */
        
        
@@ -57,6 +51,9 @@ 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;
@@ -67,26 +64,26 @@ public class PHPUnitView extends ViewPart {
        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");
-               
-               labelErrors = new Label(parent, SWT.WRAP);
-               labelErrors.setText("Errors: ");
-               labelErrorsVal = new Label(parent, SWT.WRAP);
-               labelErrorsVal.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);
@@ -130,18 +127,36 @@ public class PHPUnitView extends ViewPart {
         * 
         * @param testID
         */
-       private void markTestPass(String 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 passed");
+               reportArea.append("test passed \n");
        }
 
+       public void markTestStarted(String testID) {
+               
+               reportArea.append("test started \n");
+       }
+        
+       public void createNewTest(String testName, String testID) {
+         
+               reportArea.append("new test: " + testName + " - testID \n");    
+       
+       }
        
+       public void markTestFail(String testID) {
+               reportArea.append("test failed \n");
+       }
        
+       public void markTestingFinished() {
+               
+               reportArea.append("end all tests \n");  
+               
+       }
        
        // action to start tests:
        private void startTests() {
@@ -161,45 +176,13 @@ public class PHPUnitView extends ViewPart {
        }
        
        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();
-                       
-               } 
-               
-               
-                               
-               
-       }
+
+
+
+               ConnectionListener conListener = new ConnectionListener();
+               conListener.start();
+
+       } //end of method
        
        /**
         * handle this report: test passed, faile, end of all.
@@ -209,7 +192,27 @@ public class PHPUnitView extends ViewPart {
                
                reportArea.append("msg: " + report + "\n");
                
+               String event = report.substring(0, report.indexOf(" "));
+               
+               System.out.println(event);
+
+               handler.handle(report, this);
+
+       
+               
        }
        
+       public void handleCommand(String command, String testCount, String testID) {
+               
+               
+       }
+       
+
+
+
+} //end of class
+       
+
+
+
 
-}