aboutsummaryrefslogtreecommitdiff
path: root/src/junit/swingui/TestRunner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/junit/swingui/TestRunner.java')
-rw-r--r--src/junit/swingui/TestRunner.java849
1 files changed, 0 insertions, 849 deletions
diff --git a/src/junit/swingui/TestRunner.java b/src/junit/swingui/TestRunner.java
deleted file mode 100644
index 44aa7a7..0000000
--- a/src/junit/swingui/TestRunner.java
+++ /dev/null
@@ -1,849 +0,0 @@
-package junit.swingui;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Image;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import javax.swing.DefaultListModel;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JSeparator;
-import javax.swing.JSplitPane;
-import javax.swing.JTabbedPane;
-import javax.swing.ListModel;
-import javax.swing.ScrollPaneConstants;
-import javax.swing.SwingConstants;
-import javax.swing.SwingUtilities;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import javax.swing.event.DocumentEvent;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestFailure;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-import junit.runner.BaseTestRunner;
-import junit.runner.FailureDetailView;
-import junit.runner.SimpleTestCollector;
-import junit.runner.TestCollector;
-import junit.runner.TestRunListener;
-import junit.runner.Version;
-
-/**
- * A Swing based user interface to run tests.
- * Enter the name of a class which either provides a static
- * suite method or is a subclass of TestCase.
- * <pre>
- * Synopsis: java junit.swingui.TestRunner [-noloading] [TestCase]
- * </pre>
- * TestRunner takes as an optional argument the name of the testcase class to be run.
- */
-public class TestRunner extends BaseTestRunner implements TestRunContext {
- private static final int GAP= 4;
- private static final int HISTORY_LENGTH= 5;
-
- protected JFrame fFrame;
- private Thread fRunner;
- private TestResult fTestResult;
-
- private JComboBox fSuiteCombo;
- private ProgressBar fProgressIndicator;
- private DefaultListModel fFailures;
- private JLabel fLogo;
- private CounterPanel fCounterPanel;
- private JButton fRun;
- private JButton fQuitButton;
- private JButton fRerunButton;
- private StatusLine fStatusLine;
- private FailureDetailView fFailureView;
- private JTabbedPane fTestViewTab;
- private JCheckBox fUseLoadingRunner;
- private Vector fTestRunViews= new Vector(); // view associated with tab in tabbed pane
-
- private static final String TESTCOLLECTOR_KEY= "TestCollectorClass";
- private static final String FAILUREDETAILVIEW_KEY= "FailureViewClass";
-
- public TestRunner() {
- }
-
- public static void main(String[] args) {
- new TestRunner().start(args);
- }
-
- public static void run(Class test) {
- String args[]= { test.getName() };
- main(args);
- }
-
- public void testFailed(final int status, final Test test, final Throwable t) {
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- switch (status) {
- case TestRunListener.STATUS_ERROR:
- fCounterPanel.setErrorValue(fTestResult.errorCount());
- appendFailure(test, t);
- break;
- case TestRunListener.STATUS_FAILURE:
- fCounterPanel.setFailureValue(fTestResult.failureCount());
- appendFailure(test, t);
- break;
- }
- }
- }
- );
- }
-
- public void testStarted(String testName) {
- postInfo("Running: "+testName);
- }
-
- public void testEnded(String stringName) {
- synchUI();
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- if (fTestResult != null) {
- fCounterPanel.setRunValue(fTestResult.runCount());
- fProgressIndicator.step(fTestResult.runCount(), fTestResult.wasSuccessful());
- }
- }
- }
- );
- }
-
- public void setSuite(String suiteName) {
- fSuiteCombo.getEditor().setItem(suiteName);
- }
-
- private void addToHistory(final String suite) {
- for (int i= 0; i < fSuiteCombo.getItemCount(); i++) {
- if (suite.equals(fSuiteCombo.getItemAt(i))) {
- fSuiteCombo.removeItemAt(i);
- fSuiteCombo.insertItemAt(suite, 0);
- fSuiteCombo.setSelectedIndex(0);
- return;
- }
- }
- fSuiteCombo.insertItemAt(suite, 0);
- fSuiteCombo.setSelectedIndex(0);
- pruneHistory();
- }
-
- private void pruneHistory() {
- int historyLength= getPreference("maxhistory", HISTORY_LENGTH);
- if (historyLength < 1)
- historyLength= 1;
- for (int i= fSuiteCombo.getItemCount()-1; i > historyLength-1; i--)
- fSuiteCombo.removeItemAt(i);
- }
-
- private void appendFailure(Test test, Throwable t) {
- fFailures.addElement(new TestFailure(test, t));
- if (fFailures.size() == 1)
- revealFailure(test);
- }
-
- private void revealFailure(Test test) {
- for (Enumeration e= fTestRunViews.elements(); e.hasMoreElements(); ) {
- TestRunView v= (TestRunView) e.nextElement();
- v.revealFailure(test);
- }
- }
-
- protected void aboutToStart(final Test testSuite) {
- for (Enumeration e= fTestRunViews.elements(); e.hasMoreElements(); ) {
- TestRunView v= (TestRunView) e.nextElement();
- v.aboutToStart(testSuite, fTestResult);
- }
- }
-
- protected void runFinished(final Test testSuite) {
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- for (Enumeration e= fTestRunViews.elements(); e.hasMoreElements(); ) {
- TestRunView v= (TestRunView) e.nextElement();
- v.runFinished(testSuite, fTestResult);
- }
- }
- }
- );
- }
-
- protected CounterPanel createCounterPanel() {
- return new CounterPanel();
- }
-
- protected JPanel createFailedPanel() {
- JPanel failedPanel= new JPanel(new GridLayout(0, 1, 0, 2));
- fRerunButton= new JButton("Run");
- fRerunButton.setEnabled(false);
- fRerunButton.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- rerun();
- }
- }
- );
- failedPanel.add(fRerunButton);
- return failedPanel;
- }
-
- protected FailureDetailView createFailureDetailView() {
- String className= BaseTestRunner.getPreference(FAILUREDETAILVIEW_KEY);
- if (className != null) {
- Class viewClass= null;
- try {
- viewClass= Class.forName(className);
- return (FailureDetailView)viewClass.newInstance();
- } catch(Exception e) {
- JOptionPane.showMessageDialog(fFrame, "Could not create Failure DetailView - using default view");
- }
- }
- return new DefaultFailureDetailView();
- }
-
- /**
- * Creates the JUnit menu. Clients override this
- * method to add additional menu items.
- */
- protected JMenu createJUnitMenu() {
- JMenu menu= new JMenu("JUnit");
- menu.setMnemonic('J');
- JMenuItem mi1= new JMenuItem("About...");
- mi1.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- about();
- }
- }
- );
- mi1.setMnemonic('A');
- menu.add(mi1);
-
- menu.addSeparator();
- JMenuItem mi2= new JMenuItem(" Exit ");
- mi2.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- terminate();
- }
- }
- );
- mi2.setMnemonic('x');
- menu.add(mi2);
-
- return menu;
- }
-
- protected JFrame createFrame() {
- JFrame frame= new JFrame("JUnit");
- Image icon= loadFrameIcon();
- if (icon != null)
- frame.setIconImage(icon);
- frame.getContentPane().setLayout(new BorderLayout(0, 0));
-
- frame.addWindowListener(
- new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- terminate();
- }
- }
- );
- return frame;
- }
-
- protected JLabel createLogo() {
- JLabel label;
- Icon icon= getIconResource(BaseTestRunner.class, "logo.gif");
- if (icon != null)
- label= new JLabel(icon);
- else
- label= new JLabel("JV");
- label.setToolTipText("JUnit Version "+Version.id());
- return label;
- }
-
- protected void createMenus(JMenuBar mb) {
- mb.add(createJUnitMenu());
- }
-
- protected JCheckBox createUseLoaderCheckBox() {
- boolean useLoader= useReloadingTestSuiteLoader();
- JCheckBox box= new JCheckBox("Reload classes every run", useLoader);
- box.setToolTipText("Use a custom class loader to reload the classes for every run");
- if (inVAJava())
- box.setVisible(false);
- return box;
- }
-
- protected JButton createQuitButton() {
- // spaces required to avoid layout flicker
- // Exit is shorter than Stop that shows in the same column
- JButton quit= new JButton(" Exit ");
- quit.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- terminate();
- }
- }
- );
- return quit;
- }
-
- protected JButton createRunButton() {
- JButton run= new JButton("Run");
- run.setEnabled(true);
- run.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- runSuite();
- }
- }
- );
- return run;
- }
-
- protected Component createBrowseButton() {
- JButton browse= new JButton("...");
- browse.setToolTipText("Select a Test class");
- browse.addActionListener(
- new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- browseTestClasses();
- }
- }
- );
- return browse;
- }
-
- protected StatusLine createStatusLine() {
- return new StatusLine(380);
- }
-
- protected JComboBox createSuiteCombo() {
- JComboBox combo= new JComboBox();
- combo.setEditable(true);
- combo.setLightWeightPopupEnabled(false);
-
- combo.getEditor().getEditorComponent().addKeyListener(
- new KeyAdapter() {
- public void keyTyped(KeyEvent e) {
- textChanged();
- if (e.getKeyChar() == KeyEvent.VK_ENTER)
- runSuite();
- }
- }
- );
- try {
- loadHistory(combo);
- } catch (IOException e) {
- // fails the first time
- }
- combo.addItemListener(
- new ItemListener() {
- public void itemStateChanged(ItemEvent event) {
- if (event.getStateChange() == ItemEvent.SELECTED) {
- textChanged();
- }
- }
- }
- );
- return combo;
- }
-
- protected JTabbedPane createTestRunViews() {
- JTabbedPane pane= new JTabbedPane(SwingConstants.BOTTOM);
-
- FailureRunView lv= new FailureRunView(this);
- fTestRunViews.addElement(lv);
- lv.addTab(pane);
-
- TestHierarchyRunView tv= new TestHierarchyRunView(this);
- fTestRunViews.addElement(tv);
- tv.addTab(pane);
-
- pane.addChangeListener(
- new ChangeListener() {
- public void stateChanged(ChangeEvent e) {
- testViewChanged();
- }
- }
- );
- return pane;
- }
-
- public void testViewChanged() {
- TestRunView view= (TestRunView)fTestRunViews.elementAt(fTestViewTab.getSelectedIndex());
- view.activate();
- }
-
- protected TestResult createTestResult() {
- return new TestResult();
- }
-
- protected JFrame createUI(String suiteName) {
- JFrame frame= createFrame();
- JMenuBar mb= new JMenuBar();
- createMenus(mb);
- frame.setJMenuBar(mb);
-
- JLabel suiteLabel= new JLabel("Test class name:");
- fSuiteCombo= createSuiteCombo();
- fRun= createRunButton();
- frame.getRootPane().setDefaultButton(fRun);
- Component browseButton= createBrowseButton();
-
- fUseLoadingRunner= createUseLoaderCheckBox();
-
- fStatusLine= createStatusLine();
- if (inMac())
- fProgressIndicator= new MacProgressBar(fStatusLine);
- else
- fProgressIndicator= new ProgressBar();
- fCounterPanel= createCounterPanel();
-
- fFailures= new DefaultListModel();
-
- fTestViewTab= createTestRunViews();
- JPanel failedPanel= createFailedPanel();
-
- fFailureView= createFailureDetailView();
- JScrollPane tracePane= new JScrollPane(fFailureView.getComponent(), ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
-
-
-
- fQuitButton= createQuitButton();
- fLogo= createLogo();
-
- JPanel panel= new JPanel(new GridBagLayout());
-
- addGrid(panel, suiteLabel, 0, 0, 2, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);
- addGrid(panel, fSuiteCombo, 0, 1, 1, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);
- addGrid(panel, browseButton, 1, 1, 1, GridBagConstraints.NONE, 0.0, GridBagConstraints.WEST);
- addGrid(panel, fRun, 2, 1, 1, GridBagConstraints.HORIZONTAL, 0.0, GridBagConstraints.CENTER);
-
- addGrid(panel, fUseLoadingRunner, 0, 2, 3, GridBagConstraints.NONE, 1.0, GridBagConstraints.WEST);
- //addGrid(panel, new JSeparator(), 0, 3, 3, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);
-
-
- addGrid(panel, fProgressIndicator, 0, 3, 2, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);
- addGrid(panel, fLogo, 2, 3, 1, GridBagConstraints.NONE, 0.0, GridBagConstraints.NORTH);
-
- addGrid(panel, fCounterPanel, 0, 4, 2, GridBagConstraints.NONE, 0.0, GridBagConstraints.WEST);
- addGrid(panel, new JSeparator(), 0, 5, 2, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);
- addGrid(panel, new JLabel("Results:"), 0, 6, 2, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);
-
- JSplitPane splitter= new JSplitPane(JSplitPane.VERTICAL_SPLIT, fTestViewTab, tracePane);
- addGrid(panel, splitter, 0, 7, 2, GridBagConstraints.BOTH, 1.0, GridBagConstraints.WEST);
-
- addGrid(panel, failedPanel, 2, 7, 1, GridBagConstraints.HORIZONTAL, 0.0, GridBagConstraints.NORTH/*CENTER*/);
-
- addGrid(panel, fStatusLine, 0, 9, 2, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.CENTER);
- addGrid(panel, fQuitButton, 2, 9, 1, GridBagConstraints.HORIZONTAL, 0.0, GridBagConstraints.CENTER);
-
- frame.setContentPane(panel);
- frame.pack();
- frame.setLocation(200, 200);
- return frame;
- }
-
- private void addGrid(JPanel p, Component co, int x, int y, int w, int fill, double wx, int anchor) {
- GridBagConstraints c= new GridBagConstraints();
- c.gridx= x; c.gridy= y;
- c.gridwidth= w;
- c.anchor= anchor;
- c.weightx= wx;
- c.fill= fill;
- if (fill == GridBagConstraints.BOTH || fill == GridBagConstraints.VERTICAL)
- c.weighty= 1.0;
- c.insets= new Insets(y == 0 ? 10 : 0, x == 0 ? 10 : GAP, GAP, GAP);
- p.add(co, c);
- }
-
- protected String getSuiteText() {
- if (fSuiteCombo == null)
- return "";
- return (String)fSuiteCombo.getEditor().getItem();
- }
-
- public ListModel getFailures() {
- return fFailures;
- }
-
- public void insertUpdate(DocumentEvent event) {
- textChanged();
- }
-
- protected Object instanciateClass(String fullClassName, Object param) {
- try {
- Class clazz= Class.forName(fullClassName);
- if (param == null) {
- return clazz.newInstance();
- } else {
- Class[] clazzParam= {param.getClass()};
- Constructor clazzConstructor= clazz.getConstructor(clazzParam);
- Object[] objectParam= {param};
- return clazzConstructor.newInstance(objectParam);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public void browseTestClasses() {
- TestCollector collector= createTestCollector();
- TestSelector selector= new TestSelector(fFrame, collector);
- if (selector.isEmpty()) {
- JOptionPane.showMessageDialog(fFrame, "No Test Cases found.\nCheck that the configured \'TestCollector\' is supported on this platform.");
- return;
- }
- selector.show();
- String className= selector.getSelectedItem();
- if (className != null)
- setSuite(className);
- }
-
- TestCollector createTestCollector() {
- String className= BaseTestRunner.getPreference(TESTCOLLECTOR_KEY);
- if (className != null) {
- Class collectorClass= null;
- try {
- collectorClass= Class.forName(className);
- return (TestCollector)collectorClass.newInstance();
- } catch(Exception e) {
- JOptionPane.showMessageDialog(fFrame, "Could not create TestCollector - using default collector");
- }
- }
- return new SimpleTestCollector();
- }
-
- private Image loadFrameIcon() {
- ImageIcon icon= (ImageIcon)getIconResource(BaseTestRunner.class, "smalllogo.gif");
- if (icon != null)
- return icon.getImage();
- return null;
- }
-
- private void loadHistory(JComboBox combo) throws IOException {
- BufferedReader br= new BufferedReader(new FileReader(getSettingsFile()));
- int itemCount= 0;
- try {
- String line;
- while ((line= br.readLine()) != null) {
- combo.addItem(line);
- itemCount++;
- }
- if (itemCount > 0)
- combo.setSelectedIndex(0);
-
- } finally {
- br.close();
- }
- }
-
- private File getSettingsFile() {
- String home= System.getProperty("user.home");
- return new File(home,".junitsession");
- }
-
- private void postInfo(final String message) {
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- showInfo(message);
- }
- }
- );
- }
-
- private void postStatus(final String status) {
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- showStatus(status);
- }
- }
- );
- }
-
- public void removeUpdate(DocumentEvent event) {
- textChanged();
- }
-
- private void rerun() {
- TestRunView view= (TestRunView)fTestRunViews.elementAt(fTestViewTab.getSelectedIndex());
- Test rerunTest= view.getSelectedTest();
- if (rerunTest != null)
- rerunTest(rerunTest);
- }
-
- private void rerunTest(Test test) {
- if (!(test instanceof TestCase)) {
- showInfo("Could not reload "+ test.toString());
- return;
- }
- Test reloadedTest= null;
- TestCase rerunTest= (TestCase)test;
-
- try {
- Class reloadedTestClass= getLoader().reload(test.getClass());
- reloadedTest= TestSuite.createTest(reloadedTestClass, rerunTest.getName());
- } catch(Exception e) {
- showInfo("Could not reload "+ test.toString());
- return;
- }
- TestResult result= new TestResult();
- reloadedTest.run(result);
-
- String message= reloadedTest.toString();
- if(result.wasSuccessful())
- showInfo(message+" was successful");
- else if (result.errorCount() == 1)
- showStatus(message+" had an error");
- else
- showStatus(message+" had a failure");
- }
-
- protected void reset() {
- fCounterPanel.reset();
- fProgressIndicator.reset();
- fRerunButton.setEnabled(false);
- fFailureView.clear();
- fFailures.clear();
- }
-
- protected void runFailed(String message) {
- showStatus(message);
- fRun.setText("Run");
- fRunner= null;
- }
-
- synchronized public void runSuite() {
- if (fRunner != null) {
- fTestResult.stop();
- } else {
- setLoading(shouldReload());
- reset();
- showInfo("Load Test Case...");
- final String suiteName= getSuiteText();
- final Test testSuite= getTest(suiteName);
- if (testSuite != null) {
- addToHistory(suiteName);
- doRunTest(testSuite);
- }
- }
- }
-
- private boolean shouldReload() {
- return !inVAJava() && fUseLoadingRunner.isSelected();
- }
-
-
- synchronized protected void runTest(final Test testSuite) {
- if (fRunner != null) {
- fTestResult.stop();
- } else {
- reset();
- if (testSuite != null) {
- doRunTest(testSuite);
- }
- }
- }
-
- private void doRunTest(final Test testSuite) {
- setButtonLabel(fRun, "Stop");
- fRunner= new Thread("TestRunner-Thread") {
- public void run() {
- TestRunner.this.start(testSuite);
- postInfo("Running...");
-
- long startTime= System.currentTimeMillis();
- testSuite.run(fTestResult);
-
- if (fTestResult.shouldStop()) {
- postStatus("Stopped");
- } else {
- long endTime= System.currentTimeMillis();
- long runTime= endTime-startTime;
- postInfo("Finished: " + elapsedTimeAsString(runTime) + " seconds");
- }
- runFinished(testSuite);
- setButtonLabel(fRun, "Run");
- fRunner= null;
- System.gc();
- }
- };
- // make sure that the test result is created before we start the
- // test runner thread so that listeners can register for it.
- fTestResult= createTestResult();
- fTestResult.addListener(TestRunner.this);
- aboutToStart(testSuite);
-
- fRunner.start();
- }
-
- private void saveHistory() throws IOException {
- BufferedWriter bw= new BufferedWriter(new FileWriter(getSettingsFile()));
- try {
- for (int i= 0; i < fSuiteCombo.getItemCount(); i++) {
- String testsuite= fSuiteCombo.getItemAt(i).toString();
- bw.write(testsuite, 0, testsuite.length());
- bw.newLine();
- }
- } finally {
- bw.close();
- }
- }
-
- private void setButtonLabel(final JButton button, final String label) {
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- button.setText(label);
- }
- }
- );
- }
-
- public void handleTestSelected(Test test) {
- fRerunButton.setEnabled(test != null && (test instanceof TestCase));
- showFailureDetail(test);
- }
-
- private void showFailureDetail(Test test) {
- if (test != null) {
- ListModel failures= getFailures();
- for (int i= 0; i < failures.getSize(); i++) {
- TestFailure failure= (TestFailure)failures.getElementAt(i);
- if (failure.failedTest() == test) {
- fFailureView.showFailure(failure);
- return;
- }
- }
- }
- fFailureView.clear();
- }
-
- private void showInfo(String message) {
- fStatusLine.showInfo(message);
- }
-
- private void showStatus(String status) {
- fStatusLine.showError(status);
- }
-
- /**
- * Starts the TestRunner
- */
- public void start(String[] args) {
- String suiteName= processArguments(args);
- fFrame= createUI(suiteName);
- fFrame.pack();
- fFrame.setVisible(true);
-
- if (suiteName != null) {
- setSuite(suiteName);
- runSuite();
- }
- }
-
- private void start(final Test test) {
- SwingUtilities.invokeLater(
- new Runnable() {
- public void run() {
- int total= test.countTestCases();
- fProgressIndicator.start(total);
- fCounterPanel.setTotal(total);
- }
- }
- );
- }
-
- /**
- * Wait until all the events are processed in the event thread
- */
- private void synchUI() {
- try {
- SwingUtilities.invokeAndWait(
- new Runnable() {
- public void run() {}
- }
- );
- }
- catch (Exception e) {
- }
- }
-
- /**
- * Terminates the TestRunner
- */
- public void terminate() {
- fFrame.dispose();
- try {
- saveHistory();
- } catch (IOException e) {
- System.out.println("Couldn't save test run history");
- }
- System.exit(0);
- }
-
- public void textChanged() {
- fRun.setEnabled(getSuiteText().length() > 0);
- clearStatus();
- }
-
- protected void clearStatus() {
- fStatusLine.clear();
- }
-
- public static Icon getIconResource(Class clazz, String name) {
- URL url= clazz.getResource(name);
- if (url == null) {
- System.err.println("Warning: could not load \""+name+"\" icon");
- return null;
- }
- return new ImageIcon(url);
- }
-
- private void about() {
- AboutDialog about= new AboutDialog(fFrame);
- about.show();
- }
-}