This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: TableColumn test enhancements
- From: David Gilbert <david dot gilbert at object-refinery dot com>
- To: mauve-patches <mauve-patches at sources dot redhat dot com>
- Date: Tue, 14 Mar 2006 17:20:11 +0000
- Subject: FYI: TableColumn test enhancements
This patch (committed) enhances some tests for the TableColumn class to
check for the required PropertyChangeEvents:
2006-03-14 David Gilbert <david.gilbert@object-refinery.com>
* gnu/testlet/javax/swing/table/TableColumn/setMinWidth.java
(events): New field,
(propertyChange): New method,
(test): Added checks for PropertyChangeEvents,
* gnu/testlet/javax/swing/table/TableColumn/setPreferredWidth.java
(events): New field,
(propertyChange): New method,
(test): Added checks for PropertyChangeEvents,
* gnu/testlet/javax/swing/table/tableColumn/setWidth.java
(event): Removed,
(events): New field,
(propertyChange): Add event to new events list,
(test): Added checks for PropertyChangeEvents.
There are some failures with GNU Classpath - I will commit a patch to
fix those shortly.
Regards,
Dave
Index: gnu/testlet/javax/swing/table/TableColumn/setMinWidth.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setMinWidth.java,v
retrieving revision 1.2
diff -u -r1.2 setMinWidth.java
--- gnu/testlet/javax/swing/table/TableColumn/setMinWidth.java 25 Jul 2005 08:39:50 -0000 1.2
+++ gnu/testlet/javax/swing/table/TableColumn/setMinWidth.java 14 Mar 2006 17:13:43 -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,32 @@
// 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 java.util.List;
+
import javax.swing.table.TableColumn;
/**
* Some tests for the setMinWidth() method in the {@link TableColumn} class.
*/
-public class setMinWidth implements Testlet
+public class setMinWidth implements Testlet, PropertyChangeListener
{
-
+ List events = new java.util.ArrayList();
+
+ public void propertyChange(PropertyChangeEvent e)
+ {
+ events.add(e);
+ }
+
/**
* Runs the test using the specified harness.
*
@@ -38,11 +48,20 @@
public void test(TestHarness harness)
{
TableColumn c = new TableColumn();
+ harness.check(c.getMinWidth(), 15);
+ c.addPropertyChangeListener(this);
+
c.setMinWidth(11);
harness.check(c.getMinWidth(), 11);
+ harness.check(events.size(), 1);
+ PropertyChangeEvent e = (PropertyChangeEvent) events.get(0);
+ harness.check(e.getPropertyName(), "minWidth");
+ harness.check(e.getOldValue(), new Integer(15));
+ harness.check(e.getNewValue(), new Integer(11));
// spec says that current and preferred width will be updated if they are
// less than the min width
+ events.clear();
harness.check(c.getWidth(), 75);
harness.check(c.getPreferredWidth(), 75);
c.setMinWidth(88);
@@ -50,7 +69,26 @@
harness.check(c.getWidth(), 88);
harness.check(c.getPreferredWidth(), 88);
+ PropertyChangeEvent e1 = (PropertyChangeEvent) events.get(0);
+ harness.check(e1.getPropertyName(), "width");
+ harness.check(e1.getOldValue(), new Integer(75));
+ harness.check(e1.getNewValue(), new Integer(88));
+
+ PropertyChangeEvent e2 = (PropertyChangeEvent) events.get(1);
+ harness.check(e2.getPropertyName(), "preferredWidth");
+ harness.check(e2.getOldValue(), new Integer(75));
+ harness.check(e2.getNewValue(), new Integer(88));
+
+ PropertyChangeEvent e3 = (PropertyChangeEvent) events.get(2);
+ harness.check(e3.getPropertyName(), "minWidth");
+ harness.check(e3.getOldValue(), new Integer(11));
+ harness.check(e3.getNewValue(), new Integer(88));
+
// the spec doesn't say anything about the max value, unfortunately
+
+ // try a negative value
+ c.setMinWidth(-1);
+ harness.check(c.getMinWidth(), 0);
}
}
Index: gnu/testlet/javax/swing/table/TableColumn/setPreferredWidth.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setPreferredWidth.java,v
retrieving revision 1.1
diff -u -r1.1 setPreferredWidth.java
--- gnu/testlet/javax/swing/table/TableColumn/setPreferredWidth.java 9 Jan 2005 23:06:43 -0000 1.1
+++ gnu/testlet/javax/swing/table/TableColumn/setPreferredWidth.java 14 Mar 2006 17:13:43 -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,21 +14,32 @@
// 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 java.util.List;
+
import javax.swing.table.TableColumn;
/**
- * Some tests for the setPreferredWidth() method in the {@link TableColumn} class.
+ * Some tests for the setPreferredWidth() method in the {@link TableColumn}
+ * class.
*/
-public class setPreferredWidth implements Testlet
+public class setPreferredWidth implements Testlet, PropertyChangeListener
{
+ List events = new java.util.ArrayList();
+
+ public void propertyChange(PropertyChangeEvent e)
+ {
+ events.add(e);
+ }
/**
* Runs the test using the specified harness.
@@ -38,11 +49,21 @@
public void test(TestHarness harness)
{
TableColumn c = new TableColumn();
+ harness.check(c.getPreferredWidth(), 75);
+ c.addPropertyChangeListener(this);
c.setPreferredWidth(55);
harness.check(c.getPreferredWidth(), 55);
+
+ harness.check(events.size(), 1);
+ PropertyChangeEvent e = (PropertyChangeEvent) events.get(0);
+ harness.check(e.getPropertyName(), "preferredWidth");
+ harness.check(e.getOldValue(), new Integer(75));
+ harness.check(e.getNewValue(), new Integer(55));
+ // set the preferred width to less than the min width...
c.setPreferredWidth(10);
harness.check(c.getPreferredWidth(), 15); // default min width
+
c.setMaxWidth(123);
harness.check(c.getMaxWidth(), 123);
c.setPreferredWidth(234);
Index: gnu/testlet/javax/swing/table/TableColumn/setWidth.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/javax/swing/table/TableColumn/setWidth.java,v
retrieving revision 1.1
diff -u -r1.1 setWidth.java
--- gnu/testlet/javax/swing/table/TableColumn/setWidth.java 9 Jan 2005 23:06:43 -0000 1.1
+++ gnu/testlet/javax/swing/table/TableColumn/setWidth.java 14 Mar 2006 17:13:43 -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;
@@ -24,6 +24,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.List;
import javax.swing.table.TableColumn;
@@ -33,7 +34,7 @@
public class setWidth implements Testlet, PropertyChangeListener
{
- private PropertyChangeEvent event;
+ List events = new java.util.ArrayList();
/**
* Runs the test using the specified harness.
@@ -43,27 +44,28 @@
public void test(TestHarness harness)
{
TableColumn c = new TableColumn();
+ harness.check(c.getWidth(), 75);
+ c.addPropertyChangeListener(this);
+
c.setWidth(19);
harness.check(c.getWidth(), 19);
+ harness.check(events.size(), 1);
+ PropertyChangeEvent e = (PropertyChangeEvent) events.get(0);
+ harness.check(e.getPropertyName(), "width");
+ harness.check(e.getOldValue(), new Integer(75));
+ harness.check(e.getNewValue(), new Integer(19));
- c.setMinWidth(10);
- c.setMaxWidth(20);
- c.setWidth(15);
+ c.setWidth(10);
harness.check(c.getWidth(), 15);
- c.setWidth(7);
- harness.check(c.getWidth(), 10);
- c.setWidth(22);
- harness.check(c.getWidth(), 20);
- // O'Reilly's "Java Swing" (first edition) lists this as a "bound" property
- c.addPropertyChangeListener(this);
- c.setWidth(18);
- harness.check(this.event != null);
+ c.setMaxWidth(100);
+ c.setWidth(110);
+ harness.check(c.getWidth(), 100);
}
public void propertyChange(PropertyChangeEvent e)
{
- this.event = e;
+ this.events.add(e);
}
}