/* * $Id$ * * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle, * Santa Clara, California 95054, U.S.A. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ package org.jdesktop.swingx; import java.util.logging.Logger; import javax.swing.AbstractButton; import javax.swing.UIManager; import javax.swing.tree.TreeCellRenderer; import org.jdesktop.swingx.calendar.DatePickerFormatter; import org.jdesktop.swingx.renderer.DefaultTreeRenderer; import org.jdesktop.test.SerializableSupport; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Test serializable of all SwingX components. * * @author Jeanette Winzenburg */ @RunWith(JUnit4.class) public class SerializableTest extends InteractiveTestCase { @SuppressWarnings("unused") private static final Logger LOG = Logger .getLogger(SerializableTest.class.getName()); /** * Issue #423-swingx: all descendants of JComponent must be * serializable. * * Regression after painter merge: JXPanel$1 * is not serializable. * */ @Test public void testPanel() { JXPanel component = new JXPanel(); try { SerializableSupport.serialize(component); } catch (Exception e) { fail("not serializable " + e); } } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. * * */ @Test public void testRootPane() { JXRootPane component = new JXRootPane(); try { SerializableSupport.serialize(component); } catch (Exception e) { fail("not serializable " + e); } } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. <p> * * Regression for titled separator after painter merge: JXPanel$1 * is not serializable. * */ @Test public void testTitledSeparator() { JXTitledSeparator component = new JXTitledSeparator(); try { SerializableSupport.serialize(component); } catch (Exception e) { fail("not serializable " + e); } } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. <p> * * Regression for DefaultTreeRenderer after painter merge: JXPanel$1 * is not serializable. * */ @Test public void testSerializeTreeRenderer() { TreeCellRenderer xListRenderer = new DefaultTreeRenderer(); try { SerializableSupport.serialize(xListRenderer); } catch (Exception e) { fail("not serializable " + e); } } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. <p> * */ @Test public void testDatePickerFormatter() { DatePickerFormatter component = new DatePickerFormatter(); try { SerializableSupport.serialize(component); } catch (Exception e) { fail("not serializable " + e); } } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. <p> * * Note: this blows as soon as a JXTable is set! */ @Test public void testTableHeader() throws Exception { JXTableHeader component = new JXTableHeader(); if (javax.swing.plaf.synth.SynthLookAndFeel.class.isAssignableFrom(Class.forName(UIManager.getSystemLookAndFeelClassName()))) { LOG.warning("Table header is not serializable on Linux when using Synth or derived LaFs due to javax.swing.plaf.synth.SynthLabelUI being non serializable."); return; } SerializableSupport.serialize(component); } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. * * */ @Test public void testRadioGroup() { JXRadioGroup<?> component = new JXRadioGroup<AbstractButton>(); try { SerializableSupport.serialize(component); } catch (Exception e) { fail("not serializable " + e); } } /** * Issue #423-swingx: all descendants of JComponent must be * serializable. <p> * */ @Test public void testHyperlink() { JXHyperlink component = new JXHyperlink(); try { SerializableSupport.serialize(component); } catch (Exception e) { fail("not serializable " + e); } } }