This is the mail archive of the mauve-patches@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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);
   }
 
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]