This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: More TableColumn tests
- From: David Gilbert <david dot gilbert at object-refinery dot com>
- To: mauve-patches <mauve-patches at sources dot redhat dot com>
- Date: Wed, 15 Mar 2006 11:42:55 +0000
- Subject: FYI: More TableColumn tests
This patch (committed) adds more tests for the methods in the
TableColumn class:
2006-03-15 David Gilbert <david.gilbert@object-refinery.com>
*
gnu/testlet/javax/swing/table/TableColumn/addPropertyChangeListener.java:
New file,
*
gnu/testlet/javax/swing/table/TableColumn/removePropertyChangeListener.java:
Likewise,
* gnu/testlet/javax/swing/table/TableColumn/setCellEditor.java:
Likewise,
* gnu/testlet/javax/swing/table/TableColumn/setCellRenderer.java
(test): Extended PropertyChangeEvent tests,
* gnu/testlet/javax/swing/table/TableColumn/setHeaderRenderer.java
(test): Likewise,
* gnu/testlet/javax/swing/table/TableColumn/setHeaderValue.java
(test): Likewise,
* gnu/testlet/javax/swing/table/TableColumn/setIdentifier.java
(event): New field,
(propertyChange): New method,
(test): Added checks for required PropertyChangeEvent.
The failing tests will be fixed by a patch to GNU Classpath CVS shortly...
Regards,
Dave
Index: gnu/testlet/javax/swing/table/TableColumn/addPropertyChangeListener.java
===================================================================
RCS file: gnu/testlet/javax/swing/table/TableColumn/addPropertyChangeListener.java
diff -N gnu/testlet/javax/swing/table/TableColumn/addPropertyChangeListener.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/table/TableColumn/addPropertyChangeListener.java 15 Mar 2006 11:27:40 -0000
@@ -0,0 +1,69 @@
+/* addPropertyChangeListener.java -- some checks for the
+ addPropertyChangeListener() method in the TableColumn class.
+ Copyright (C) 2006 David Gilbert <david.gilbert@object-refinery.com>
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.2
+
+package gnu.testlet.javax.swing.table.TableColumn;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import javax.swing.table.TableColumn;
+
+public class addPropertyChangeListener implements Testlet
+{
+ static class Listener implements PropertyChangeListener
+ {
+ public List events = new java.util.ArrayList();
+
+ public void propertyChange(PropertyChangeEvent e)
+ {
+ events.add(e);
+ }
+ }
+
+ public void test(TestHarness harness)
+ {
+ TableColumn c = new TableColumn();
+
+ // add a listener, make sure it receives an event
+ Listener l1 = new Listener();
+ c.addPropertyChangeListener(l1);
+ c.setWidth(60);
+ harness.check(l1.events.size(), 1);
+ c.removePropertyChangeListener(l1);
+ l1.events.clear();
+ c.setWidth(61);
+ harness.check(l1.events.size(), 0);
+ PropertyChangeListener[] listeners = c.getPropertyChangeListeners();
+ harness.check(listeners.length, 0);
+
+ // add a null listener
+ c.addPropertyChangeListener(null);
+ listeners = c.getPropertyChangeListeners();
+ harness.check(listeners.length, 0);
+ }
+}
Index: gnu/testlet/javax/swing/table/TableColumn/removePropertyChangeListener.java
===================================================================
RCS file: gnu/testlet/javax/swing/table/TableColumn/removePropertyChangeListener.java
diff -N gnu/testlet/javax/swing/table/TableColumn/removePropertyChangeListener.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/table/TableColumn/removePropertyChangeListener.java 15 Mar 2006 11:27:41 -0000
@@ -0,0 +1,81 @@
+/* removePropertyChangeListener.java -- some checks for the
+ removePropertyChangeListener() method in the TableColumn class.
+ Copyright (C) 2006 David Gilbert <david.gilbert@object-refinery.com>
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.2
+
+package gnu.testlet.javax.swing.table.TableColumn;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import javax.swing.table.TableColumn;
+
+public class removePropertyChangeListener implements Testlet
+{
+ static class Listener implements PropertyChangeListener
+ {
+ public List events = new java.util.ArrayList();
+
+ public void propertyChange(PropertyChangeEvent e)
+ {
+ events.add(e);
+ }
+ }
+
+ public void test(TestHarness harness)
+ {
+ TableColumn c = new TableColumn();
+
+ // add a listener, make sure it receives an event
+ Listener l1 = new Listener();
+ c.addPropertyChangeListener(l1);
+ c.setWidth(60);
+ harness.check(l1.events.size(), 1);
+
+ // then remove it to make sure it doesn't get events anymore
+ c.removePropertyChangeListener(l1);
+ l1.events.clear();
+ c.setWidth(61);
+ harness.check(l1.events.size(), 0);
+ PropertyChangeListener[] listeners = c.getPropertyChangeListeners();
+ harness.check(listeners.length, 0);
+
+ // remove a listener that was never added
+ c.addPropertyChangeListener(l1);
+ c.removePropertyChangeListener(new Listener());
+ listeners = c.getPropertyChangeListeners();
+ harness.check(listeners.length, 1);
+
+ // remove a null listener
+ c.removePropertyChangeListener(null);
+ listeners = c.getPropertyChangeListeners();
+ harness.check(listeners.length, 1);
+ c.removePropertyChangeListener(l1);
+ listeners = c.getPropertyChangeListeners();
+ harness.check(listeners.length, 0);
+
+ }
+}
Index: gnu/testlet/javax/swing/table/TableColumn/setCellEditor.java
===================================================================
RCS file: gnu/testlet/javax/swing/table/TableColumn/setCellEditor.java
diff -N gnu/testlet/javax/swing/table/TableColumn/setCellEditor.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/table/TableColumn/setCellEditor.java 15 Mar 2006 11:27:41 -0000
@@ -0,0 +1,69 @@
+/* setCellEditor.java -- some checks for the setCellEditor() method in the
+ TableColumn class.
+ Copyright (C) 2006 David Gilbert <david.gilbert@object-refinery.com>
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.2
+
+package gnu.testlet.javax.swing.table.TableColumn;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import javax.swing.DefaultCellEditor;
+import javax.swing.JTextField;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableColumn;
+
+public class setCellEditor implements Testlet, PropertyChangeListener
+{
+ List events = new java.util.ArrayList();
+
+ public void propertyChange(PropertyChangeEvent e)
+ {
+ events.add(e);
+ }
+
+ public void test(TestHarness harness)
+ {
+ TableColumn c = new TableColumn();
+ harness.check(c.getCellEditor(), null);
+ c.addPropertyChangeListener(this);
+ TableCellEditor editor = new DefaultCellEditor(new JTextField());
+ c.setCellEditor(editor);
+ harness.check(c.getCellEditor(), editor);
+ PropertyChangeEvent e = (PropertyChangeEvent) events.get(0);
+ harness.check(e.getPropertyName(), "cellEditor");
+ harness.check(e.getOldValue(), null);
+ harness.check(e.getNewValue(), editor);
+
+ // set to null
+ events.clear();
+ c.setCellEditor(null);
+ e = (PropertyChangeEvent) events.get(0);
+ harness.check(e.getPropertyName(), "cellEditor");
+ harness.check(e.getOldValue(), editor);
+ harness.check(e.getNewValue(), null);
+ }
+}
Index: gnu/testlet/javax/swing/table/TableColumn/setCellRenderer.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setCellRenderer.java,v
retrieving revision 1.1
diff -u -r1.1 setCellRenderer.java
--- gnu/testlet/javax/swing/table/TableColumn/setCellRenderer.java 9 Jan 2005 23:06:43 -0000 1.1
+++ gnu/testlet/javax/swing/table/TableColumn/setCellRenderer.java 15 Mar 2006 11:27:41 -0000
@@ -1,6 +1,6 @@
// Tags: JDK1.2
-// Copyright (C) 2005 David Gilbert <david.gilbert@object-refinery.com>
+// Copyright (C) 2005, 2006, David Gilbert <david.gilbert@object-refinery.com>
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -14,8 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA. */
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301 USA.
package gnu.testlet.javax.swing.table.TableColumn;
@@ -53,7 +53,16 @@
c.addPropertyChangeListener(this);
TableCellRenderer r2 = new DefaultTableCellRenderer();
c.setCellRenderer(r2);
- harness.check(this.event != null);
+ harness.check(event.getPropertyName(), "cellRenderer");
+ harness.check(event.getOldValue(), r1);
+ harness.check(event.getNewValue(), r2);
+
+ // set renderer to null
+ c.setCellRenderer(null);
+ harness.check(c.getCellRenderer(), null);
+ harness.check(event.getPropertyName(), "cellRenderer");
+ harness.check(event.getOldValue(), r2);
+ harness.check(event.getNewValue(), null);
}
public void propertyChange(PropertyChangeEvent e)
Index: gnu/testlet/javax/swing/table/TableColumn/setHeaderRenderer.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setHeaderRenderer.java,v
retrieving revision 1.1
diff -u -r1.1 setHeaderRenderer.java
--- gnu/testlet/javax/swing/table/TableColumn/setHeaderRenderer.java 9 Jan 2005 23:06:43 -0000 1.1
+++ gnu/testlet/javax/swing/table/TableColumn/setHeaderRenderer.java 15 Mar 2006 11:27:41 -0000
@@ -1,6 +1,6 @@
// Tags: JDK1.2
-// Copyright (C) 2005 David Gilbert <david.gilbert@object-refinery.com>
+// Copyright (C) 2005, 2006, David Gilbert <david.gilbert@object-refinery.com>
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -14,8 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA. */
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301 USA.
package gnu.testlet.javax.swing.table.TableColumn;
@@ -30,7 +30,8 @@
import javax.swing.table.TableColumn;
/**
- * Some tests for the setHeaderRenderer() method in the {@link TableColumn} class.
+ * Some tests for the setHeaderRenderer() method in the {@link TableColumn}
+ * class.
*/
public class setHeaderRenderer implements Testlet, PropertyChangeListener
{
@@ -52,7 +53,15 @@
c.addPropertyChangeListener(this);
TableCellRenderer r2 = new DefaultTableCellRenderer();
c.setHeaderRenderer(r2);
- harness.check(this.event != null);
+ harness.check(event.getPropertyName(), "headerRenderer");
+ harness.check(event.getOldValue(), r);
+ harness.check(event.getNewValue(), r2);
+
+ // try null
+ c.setHeaderRenderer(null);
+ harness.check(event.getPropertyName(), "headerRenderer");
+ harness.check(event.getOldValue(), r2);
+ harness.check(event.getNewValue(), null);
}
public void propertyChange(PropertyChangeEvent e)
Index: gnu/testlet/javax/swing/table/TableColumn/setHeaderValue.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setHeaderValue.java,v
retrieving revision 1.2
diff -u -r1.2 setHeaderValue.java
--- gnu/testlet/javax/swing/table/TableColumn/setHeaderValue.java 25 Jul 2005 08:39:50 -0000 1.2
+++ gnu/testlet/javax/swing/table/TableColumn/setHeaderValue.java 15 Mar 2006 11:27:41 -0000
@@ -1,6 +1,6 @@
// Tags: JDK1.2
-// Copyright (C) 2005 David Gilbert <david.gilbert@object-refinery.com>
+// Copyright (C) 2005, 2006, David Gilbert <david.gilbert@object-refinery.com>
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -14,8 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA. */
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301 USA.
package gnu.testlet.javax.swing.table.TableColumn;
@@ -49,10 +49,15 @@
// O'Reilly's "Java Swing" (first edition) lists this as a "bound" property
c.addPropertyChangeListener(this);
c.setHeaderValue("Value");
- harness.check(this.event != null);
+ harness.check(event.getPropertyName(), "headerValue");
+ harness.check(event.getOldValue(), new Integer(99));
+ harness.check(event.getNewValue(), "Value");
c.setHeaderValue(null);
harness.check(c.getHeaderValue(), null);
+ harness.check(event.getPropertyName(), "headerValue");
+ harness.check(event.getOldValue(), "Value");
+ harness.check(event.getNewValue(), null);
}
public void propertyChange(PropertyChangeEvent e)
Index: gnu/testlet/javax/swing/table/TableColumn/setIdentifier.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setIdentifier.java,v
retrieving revision 1.2
diff -u -r1.2 setIdentifier.java
--- gnu/testlet/javax/swing/table/TableColumn/setIdentifier.java 25 Jul 2005 08:39:50 -0000 1.2
+++ gnu/testlet/javax/swing/table/TableColumn/setIdentifier.java 15 Mar 2006 11:27:41 -0000
@@ -1,6 +1,6 @@
// Tags: JDK1.2
-// Copyright (C) 2005 David Gilbert <david.gilbert@object-refinery.com>
+// Copyright (C) 2005, 2006, David Gilbert <david.gilbert@object-refinery.com>
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -14,22 +14,31 @@
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330,
-// Boston, MA 02111-1307, USA. */
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301 USA.
package gnu.testlet.javax.swing.table.TableColumn;
import gnu.testlet.TestHarness;
import gnu.testlet.Testlet;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
import javax.swing.table.TableColumn;
/**
* Some tests for the setIdentifier() method in the {@link TableColumn} class.
*/
-public class setIdentifier implements Testlet
+public class setIdentifier implements Testlet, PropertyChangeListener
{
-
+ PropertyChangeEvent event;
+
+ public void propertyChange(PropertyChangeEvent e)
+ {
+ event = e;
+ }
+
/**
* Runs the test using the specified harness.
*
@@ -38,11 +47,21 @@
public void test(TestHarness harness)
{
TableColumn c = new TableColumn();
+ harness.check(c.getIdentifier(), null);
+
+ c.addPropertyChangeListener(this);
c.setIdentifier(new Integer(99));
harness.check(c.getIdentifier(), new Integer(99));
+ harness.check(event.getPropertyName(), "identifier");
+ harness.check(event.getOldValue(), null);
+ harness.check(event.getNewValue(), new Integer(99));
+ // try null
c.setIdentifier(null);
harness.check(c.getIdentifier(), null);
+ harness.check(event.getPropertyName(), "identifier");
+ harness.check(event.getOldValue(), new Integer(99));
+ harness.check(event.getNewValue(), null);
}
}