Package javax.swing.plaf.metal

Source Code of javax.swing.plaf.metal.MetalBordersTest

/*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
/**
* @author Sergey Burlak
* @version $Revision$
*/
package javax.swing.plaf.metal;

import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.SwingTestCase;
import javax.swing.border.AbstractBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.MatteBorder;
import javax.swing.plaf.BorderUIResource;
import javax.swing.plaf.ColorUIResource;
import javax.swing.plaf.basic.BasicBorders;
import javax.swing.plaf.metal.MetalBorders.ButtonBorder;
import javax.swing.plaf.metal.MetalBorders.MenuBarBorder;
import javax.swing.plaf.metal.MetalBorders.MenuItemBorder;
import javax.swing.plaf.metal.MetalBorders.PopupMenuBorder;

public class MetalBordersTest extends SwingTestCase {
    public void testButtonBorderClass() {
        MetalBorders.ButtonBorder border = new MetalBorders.ButtonBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(3, 3, 3, 3), border.getBorderInsets(newJComponent()));
        assertSame(ButtonBorder.borderInsets, border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testFlush3DBorderClass() {
        MetalBorders.Flush3DBorder border = new MetalBorders.Flush3DBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(2, 2, 2, 2), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testInternalFrameBorderClass() {
        MetalBorders.InternalFrameBorder border = new MetalBorders.InternalFrameBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(5, 5, 5, 5), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testFrameBorderClass() {
        MetalBorders.FrameBorder border = new MetalBorders.FrameBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(5, 5, 5, 5), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testMenuBarBorderClass() {
        MetalBorders.MenuBarBorder border = new MetalBorders.MenuBarBorder();
        assertFalse(border.isBorderOpaque());
        if (isHarmony()) {
            assertEquals(new Insets(1, 0, 1, 0), border.getBorderInsets(newJComponent()));
            assertSame(MenuBarBorder.borderInsets, border.getBorderInsets(newJComponent()));
        } else {
            assertEquals(new Insets(1, 0, 1, 0), MenuBarBorder.borderInsets);
            assertNotSame(border.getBorderInsets(newJComponent()), border
                    .getBorderInsets(newJComponent()));
            assertEquals(new Insets(0, 0, 2, 0), border.getBorderInsets(newJComponent()));
            assertEquals(border.getBorderInsets(newJComponent()), border.getBorderInsets(
                    newJComponent(), new Insets(0, 0, 0, 0)));
        }
        checkInsets(border);
    }

    public void testMenuItemBorder() {
        MetalBorders.MenuItemBorder border = new MetalBorders.MenuItemBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(2, 2, 2, 2), MenuItemBorder.borderInsets);
        assertTrue(MenuItemBorder.borderInsets == border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testOptionDialogBorderClass() {
        MetalBorders.OptionDialogBorder border = new MetalBorders.OptionDialogBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(3, 3, 3, 3), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testPaletteBorderClass() {
        MetalBorders.PaletteBorder border = new MetalBorders.PaletteBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(1, 1, 1, 1), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testPopupMenuBorderClass() {
        MetalBorders.PopupMenuBorder border = new MetalBorders.PopupMenuBorder();
        assertFalse(border.isBorderOpaque());
        if (isHarmony()) {
            assertEquals(new Insets(2, 2, 1, 1), PopupMenuBorder.borderInsets);
        } else {
            assertEquals(new Insets(3, 1, 2, 1), PopupMenuBorder.borderInsets);
        }
        assertTrue(PopupMenuBorder.borderInsets == border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testRolloverButtonBorderClass() {
        MetalBorders.RolloverButtonBorder border = new MetalBorders.RolloverButtonBorder();
        assertFalse(border.isBorderOpaque());
        assertTrue(ButtonBorder.borderInsets == border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testScrollPaneBorderClass() {
        MetalBorders.ScrollPaneBorder border = new MetalBorders.ScrollPaneBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(1, 1, 2, 2), border.getBorderInsets(newJComponent()));
        assertSame(border.getBorderInsets(newJComponent()), border
                .getBorderInsets(newJComponent()));
        Insets ins = new Insets(0, 1, 0, 2);
        border.getBorderInsets(newJComponent(), ins);
        assertEquals(ins, new Insets(0, 0, 0, 0));
    }

    public void testTableHeaderBorderClass() {
        MetalBorders.TableHeaderBorder border = new MetalBorders.TableHeaderBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(2, 2, 2, 0), border.editorBorderInsets);
        assertTrue(border.editorBorderInsets == border.getBorderInsets(newJComponent()));
        Insets ins = new Insets(0, 1, 0, 2);
        border.getBorderInsets(newJComponent(), ins);
        assertEquals(ins, new Insets(0, 0, 0, 0));
    }

    public void testTextFieldBorderClass() {
        MetalBorders.TextFieldBorder border = new MetalBorders.TextFieldBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(2, 2, 2, 2), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testToggleButtonBorderClass() {
        MetalBorders.ToggleButtonBorder border = new MetalBorders.ToggleButtonBorder();
        assertFalse(border.isBorderOpaque());
        assertTrue(ButtonBorder.borderInsets == border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testToolBarBorderClass() {
        JToolBar testToolBar = new JToolBar();
        MetalBorders.ToolBarBorder border = new MetalBorders.ToolBarBorder();
        assertFalse(border.isBorderOpaque());
        if (isHarmony()) {
            assertEquals(new Insets(2, 16, 2, 2), border.getBorderInsets(testToolBar));
        } else {
            assertEquals(new Insets(1, 16, 3, 2), border.getBorderInsets(testToolBar));
        }
        testToolBar.setOrientation(SwingConstants.VERTICAL);
        if (isHarmony()) {
            assertEquals(new Insets(16, 2, 2, 2), border.getBorderInsets(testToolBar));
        } else {
            assertEquals(new Insets(16, 2, 3, 2), border.getBorderInsets(testToolBar));
        }
        testToolBar.setFloatable(false);
        if (isHarmony()) {
            assertEquals(new Insets(2, 2, 2, 2), border.getBorderInsets(testToolBar));
        } else {
            assertEquals(new Insets(1, 2, 3, 2), border.getBorderInsets(testToolBar));
        }
        testToolBar.setOrientation(SwingConstants.HORIZONTAL);
        if (isHarmony()) {
            assertEquals(new Insets(2, 2, 2, 2), border.getBorderInsets(testToolBar));
        } else {
            assertEquals(new Insets(1, 2, 3, 2), border.getBorderInsets(testToolBar));
        }
        try {
            border.getBorderInsets(new JButton());
            fail("should throw ClassCastException");
        } catch (ClassCastException e) {
            // Expected
        }
        checkInsets(border, testToolBar);
    }

    public void testGetToggleButtonBorder() {
        JComponent testButton = newJComponent();
        assertTrue(MetalBorders.getToggleButtonBorder() instanceof BorderUIResource.CompoundBorderUIResource);
        BorderUIResource.CompoundBorderUIResource border = (BorderUIResource.CompoundBorderUIResource) MetalBorders
                .getToggleButtonBorder();
        assertTrue(border.getInsideBorder() instanceof BasicBorders.MarginBorder);
        BasicBorders.MarginBorder insideBorder = (BasicBorders.MarginBorder) border
                .getInsideBorder();
        assertTrue(border.getOutsideBorder() instanceof MetalBorders.ToggleButtonBorder);
        MetalBorders.ToggleButtonBorder outsideBorder = (MetalBorders.ToggleButtonBorder) border
                .getOutsideBorder();
        //        assertEquals(new Insets(2, 14, 2, 14), insideBorder.getBorderInsets(testButton));
        assertEquals(new Insets(3, 3, 3, 3), outsideBorder.getBorderInsets(testButton));
        assertFalse(insideBorder.isBorderOpaque());
        assertFalse(outsideBorder.isBorderOpaque());
    }

    public void testGetTextFieldBorder() {
        JComponent testButton = newJComponent();
        assertTrue(MetalBorders.getTextFieldBorder() instanceof BorderUIResource.CompoundBorderUIResource);
        BorderUIResource.CompoundBorderUIResource border = (BorderUIResource.CompoundBorderUIResource) MetalBorders
                .getTextFieldBorder();
        assertTrue(border.getInsideBorder() instanceof BasicBorders.MarginBorder);
        BasicBorders.MarginBorder insideBorder = (BasicBorders.MarginBorder) border
                .getInsideBorder();
        assertTrue(border.getOutsideBorder() instanceof MetalBorders.TextFieldBorder);
        MetalBorders.TextFieldBorder outsideBorder = (MetalBorders.TextFieldBorder) border
                .getOutsideBorder();
        //        assertEquals(new Insets(2, 14, 2, 14), insideBorder.getBorderInsets(testButton));
        assertEquals(new Insets(2, 2, 2, 2), outsideBorder.getBorderInsets(testButton));
        assertFalse(insideBorder.isBorderOpaque());
        assertFalse(outsideBorder.isBorderOpaque());
    }

    public void testGetTextBorder() {
        JComponent testButton = newJComponent();
        assertTrue(MetalBorders.getTextBorder() instanceof BorderUIResource.CompoundBorderUIResource);
        BorderUIResource.CompoundBorderUIResource border = (BorderUIResource.CompoundBorderUIResource) MetalBorders
                .getTextBorder();
        assertTrue(border.getInsideBorder() instanceof BasicBorders.MarginBorder);
        BasicBorders.MarginBorder insideBorder = (BasicBorders.MarginBorder) border
                .getInsideBorder();
        assertTrue(border.getOutsideBorder() instanceof MetalBorders.Flush3DBorder);
        MetalBorders.Flush3DBorder outsideBorder = (MetalBorders.Flush3DBorder) border
                .getOutsideBorder();
        //        assertEquals(new Insets(2, 14, 2, 14), insideBorder.getBorderInsets(testButton));
        assertEquals(new Insets(2, 2, 2, 2), outsideBorder.getBorderInsets(testButton));
        assertFalse(insideBorder.isBorderOpaque());
        assertFalse(outsideBorder.isBorderOpaque());
    }

    public void testGetDesktopIconBorder() {
        JComponent testButton = newJComponent();
        assertTrue(MetalBorders.getDesktopIconBorder() instanceof BorderUIResource.CompoundBorderUIResource);
        BorderUIResource.CompoundBorderUIResource border = (BorderUIResource.CompoundBorderUIResource) MetalBorders
                .getDesktopIconBorder();
        assertTrue(border.getInsideBorder() instanceof MatteBorder);
        MatteBorder insideBorder = (MatteBorder) border.getInsideBorder();
        assertTrue(border.getOutsideBorder() instanceof LineBorder);
        LineBorder outsideBorder = (LineBorder) border.getOutsideBorder();
        assertEquals(new Insets(2, 2, 1, 2), insideBorder.getBorderInsets(testButton));
        assertEquals(new Insets(1, 1, 1, 1), outsideBorder.getBorderInsets(testButton));
        assertTrue(insideBorder.isBorderOpaque());
        assertEquals(new ColorUIResource(238, 238, 238), insideBorder.getMatteColor());
        assertFalse(outsideBorder.getRoundedCorners());
        assertTrue(outsideBorder.isBorderOpaque());
        assertEquals(new ColorUIResource(122, 138, 153), outsideBorder.getLineColor());
        assertEquals(1, outsideBorder.getThickness());
    }

    public void testGetButtonBorder() {
        JComponent testButton = newJComponent();
        assertTrue(MetalBorders.getButtonBorder() instanceof BorderUIResource.CompoundBorderUIResource);
        BorderUIResource.CompoundBorderUIResource border = (BorderUIResource.CompoundBorderUIResource) MetalBorders
                .getButtonBorder();
        assertTrue(border.getInsideBorder() instanceof BasicBorders.MarginBorder);
        assertTrue(border.getOutsideBorder() instanceof MetalBorders.ButtonBorder);
        MetalBorders.ButtonBorder outsideBorder = (MetalBorders.ButtonBorder) border
                .getOutsideBorder();
        //        assertEquals(new Insets(2, 14, 2, 14), insideBorder.getBorderInsets(testButton));
        assertEquals(new Insets(3, 3, 3, 3), outsideBorder.getBorderInsets(testButton));
        assertTrue(ButtonBorder.borderInsets == outsideBorder.getBorderInsets(testButton));
        assertFalse(outsideBorder.isBorderOpaque());
    }

    public void testDialogBorder() throws Exception {
        MetalBorders.DialogBorder border = new MetalBorders.DialogBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(5, 5, 5, 5), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testQuestionDialogBorder() throws Exception {
        MetalBorders.DialogBorder border = new MetalBorders.DialogBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(5, 5, 5, 5), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testWarningDialogBorder() throws Exception {
        MetalBorders.DialogBorder border = new MetalBorders.DialogBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(5, 5, 5, 5), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    public void testErrorDialogBorder() throws Exception {
        MetalBorders.DialogBorder border = new MetalBorders.DialogBorder();
        assertFalse(border.isBorderOpaque());
        assertEquals(new Insets(5, 5, 5, 5), border.getBorderInsets(newJComponent()));
        checkInsets(border);
    }

    private void checkInsets(final AbstractBorder border) {
        checkInsets(border, newJComponent());
    }

    private void checkInsets(final AbstractBorder border, final JComponent c) {
        Insets ins = new Insets(100, 100, 100, 100);
        border.getBorderInsets(c, ins);
        assertEquals(border.getBorderInsets(c), ins);
    }

    private JComponent newJComponent() {
        return new JComponent() {
            private static final long serialVersionUID = 1L;
        };
    }
}
TOP

Related Classes of javax.swing.plaf.metal.MetalBordersTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.