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 1f16ca6..46a1f82 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,3 +1,11 @@ +/************************************************************************* + * @author Ali Echihabi (ali_echihabi@ieee.org, ali.echihabi@souss.ca) + * + * Plugin for PHP unit Testing. + * www.phpeclipse.de + * + *************************************************************************/ + package net.sourceforge.phpeclipse.phpunit; @@ -7,46 +15,23 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import net.sourceforge.phpeclipse.phpunit.preferences.PHPUnitPreferencePage; +import net.sourceforge.phpeclipse.phpunit.reporthandling.ConnectionListener; +import net.sourceforge.phpeclipse.phpunit.reporthandling.XMLReportHandler; import net.sourceforge.phpeclipse.phpunit.testpool.TestCase; import net.sourceforge.phpeclipse.phpunit.testpool.TestPool; import net.sourceforge.phpeclipse.phpunit.testpool.TestSuite; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.FileDialog; import org.eclipse.ui.IActionBars; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.PlatformUI; 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 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ -/** - * @author Ali Echihabi (ali_echihabi@ieee.org) - * - * Plugin for PHP unit Testing. - * www.phpeclipse.de - * - * This the main view showing the progress and reports. - * - */ public class PHPUnitView extends ViewPart { @@ -68,18 +53,25 @@ public class PHPUnitView extends ViewPart { private TestPool testPool; - private Button startButton; + //private Button startButton; private ProgressInfoComposite progressInfoComposite; private ResultsInfoComposite resultsInfoComposite; - private SettingsInfoComposite settingsInfoComposite; //TODO: move somewhere else, launcher, wizard or preferences. - + //private SettingsInfoComposite settingsInfoComposite; //TODO: move somewhere else, launcher, wizard or preferences. + private FileDialog dialog; + private String testSuiteToRun; + + + private Action selectTestAction; + private Action startTestAction; public PHPUnitView() { if(view == null) view = this; + + } @@ -93,6 +85,8 @@ public class PHPUnitView extends ViewPart { //parent.setLayout(new FillLayout(SWT.VERTICAL)); + dialog = new FileDialog(parent.getShell()); + GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; @@ -116,36 +110,36 @@ public class PHPUnitView extends ViewPart { //build the settings composite //buildSettingsComposite(parent); - settingsInfoComposite = new SettingsInfoComposite(parent, SWT.NONE); - - - startButton = new Button(parent, SWT.CENTER); - startButton.setText("Start Tests"); - startButton.addMouseListener(new MouseListener() { - - public void mouseDoubleClick(MouseEvent arg0) { - - } - - public void mouseDown(MouseEvent arg0) { - - - - } - - public void mouseUp(MouseEvent arg0) { - - try { - String testFile = settingsInfoComposite.getTestSuite(); - startTests(testFile); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + //settingsInfoComposite = new SettingsInfoComposite(parent, SWT.NONE); - } - }); // end add action listener. +// startButton = new Button(parent, SWT.CENTER); +// startButton.setText("Start Tests"); +// startButton.addMouseListener(new MouseListener() { +// +// public void mouseDoubleClick(MouseEvent arg0) { +// +// } +// +// public void mouseDown(MouseEvent arg0) { +// +// try { +// String testFile = settingsInfoComposite.getTestSuite(); +// startTests(testFile); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// +// +// } +// +// public void mouseUp(MouseEvent arg0) { +// +// +// } +// +// }); // end add action listener. } @@ -175,26 +169,54 @@ public class PHPUnitView extends ViewPart { } private void setActions() { + final IActionBars actionBars = getViewSite().getActionBars(); IToolBarManager toolBarManager = actionBars.getToolBarManager(); - Action action1 = new Action() {}; - action1.setText("Action 1"); - action1.setToolTipText("Start the testing"); - //final URL installUrl = PaintPlugin.getDefault().getDescriptor().getInstallURL(); - //final URL imageUrl = new URL(installUrl, PaintPlugin.getResourceString(id + ".image")); -// URL imageUrl = null; -// try { -// imageUrl = -// new URL("C:\\sample.gif"); -// } catch (MalformedURLException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// action1.setImageDescriptor(ImageDescriptor.createFromURL(imageUrl)); -// - action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages(). - getImageDescriptor(ISharedImages.IMG_OBJS_TASK_TSK)); - toolBarManager.add(action1); + + selectTestAction = new Action() { + + public void run() { + + testSuiteToRun = dialog.open(); + startTestAction.setEnabled(true); + } + }; + + selectTestAction.setText("Select Test Suite"); + selectTestAction.setToolTipText("Select Test Suite"); + selectTestAction.setImageDescriptor(PHPUnitImages.DESC_SELECT_TEST_SUITE); + + + toolBarManager.add(selectTestAction); + + + startTestAction = new Action() { + + public void run() { + + + try { + if(testSuiteToRun == null || testSuiteToRun == "") + return; + + startTests(testSuiteToRun); + //setEnabled(false); + + } catch (IOException e) { + + e.printStackTrace(); + } + + } + + }; + + startTestAction.setText("Start Test"); + startTestAction.setToolTipText("Start Test Suite. Select a Test Suite first."); + startTestAction.setImageDescriptor(PHPUnitImages.DESC_RUN_TEST_SUITE); + startTestAction.setEnabled(false); + + toolBarManager.add(startTestAction); } @@ -221,16 +243,6 @@ public class PHPUnitView extends ViewPart { } - private void markTestStarted(String testID) { - - - - } - - private void createNewTest(String testName, String testID) { - - testPool.addTest(new TestCase(testName, testID)); - } private void markTestFail(String testID) { @@ -238,53 +250,21 @@ public class PHPUnitView extends ViewPart { } - private void markTestingStarted(int numTestsToBeRun) { - - - //reportArea.append("Tests started expecting: " + numTests + " \n"); - - } - - private void markTestingFinished() { - - - //reportArea.append("end all tests \n"); - } - - // action to start tests: - public void startTests() throws IOException { - -// // 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. -// -// testPool = new TestPool("RUN MONDAY 11:15 PM"); -// listenForReports(); -// -// try { -// Runtime.getRuntime().exec("php.exe \"C:/Program Files/Apache Group/Apache2/htdocs/phpUnit/suite.php\""); -// } catch (Exception e) { -// -// e.printStackTrace(); -// } - - startTests("C:/Program Files/Apache Group/Apache2/htdocs/phpUnit/suite.php"); - - } public void startTests(String testSuite) throws IOException { //testSuite: the name of the file containing the suite we want to run. // we will put that test suite inside a contained that uses our SocketResult. - - + //reset from previous run reset(); + + testSuite = testSuite.replaceAll("\\\\", "/"); + + System.out.println("new: " + testSuite); + //where the plugin's temp files should go String tempFolder = "C:\\tmp"; String tempFileName = "temTest.php"; @@ -294,15 +274,21 @@ public class PHPUnitView extends ViewPart { BufferedWriter out = new BufferedWriter(new FileWriter(testFile)); out.write("addTest(new TestSuite(\"" + testSuiteName + "\"));" + "\n"); - - - //out.write("$suite->addTest(new TestSuite(\"MoreTesterTests\"));" + "\n"); - //out.write("$suite->addTest(new TestSuite(\"ManyFailingTests\"));" + "\n"); - //out.write("$suite->addTest(new TestSuite(\"AssertEqualsTests\"));" + "\n"); - out.write("$result = new SocketTestResult();" + "\n"); out.write("$suite->run($result);" + "\n"); out.write("$result->report(); " + "\n"); @@ -325,6 +305,12 @@ public class PHPUnitView extends ViewPart { out.write("" + "\n"); out.write("" + "\n"); + out.write("$output = ob_get_contents();" + "\n"); + out.write("$fileHandle = fopen('c:/tmp/phpOut.txt');" + "\n"); + out.write("fclose($fileHandle);" + "\n"); + + + out.write("ob_end();" + "\n"); out.write("?>" + "\n"); out.flush(); @@ -384,33 +370,39 @@ public class PHPUnitView extends ViewPart { * @param testID */ public void handleCommand( - String command, - String testCount, - String testID) { - + String command, String[] args) { + if (command.equals("startAll")) { - markTestingStarted(new Integer(testCount).intValue()); + //markTestingStarted(new Integer(testCount).intValue()); } else if (command.equals("testSuiteStarted")) { - createNewTestSuite("TestSuiteName: " + testID, testID, new Integer(testCount).intValue()); - markTestSuiteStarted(testID); + String testID = args[0]; + String testCount = args[1]; + + //createNewTestSuite("TestSuiteName: " + testID, testID, new Integer(testCount).intValue()); + TestSuite suite = new TestSuite(null, "TestSuiteName: " + testID, testID, new Integer(testCount).intValue()); + testPool.addTestSuite(suite); } else if (command.equals("testStarted")) { - createNewTest("TestName: " + testID, testID); - markTestStarted(testID); + String testID = args[0]; + String testCount = args[1]; + String testName = args[2]; + String parentTestSuiteName = args[3]; + + testPool.addTest(new TestCase(testID, testName, parentTestSuiteName)); } else if (command.equals("testFINISHED")) { - markTestFinished(); + } else if (command.equals("endAll")) { - markTestingFinished(); + } @@ -431,41 +423,6 @@ public class PHPUnitView extends ViewPart { } - /** - * @param testID - */ - private void markTestSuiteStarted(String testID) { - // TODO Auto-generated method stub - - } - - /** - * @param string - * @param testID - * @param testCount - */ - private void createNewTestSuite(String name, String testID, int testCount) { - - TestSuite suite = new TestSuite(name, testID, testCount); - testPool.addTestSuite(suite); - - } - - /** - * - */ - private void markTestFinished() { - - - } - - /** - * - */ - private void updateResultsInfo() { - // TODO Auto-generated method stub - - } /** * @param currentTestID @@ -491,4 +448,7 @@ public class PHPUnitView extends ViewPart { } + + + } //end of class