--- old/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java 2015-11-24 16:02:32.000000000 +0530 +++ new/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java 2015-11-24 16:02:31.000000000 +0530 @@ -22,91 +22,149 @@ */ /* - test - @bug 6176814 - @summary Metalworks frame maximizes after the move - @author Andrei.Dmitriev area=Event - @run applet MaximizedFrameTest.html -*/ - -import java.applet.Applet; -import javax.swing.*; -import java.awt.event.*; -import java.awt.*; - -public class MaximizedFrameTest extends Applet -{ - final int ITERATIONS_COUNT = 20; - Robot robot; - Point framePosition; - Point newFrameLocation; - JFrame frame; - Rectangle gcBounds; - public static Object LOCK = new Object(); - - public void init() - { - String[] instructions = - { - "This is an AUTOMATIC test", - "simply wait until it is done" - }; + @test + @bug 6176814 8132766 + @summary Metalworks frame maximizes after the move + @run main MaximizedFrameTest + */ + +import java.awt.AWTException; +import java.awt.Component; +import java.awt.Point; +import java.awt.Robot; +import java.awt.event.InputEvent; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; + +public class MaximizedFrameTest { + + final static int ITERATIONS_COUNT = 5; + private static JFrame frame; + private static Point tempMousePosition; + private static Component titleComponent; + + public void init() { JFrame.setDefaultLookAndFeelDecorated(true); + + try { + UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); + } catch (ClassNotFoundException | InstantiationException | + IllegalAccessException | UnsupportedLookAndFeelException ex) { + throw new RuntimeException("Test Failed. MetalLookAndFeel not set " + + "for frame"); + } + frame = new JFrame("JFrame Maximization Test"); frame.pack(); frame.setSize(450, 260); - }//End init() - - public void start () - { frame.setVisible(true); - validate(); - JLayeredPane lPane = frame.getLayeredPane(); - // System.out.println("JFrame's LayeredPane " + lPane ); - Component titleComponent = null; - boolean titleFound = false; - for (int j=0; j < lPane.getComponentsInLayer(JLayeredPane.FRAME_CONTENT_LAYER.intValue()).length; j++){ - titleComponent = lPane.getComponentsInLayer(JLayeredPane.FRAME_CONTENT_LAYER.intValue())[j]; - if (titleComponent.getClass().getName().equals("javax.swing.plaf.metal.MetalTitlePane")){ - titleFound = true; - break; + } + + public void getTitleComponent() throws Exception { + + SwingUtilities.invokeAndWait(new Runnable() { + + @Override + public void run() { + JLayeredPane lPane = frame.getLayeredPane(); + boolean titleFound = false; + + for (int j = 0; j < lPane.getComponentsInLayer( + JLayeredPane.FRAME_CONTENT_LAYER.intValue()).length; j++) { + + titleComponent = lPane.getComponentsInLayer( + JLayeredPane.FRAME_CONTENT_LAYER.intValue())[j]; + + if (titleComponent.getClass().getName().equals( + "javax.swing.plaf.metal.MetalTitlePane")) { + + titleFound = true; + break; + } + } + + if (!titleFound) { + try { + dispose(); + } catch (Exception ex) { + Logger.getLogger(MaximizedFrameTest.class.getName()) + .log(Level.SEVERE, null, ex); + } + throw new RuntimeException("Test Failed. Unable to " + + "determine title component"); + } } - } - if ( !titleFound ){ - throw new RuntimeException("Test Failed. Unable to determine title's size."); - } - //-------------------------------- - // it is sufficient to get maximized Frame only once. - Point tempMousePosition; - framePosition = frame.getLocationOnScreen(); + }); + } + + public void doMaximizeFrameTest() throws Exception { + + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + Point framePosition = frame.getLocationOnScreen(); + + tempMousePosition = new Point(framePosition.x + + frame.getWidth() / 2, framePosition.y + + titleComponent.getHeight() / 2); + } + }); + try { - robot = new Robot(); - tempMousePosition = new Point(framePosition.x + - frame.getWidth()/2, - framePosition.y + - titleComponent.getHeight()/2); + Robot robot = new Robot(); robot.mouseMove(tempMousePosition.x, tempMousePosition.y); - for (int iteration=0; iteration < ITERATIONS_COUNT; iteration++){ + robot.waitForIdle(); + + for (int iteration = 0; iteration < ITERATIONS_COUNT; iteration++) { robot.mousePress(InputEvent.BUTTON1_MASK); - gcBounds = - GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getConfigurations()[0].getBounds(); - //Moving a mouse pointer less than a few pixels - //leads to rising a double click event. - //We have to use exceeded the AWT_MULTICLICK_SMUDGE - //const value (which is 4 by default on GNOME) to test that. + robot.waitForIdle(); + + // Moving a mouse pointer less than a few pixels + // leads to rising a double click event. + // We have to use exceeded the AWT_MULTICLICK_SMUDGE + // const value (which is 4 by default on GNOME) to test that. tempMousePosition.x += 5; robot.mouseMove(tempMousePosition.x, tempMousePosition.y); - robot.delay(70); + robot.waitForIdle(); robot.mouseRelease(InputEvent.BUTTON1_MASK); - if ( frame.getExtendedState() != 0 ){ - throw new RuntimeException ("Test failed. JFrame was maximized. ExtendedState is : "+frame.getExtendedState()); - } - robot.delay(500); - } //for iteration + robot.waitForIdle(); - }catch(AWTException e) { - throw new RuntimeException("Test Failed. AWTException thrown."); + if (frame.getExtendedState() != 0) { + dispose(); + throw new RuntimeException("Test failed. JFrame was " + + "maximized. ExtendedState is : " + + frame.getExtendedState()); + } } + } catch (AWTException e) { + dispose(); + throw new RuntimeException("Test Failed. AWTException thrown."); + } System.out.println("Test passed."); - }// start() -}// class + } + + private void dispose() throws Exception { + SwingUtilities.invokeAndWait(new Runnable() { + @Override + public void run() { + if (null != frame) { + frame.dispose(); + } + } + }); + } + + public static void main(String[] args) throws Exception { + + MaximizedFrameTest maximizedFrameTest = new MaximizedFrameTest(); + maximizedFrameTest.init(); + maximizedFrameTest.getTitleComponent(); + maximizedFrameTest.doMaximizeFrameTest(); + maximizedFrameTest.dispose(); + } +} --- old/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html 2015-11-24 16:02:33.000000000 +0530 +++ /dev/null 2015-11-24 16:02:33.000000000 +0530 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - - - - - - - -

bug 6176814
Bug ID: 6176814

- -

This is an AUTOMATIC test, simply wait for completion

- - - -