/*
* $Id$
*
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
* Santa Clara, California 95054, U.S.A. All rights reserved.
*/
package org.jdesktop.swingx;
import java.awt.Dimension;
import javax.swing.JLabel;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
/**
*
* @author rbair
*/
@RunWith(JUnit4.class)
public class JXStatusBarTest extends junit.framework.TestCase {
/**
* This test ensures that after the LAF is switched, the Border and
* LayoutManager are still in valid states.
*/
@Test
public void testLAFSwitch() throws Exception {
//create a status bar with a single child, a label.
//ensure that after switching look and feels, the layout manager
//on the status bar still references the label
JXStatusBar bar = new JXStatusBar();
JLabel label = new JLabel("Hello");
bar.add(label);
Dimension dim = bar.getLayout().preferredLayoutSize(bar);
toggleLAF();
toggleLAF();
assertEquals(dim, bar.getLayout().preferredLayoutSize(bar));
}
private void toggleLAF() throws Exception {
LookAndFeel laf = UIManager.getLookAndFeel();
if (laf == null || laf.getName().equals(UIManager.getSystemLookAndFeelClassName())) {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} else {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
}
}