Package javax.swing.plaf.basic

Source Code of javax.swing.plaf.basic.BasicMenuUITest

/*
*  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 Alexander T. Simbirtsev
* @version $Revision$
*/
package javax.swing.plaf.basic;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.SwingTestCase;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.plaf.BorderUIResource;
import javax.swing.plaf.ColorUIResource;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.FontUIResource;
import javax.swing.plaf.InsetsUIResource;

public class BasicMenuUITest extends SwingTestCase {
    protected BasicMenuUI menuUI;

    private Icon oldArrow;

    private Icon oldCheck;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        menuUI = new BasicMenuUI();
        oldArrow = UIManager.getIcon("Menu.arrowIcon");
        oldCheck = UIManager.getIcon("Menu.checkIcon");
    }

    @Override
    protected void tearDown() throws Exception {
        menuUI = null;
        UIManager.put("Menu.arrowIcon", oldArrow);
        UIManager.put("Menu.checkIcon", oldCheck);
        super.tearDown();
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.getMaximumSize(JComponent)'
     */
    public void testGetMaximumSize() {
        JMenuBar bar = new JMenuBar();
        JMenu menu1 = new JMenu();
        menu1.setUI(menuUI);
        assertNull(menuUI.getMaximumSize(menu1));
        bar.add(menu1);
        assertEquals(menuUI.getPreferredSize(menu1).width, menuUI.getMaximumSize(menu1).width);
        assertEquals(Short.MAX_VALUE, menuUI.getMaximumSize(menu1).height);
        menu1.setPreferredSize(new Dimension(1000, 1000));
        assertEquals(1000, menuUI.getMaximumSize(menu1).width);
        assertEquals(Short.MAX_VALUE, menuUI.getMaximumSize(menu1).height);
        testExceptionalCase(new NullPointerCase() {
            @Override
            public void exceptionalAction() throws Exception {
                new BasicMenuUI().getMaximumSize(null);
            }
        });
        testExceptionalCase(new NullPointerCase() {
            @Override // Regression for HARMONY-2663
            public void exceptionalAction() throws Exception {
                new BasicMenuUI().getMaximumSize(new JOptionPane());
            }
        });
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createUI(JComponent)'
     */
    public void testCreateUI() {
        ComponentUI ui1 = BasicMenuUI.createUI(null);
        ComponentUI ui2 = BasicMenuUI.createUI(null);
        assertTrue(ui1 instanceof BasicMenuUI);
        assertNotSame(ui1, ui2);
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.getPropertyPrefix()'
     */
    public void testGetPropertyPrefix() {
        assertEquals("Menu", menuUI.getPropertyPrefix());
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.installDefaults()'
     */
    public void testInstallUninstallDefaults() {
        JMenu menu = new JMenu();
        UIManager.getDefaults().put("Menu.background", new ColorUIResource(Color.red));
        UIManager.getDefaults().put("Menu.foreground", new ColorUIResource(Color.yellow));
        UIManager.getDefaults().put("Menu.acceleratorForeground",
                new ColorUIResource(Color.cyan));
        UIManager.getDefaults().put("Menu.acceleratorSelectionForeground",
                new ColorUIResource(Color.magenta));
        UIManager.getDefaults().put("Menu.selectionBackground",
                new ColorUIResource(Color.green));
        UIManager.getDefaults()
                .put("Menu.selectionForeground", new ColorUIResource(Color.pink));
        UIManager.getDefaults().put("Menu.disabledForeground",
                new ColorUIResource(Color.orange));
        Font font = new FontUIResource(menu.getFont().deriveFont(100f));
        UIManager.getDefaults().put("Menu.font", font);
        Border border = new BorderUIResource(BorderFactory.createEmptyBorder(0, 0, 0, 0));
        UIManager.getDefaults().put("Menu.border", border);
        Insets margin = new InsetsUIResource(1, 2, 3, 4);
        UIManager.getDefaults().put("Menu.margin", margin);
        Icon arrow = new ImageIcon(new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB));
        UIManager.getDefaults().put("Menu.arrowIcon", arrow);
        Icon check = new ImageIcon(new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB));
        UIManager.getDefaults().put("Menu.checkIcon", check);
        menu.setUI(menuUI);
        menuUI.installDefaults();
        assertEquals(Color.red, menu.getBackground());
        assertEquals(Color.yellow, menu.getForeground());
        assertEquals(font, menu.getFont());
        assertEquals(border, menu.getBorder());
        assertEquals(margin, menu.getMargin());
        assertEquals(4, menuUI.defaultTextIconGap);
        assertTrue(menuUI.oldBorderPainted);
        assertEquals(Color.cyan, menuUI.acceleratorForeground);
        assertEquals(Color.magenta, menuUI.acceleratorSelectionForeground);
        assertEquals(Color.green, menuUI.selectionBackground);
        assertEquals(Color.pink, menuUI.selectionForeground);
        assertEquals(Color.orange, menuUI.disabledForeground);
        assertEquals(arrow, menuUI.arrowIcon);
        assertEquals(check, menuUI.checkIcon);
        if (isHarmony()) {
            assertFalse(menu.isOpaque());
        }
        menuUI.uninstallDefaults();
        assertNull(menu.getBackground());
        assertNull(menu.getForeground());
        assertNull(menu.getFont());
        assertNull(menu.getBorder());
        // Assertion below has been deleted because now we are compartible with
        // RI in this point. For details see HARMONY-4655
        // assertNull(menu.getMargin());
        assertEquals(4, menuUI.defaultTextIconGap);
        assertTrue(menuUI.oldBorderPainted);
        assertEquals(Color.cyan, menuUI.acceleratorForeground);
        assertEquals(Color.magenta, menuUI.acceleratorSelectionForeground);
        assertEquals(Color.green, menuUI.selectionBackground);
        assertEquals(Color.pink, menuUI.selectionForeground);
        assertEquals(Color.orange, menuUI.disabledForeground);
        assertEquals(arrow, menuUI.arrowIcon);
        assertEquals(check, menuUI.checkIcon);
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.installListeners()'
     */
    public void testInstallUninstallListeners() {
        JMenu menu = new JMenu();
        menuUI = (BasicMenuUI) menu.getUI();
        menuUI.uninstallListeners();
        assertEquals(0, menu.getMenuDragMouseListeners().length);
        assertEquals(0, menu.getMenuKeyListeners().length);
        assertEquals(0, menu.getPropertyChangeListeners().length);
        assertEquals(0, menu.getMouseMotionListeners().length);
        assertEquals(0, menu.getMouseListeners().length);
        assertEquals(0, menu.getChangeListeners().length);
        assertNull(menuUI.mouseInputListener);
        assertNull(menuUI.menuKeyListener);
        assertNull(menuUI.menuDragMouseListener);
        menuUI.menuItem = menu;
        menuUI.installListeners();
        assertNull(menuUI.changeListener);
        assertNull(menuUI.menuListener);
        assertNotNull(menuUI.propertyChangeListener);
        assertNotNull(menuUI.mouseInputListener);
        if (!isHarmony()) {
            assertNotNull(menuUI.menuKeyListener);
        }
        assertNotNull(menuUI.menuDragMouseListener);
        assertSame(menuUI.menuDragMouseListener, menu.getMenuDragMouseListeners()[0]);
        if (!isHarmony()) {
            assertSame(menuUI.menuKeyListener, menu.getMenuKeyListeners()[0]);
        }
        assertSame(menuUI.propertyChangeListener, menu.getPropertyChangeListeners()[0]);
        assertSame(menuUI.mouseInputListener, menu.getMouseMotionListeners()[0]);
        assertSame(menuUI.mouseInputListener, menu.getMouseListeners()[0]);
        menuUI.uninstallListeners();
        assertNull(menuUI.propertyChangeListener);
        assertNull(menuUI.mouseInputListener);
        assertNull(menuUI.menuKeyListener);
        assertNull(menuUI.menuDragMouseListener);
        assertEquals(0, menu.getMenuDragMouseListeners().length);
        assertEquals(0, menu.getMenuKeyListeners().length);
        assertEquals(0, menu.getPropertyChangeListeners().length);
        assertEquals(0, menu.getMouseMotionListeners().length);
        assertEquals(0, menu.getMouseListeners().length);
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.installKeyboardActions()'
     */
    public void testInstallUninstallKeyboardActions() {
        JMenu menu = new JMenu();
        menu.setUI(menuUI);
        menuUI.uninstallKeyboardActions();
        assertEquals("RegisteredKeyStrokes", 0, menu.getRegisteredKeyStrokes().length);
        menuUI.installKeyboardActions();
        if (isHarmony()) {
            assertEquals(14, menu.getActionMap().allKeys().length);
            assertEquals(1, menu.getActionMap().getParent().keys().length);
        } else {
            assertEquals(15, menu.getActionMap().allKeys().length);
            assertEquals(2, menu.getActionMap().getParent().keys().length);
        }
        menuUI.uninstallKeyboardActions();
        if (isHarmony()) {
            assertEquals(0, menu.getActionMap().allKeys().length);
        } else {
            assertNull(menu.getActionMap().allKeys());
        }
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createMouseInputListener(JComponent)'
     */
    public void testCreateMouseInputListener() {
        assertNotNull(menuUI.createMouseInputListener(null));
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createMenuDragMouseListener(JComponent)'
     */
    public void testCreateMenuDragMouseListener() {
        assertNotNull(menuUI.createMenuDragMouseListener(null));
        if (isHarmony()) {
            assertSame(menuUI.createMenuDragMouseListener(null), menuUI
                    .createMenuDragMouseListener(null));
        }
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createMenuKeyListener(JComponent)'
     */
    public void testCreateMenuKeyListener() {
        if (isHarmony()) {
            assertNull(menuUI.createMenuKeyListener(null));
            assertSame(menuUI.createMenuKeyListener(null), menuUI.createMenuKeyListener(null));
        } else {
            assertNotNull(menuUI.createMenuKeyListener(null));
        }
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.BasicMenuUI()'
     */
    public void testBasicMenuUI() {
        assertNull(menuUI.changeListener);
        assertNull(menuUI.menuListener);
        assertNull(menuUI.propertyChangeListener);
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createChangeListener(JComponent)'
     */
    public void testCreateChangeListener() {
        assertNull(menuUI.createChangeListener(null));
        assertNull(menuUI.createChangeListener(new JMenu()));
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createMenuListener(JComponent)'
     */
    public void testCreateMenuListener() {
        if (!isHarmony()) {
            return;
        }
        // Updated for regression of HARMONY-2663
        assertNull(menuUI.createMenuListener(null));
        assertNull(menuUI.createMenuListener(new JMenu()));
    }

    /*
     * Test method for 'javax.swing.plaf.basic.BasicMenuUI.createPropertyChangeListener(JComponent)'
     */
    public void testCreatePropertyChangeListener() {
        assertNotNull(menuUI.createPropertyChangeListener(null));
    }

    public void testInstallUninstallUI() {
        JMenu item = new JMenu();
        menuUI.installUI(item);
        assertNotNull(item.getBorder());
        assertNotNull(SwingUtilities.getUIActionMap(item));
        assertNotNull(menuUI.mouseInputListener);
        assertEquals(0, item.getComponentCount());
        menuUI.uninstallUI(item);
        assertNull(item.getBorder());
        assertNull(SwingUtilities.getUIActionMap(item));
        assertNull(menuUI.mouseInputListener);
        assertEquals(0, item.getComponentCount());
    }
}
TOP

Related Classes of javax.swing.plaf.basic.BasicMenuUITest

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.