public inbox for mauve-patches@sourceware.org
 help / color / mirror / Atom feed
* FYI: JSpinner tests
@ 2006-02-15 14:42 David Gilbert
  0 siblings, 0 replies; only message in thread
From: David Gilbert @ 2006-02-15 14:42 UTC (permalink / raw)
  To: mauve-patches

[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]

I committed the following tests for the JSpinner class:

2006-02-15  David Gilbert  <david.gilbert@object-refinery.com>

    * gnu/testlet/javax/swing/JSpinner/addChangeListener.java: New test,
    * gnu/testlet/javax/swing/JSpinner/constructors.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/createEditor.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/getChangeListeners.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/getEditor.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/getModel.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/getNextValue.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/getPreviousValue.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/getUIClassID.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/MyJSpinner.java: New support class,
    * gnu/testlet/javax/swing/JSpinner/removeChangeListener.java: New test,
    * gnu/testlet/javax/swing/JSpinner/setEditor.java: Likewise,
    * gnu/testlet/javax/swing/JSpinner/setModel.java: Likewise.

I have a version of JSpinner that passes all these tests, and will get 
it into GNU Classpath CVS soon.

Regards,

Dave

[-- Attachment #2: diff.txt --]
[-- Type: text/plain, Size: 31506 bytes --]

Index: gnu/testlet/javax/swing/JSpinner/MyJSpinner.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/MyJSpinner.java
diff -N gnu/testlet/javax/swing/JSpinner/MyJSpinner.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/MyJSpinner.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,47 @@
+/* MyJSpinner.java -- Support 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: not-a-test
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import javax.swing.JComponent;
+import javax.swing.JSpinner;
+import javax.swing.SpinnerModel;
+
+public class MyJSpinner extends JSpinner 
+{
+  public MyJSpinner() 
+  {
+    super();
+  }
+
+  public MyJSpinner(SpinnerModel m) 
+  {
+    super(m);
+  }
+  
+  public JComponent createEditor(SpinnerModel model) 
+  {
+    return super.createEditor(model);
+  }
+  
+}
Index: gnu/testlet/javax/swing/JSpinner/addChangeListener.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/addChangeListener.java
diff -N gnu/testlet/javax/swing/JSpinner/addChangeListener.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/addChangeListener.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,67 @@
+/* addChangeListener.java -- Checks for the addChangeListener() method in the
+                             JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.List;
+
+import javax.swing.JSpinner;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+public class addChangeListener implements Testlet, ChangeListener 
+{
+  List events = new java.util.ArrayList();
+  
+  public void stateChanged(ChangeEvent event) 
+  {
+    this.events.add(event);    
+  }
+  
+  public void test(TestHarness harness)
+  {
+    harness.checkPoint("addChangeListener()");
+    JSpinner s = new JSpinner();
+    s.addChangeListener(this);
+    s.getModel().setValue(new Integer(11));
+    harness.check(events.size(), 1);
+    ChangeEvent e = (ChangeEvent) events.get(0);
+    harness.check(e.getSource(), s);
+    
+    // try null listener - it is permitted
+    boolean pass = true;
+    try
+    {
+      s.addChangeListener(null);
+    }
+    catch (NullPointerException npe)
+    {
+      pass = false;
+    }
+    harness.check(pass);
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/constructors.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/constructors.java
diff -N gnu/testlet/javax/swing/JSpinner/constructors.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/constructors.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,108 @@
+/* constructors.java -- Some checks for the constructors in the JSpinner 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.4
+ 
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.Arrays;
+import java.util.EventListener;
+
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.event.ChangeListener;
+import javax.swing.plaf.metal.DefaultMetalTheme;
+import javax.swing.plaf.metal.MetalLookAndFeel;
+
+/**
+ * Some checks for the constructors in the {@link JSpinner} class.
+ */
+public class constructors implements Testlet {
+
+  /**
+   * Runs the test using the specified harness.
+   * 
+   * @param harness  the test harness (<code>null</code> not permitted).
+   */
+  public void test(TestHarness harness)      
+  {
+    constructor1(harness);
+    constructor2(harness);
+  }
+  
+  public void constructor1(TestHarness harness) 
+  {
+    harness.checkPoint("()");
+    
+    // use a known look and feel
+    MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme());
+    try
+      {
+        UIManager.setLookAndFeel(new MetalLookAndFeel());
+      }
+    catch (UnsupportedLookAndFeelException e)
+      {
+        harness.fail(e.toString());  
+      }
+    
+    SpinnerNumberModel m = new SpinnerNumberModel();
+    JSpinner spinner = new JSpinner(m);
+    harness.check(spinner.getValue(), new Integer(0));
+    harness.check(spinner.getEditor() instanceof JSpinner.NumberEditor);
+    
+    // the model has a listener, but it isn't the spinner, editor or UI
+    // some private class is listening and passing on events
+    EventListener[] mListeners = m.getListeners(ChangeListener.class);
+    harness.check(mListeners.length, 1);
+    System.out.println(mListeners[0]);
+    harness.check(!Arrays.asList(mListeners).contains(spinner));
+    harness.check(!Arrays.asList(mListeners).contains(spinner.getUI()));
+    harness.check(!Arrays.asList(mListeners).contains(spinner.getEditor()));
+  }
+
+  public void constructor2(TestHarness harness) 
+  {
+    harness.checkPoint("(SpinnerModel)");
+    SpinnerNumberModel m = new SpinnerNumberModel(5, 0, 10, 1);
+    JSpinner spinner = new JSpinner(m);
+    harness.check(spinner.getValue(), new Integer(5));
+    harness.check(spinner.getEditor() instanceof JSpinner.NumberEditor);
+    
+    // try null model
+    boolean pass = false;
+    try
+    {
+      /*JSpinner s =*/ new JSpinner(null);
+    }
+    catch (NullPointerException e) 
+    {
+      pass = true;
+    }
+    harness.check(pass);
+  }
+
+}
+
Index: gnu/testlet/javax/swing/JSpinner/createEditor.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/createEditor.java
diff -N gnu/testlet/javax/swing/JSpinner/createEditor.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/createEditor.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,74 @@
+/* createEditor.java -- Checks for the createEditor() method in the JSpinner 
+                        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.4
+// Uses: MyJSpinner
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.EventListener;
+
+import javax.swing.JComponent;
+import javax.swing.JSpinner;
+import javax.swing.SpinnerDateModel;
+import javax.swing.SpinnerListModel;
+import javax.swing.SpinnerModel;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.event.ChangeListener;
+
+public class createEditor implements Testlet 
+{
+  public void test(TestHarness harness) 
+  {
+    harness.checkPoint("(SpinnerModel)");
+    MyJSpinner s1 = new MyJSpinner();
+    SpinnerModel m1 = new SpinnerNumberModel();
+    JComponent e1 = s1.createEditor(m1);
+    harness.check(e1 instanceof JSpinner.NumberEditor);
+    // no listeners added to the editor yet
+    EventListener[] e1l = e1.getListeners(ChangeListener.class);
+    harness.check(e1l.length, 0);
+    
+    SpinnerModel m2 = new SpinnerDateModel();
+    MyJSpinner s2 = new MyJSpinner(m2);
+    JComponent e2 = s2.createEditor(m2);
+    harness.check(e2 instanceof JSpinner.DateEditor);
+    // no listeners added to the editor yet
+    EventListener[] e2l = e2.getListeners(ChangeListener.class);
+    harness.check(e2l.length, 0);
+    
+    SpinnerModel m3 = new SpinnerListModel();
+    MyJSpinner s3 = new MyJSpinner(m3);
+    JComponent e3 = s3.createEditor(m3);
+    harness.check(e3 instanceof JSpinner.ListEditor);
+    // no listeners added to the editor yet
+    EventListener[] e3l = e3.getListeners(ChangeListener.class);
+    harness.check(e3l.length, 0);
+    
+    // try null argument
+    e3 = s3.createEditor(null);  
+    harness.check(e3 instanceof JSpinner.DefaultEditor);
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/getChangeListeners.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/getChangeListeners.java
diff -N gnu/testlet/javax/swing/JSpinner/getChangeListeners.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/getChangeListeners.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,64 @@
+/* getChangeListeners.java -- Checks for the getChangeListeners() method in the
+                              JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.JSpinner;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+public class getChangeListeners implements Testlet, ChangeListener 
+{
+  List events = new java.util.ArrayList();
+  
+  public void stateChanged(ChangeEvent event) 
+  {
+    this.events.add(event);    
+  }
+  
+  public void test(TestHarness harness)
+  {
+    harness.checkPoint("()");
+    JSpinner s = new JSpinner();
+    ChangeListener[] cl = s.getChangeListeners();
+    harness.check(cl.length, 1);
+    harness.check(cl[0], s.getEditor());
+    
+    s.addChangeListener(this);
+    cl = s.getChangeListeners();
+    harness.check(cl.length, 2);
+    harness.check(Arrays.asList(cl).contains(this));
+    
+    s.removeChangeListener(this);    
+    cl = s.getChangeListeners();
+    harness.check(cl.length, 1);
+    harness.check(!Arrays.asList(cl).contains(this));
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/getEditor.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/getEditor.java
diff -N gnu/testlet/javax/swing/JSpinner/getEditor.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/getEditor.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,44 @@
+/* getEditor.java -- Checks for the getEditor() method in the JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import javax.swing.JSpinner;
+
+public class getEditor implements Testlet
+{
+    
+  public void test(TestHarness harness)
+  {
+    harness.checkPoint("()");
+    JSpinner s = new JSpinner();
+    JSpinner.NumberEditor e = new JSpinner.NumberEditor(s);
+    s.setEditor(e);
+    harness.check(s.getEditor(), e);
+  }
+
+}
+
Index: gnu/testlet/javax/swing/JSpinner/getModel.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/getModel.java
diff -N gnu/testlet/javax/swing/JSpinner/getModel.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/getModel.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,44 @@
+/* getModel.java -- Checks for the getModel() method in the JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import javax.swing.JSpinner;
+import javax.swing.SpinnerDateModel;
+
+public class getModel implements Testlet
+{
+  
+   public void test(TestHarness harness) 
+   {
+     harness.checkPoint("()");
+     JSpinner s = new JSpinner();
+     SpinnerDateModel m = new SpinnerDateModel();
+     s.setModel(m);
+     harness.check(s.getModel(), m);
+   }
+   
+}
Index: gnu/testlet/javax/swing/JSpinner/getNextValue.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/getNextValue.java
diff -N gnu/testlet/javax/swing/JSpinner/getNextValue.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/getNextValue.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,51 @@
+/* getNextValue.java -- some checks for the getNextValue() method in the
+                        JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+
+public class getNextValue implements Testlet {
+
+  
+  public void test(TestHarness harness) 
+  {
+    harness.checkPoint("()");
+    SpinnerNumberModel m = new SpinnerNumberModel(2.0, 1.0, 3.0, 0.5);
+    JSpinner s = new JSpinner(m);
+    harness.check(s.getValue(), new Double(2.0));
+    harness.check(s.getNextValue(), new Double(2.5));
+    
+    // accessing the next value doesn't update the current value
+    harness.check(s.getValue(), new Double(2.0));
+    s.setValue(new Double(2.5));
+    harness.check(s.getNextValue(), new Double(3.0));
+    s.setValue(new Double(3.0));
+    harness.check(s.getNextValue(), null);
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/getPreviousValue.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/getPreviousValue.java
diff -N gnu/testlet/javax/swing/JSpinner/getPreviousValue.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/getPreviousValue.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,50 @@
+/* getPreviousValue.java -- some checks for the getPreviousValue() method in the
+                            JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+
+public class getPreviousValue implements Testlet {
+
+  
+  public void test(TestHarness harness) 
+  {
+    harness.checkPoint("()");
+    SpinnerNumberModel m = new SpinnerNumberModel(2.0, 1.0, 3.0, 0.5);
+    JSpinner s = new JSpinner(m);
+    harness.check(s.getValue(), new Double(2.0));
+    harness.check(s.getPreviousValue(), new Double(1.5));
+    // accessing the previous value doesn't update the current value
+    harness.check(s.getValue(), new Double(2.0));
+    s.setValue(new Double(1.5));
+    harness.check(s.getPreviousValue(), new Double(1.0));
+    s.setValue(new Double(1.0));
+    harness.check(s.getPreviousValue(), null);
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/getUIClassID.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/getUIClassID.java
diff -N gnu/testlet/javax/swing/JSpinner/getUIClassID.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/getUIClassID.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,40 @@
+/* getUIClassID.java -- Checks for the getUIClassID() method in the JSpinner
+                        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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import javax.swing.JSpinner;
+
+public class getUIClassID implements Testlet 
+{
+  public void test(TestHarness harness) 
+  {
+    harness.checkPoint("()");
+    JSpinner s = new JSpinner();
+    harness.check(s.getUIClassID(), "SpinnerUI");
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/removeChangeListener.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/removeChangeListener.java
diff -N gnu/testlet/javax/swing/JSpinner/removeChangeListener.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/removeChangeListener.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,73 @@
+/* removeChangeListener.java -- Checks for the removeChangeListener() method in 
+                                the JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.List;
+
+import javax.swing.JSpinner;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+public class removeChangeListener implements Testlet, ChangeListener 
+{
+  List events = new java.util.ArrayList();
+  
+  public void stateChanged(ChangeEvent event) 
+  {
+    this.events.add(event);    
+  }
+  
+  public void test(TestHarness harness)
+  {
+    harness.checkPoint("(ChangeListener)");
+    JSpinner s = new JSpinner();
+    s.addChangeListener(this);
+    s.getModel().setValue(new Integer(11));
+    harness.check(events.size(), 1);
+    ChangeEvent e = (ChangeEvent) events.get(0);
+    harness.check(e.getSource(), s);
+    
+    // now remove the listener and repeat
+    events.clear();
+    s.removeChangeListener(this);
+    s.getModel().setValue(new Integer(22));
+    harness.check(events.size(), 0);
+    
+    // try null listener - it is permitted
+    boolean pass = true;
+    try
+    {
+      s.removeChangeListener(null);
+    }
+    catch (NullPointerException npe)
+    {
+      pass = false;
+    }
+    harness.check(pass);
+  }
+}
Index: gnu/testlet/javax/swing/JSpinner/setEditor.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/setEditor.java
diff -N gnu/testlet/javax/swing/JSpinner/setEditor.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/setEditor.java	15 Feb 2006 14:33:26 -0000
@@ -0,0 +1,87 @@
+/* setEditor.java -- Checks for the setEditor() method in the JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Arrays;
+import java.util.EventListener;
+import java.util.List;
+
+import javax.swing.JComponent;
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.event.ChangeListener;
+
+public class setEditor implements Testlet, PropertyChangeListener 
+{
+
+   List events = new java.util.ArrayList();
+   
+   public void propertyChange(PropertyChangeEvent e) 
+   {
+     events.add(e);
+   }
+    
+  public void test(TestHarness harness)
+  {
+    harness.checkPoint("(JComponent)");
+    JSpinner s = new JSpinner();
+    s.addPropertyChangeListener(this);
+    JComponent e = s.getEditor();
+    SpinnerNumberModel m = (SpinnerNumberModel) s.getModel();
+    
+    EventListener[] l1 = s.getListeners(ChangeListener.class);
+    harness.check(Arrays.asList(l1).contains(e));
+    harness.check(!Arrays.asList(l1).contains(m));
+
+    JSpinner.NumberEditor e2 = new JSpinner.NumberEditor(s);
+    s.setEditor(e2);
+    harness.check(s.getEditor(), e2);
+    harness.check(events.size(), 1);
+    PropertyChangeEvent pce = (PropertyChangeEvent) events.get(0);
+    harness.check(pce.getPropertyName(), "editor");
+    harness.check(pce.getOldValue(), e);
+    harness.check(pce.getNewValue(), e2);
+    l1 = s.getListeners(ChangeListener.class);
+    harness.check(Arrays.asList(l1).contains(e2));
+    harness.check(!Arrays.asList(l1).contains(e));
+    
+    // try null argument
+    boolean pass = false;
+    try
+      {
+        s.setEditor(null);
+      }
+    catch (IllegalArgumentException iae)
+      {
+        pass = true;
+      }
+    harness.check(pass);
+  }
+
+}
Index: gnu/testlet/javax/swing/JSpinner/setModel.java
===================================================================
RCS file: gnu/testlet/javax/swing/JSpinner/setModel.java
diff -N gnu/testlet/javax/swing/JSpinner/setModel.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/javax/swing/JSpinner/setModel.java	15 Feb 2006 14:33:27 -0000
@@ -0,0 +1,85 @@
+/* setModel.java -- Checks for the setModel() method in the JSpinner 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.4
+
+package gnu.testlet.javax.swing.JSpinner;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import javax.swing.JSpinner;
+import javax.swing.SpinnerDateModel;
+import javax.swing.SpinnerNumberModel;
+
+public class setModel implements Testlet, PropertyChangeListener 
+{
+   List events = new java.util.ArrayList();
+   
+   public void propertyChange(PropertyChangeEvent e) 
+   {
+     events.add(e);
+   }
+   
+   public void test(TestHarness harness) 
+   {
+     harness.checkPoint("(SpinnerModel)");
+     JSpinner s = new JSpinner();
+     harness.check(s.getEditor() instanceof JSpinner.NumberEditor);
+     s.addPropertyChangeListener(this);
+     SpinnerDateModel m = new SpinnerDateModel();
+     s.setModel(m);
+     harness.check(s.getModel(), m);
+     harness.check(events.size(), 2);
+     PropertyChangeEvent e1 = (PropertyChangeEvent) events.get(0);
+     harness.check(e1.getPropertyName(), "model");
+     harness.check(e1.getSource(), s);
+     harness.check(e1.getNewValue(), m);
+     harness.check(e1.getOldValue() instanceof SpinnerNumberModel);
+     PropertyChangeEvent e2 = (PropertyChangeEvent) events.get(1);
+     harness.check(e2.getPropertyName(), "editor");
+     harness.check(e2.getSource(), s);
+     harness.check(e2.getNewValue() instanceof JSpinner.DateEditor);
+     harness.check(e2.getOldValue() instanceof JSpinner.NumberEditor);
+   
+     // setting the same model generates no event
+     events.clear();
+     s.setModel(m);
+     harness.check(events.size(), 0);
+     
+     // try null argument
+     boolean pass = false;
+     try
+       {
+         s.setModel(null);
+       }
+     catch (IllegalArgumentException e) 
+       {
+         pass = true;
+       }
+     harness.check(pass);
+   }
+   
+}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-02-15 14:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-15 14:42 FYI: JSpinner tests David Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).