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

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