< prev index next >

jdk/test/java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2013, 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. --- 1,7 ---- /* ! * Copyright (c) 2013, 2016 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.
*** 21,111 **** * questions. */ import test.java.awt.regtesthelpers.Util; ! import javax.swing.*; ! import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; /** * @test ! * @bug 8012026 * @summary Component.getMousePosition() does not work in an applet on MacOS - * @author Petr Pchelko * @library ../../regtesthelpers * @build Util * @compile GetMousePositionWithPopup.java * @run main/othervm GetMousePositionWithPopup */ public class GetMousePositionWithPopup { private static Frame frame1; private static Frame frame2; public static void main(String[] args) throws Exception { try { ! Robot r = Util.createRobot(); ! r.mouseMove(0, 0); ! Util.waitForIdle(null); - SwingUtilities.invokeAndWait(new Runnable() { @Override ! public void run() { ! constructTestUI(); } }); ! Util.waitForIdle(null); ! r.mouseMove(149, 149); ! Util.waitForIdle(null); ! r.mouseMove(150, 150); ! Util.waitForIdle(null); ! ! } finally { ! SwingUtilities.invokeLater(new Runnable() { @Override ! public void run() { ! frame1.dispose(); ! frame2.dispose(); } }); } } - - private static void constructTestUI() { - frame1 = new Frame(); - frame1.setBounds(100, 100, 100, 100); - frame1.addMouseMotionListener(new MouseMotionAdapter() { - - private boolean shown = false; - - @Override - public void mouseMoved(MouseEvent e) { - if (shown) { - return; } ! shown = true; ! ! frame2 = new Frame(); ! frame2.setBounds(120, 120, 120, 120); ! frame2.setVisible(true); ! Point positionInFrame2 = frame2.getMousePosition(); ! if (positionInFrame2.x != 30 || positionInFrame2.y != 30) { ! throw new RuntimeException("Wrong position reported. Should be [30, 30] but was [" + ! positionInFrame2.x + ", " + positionInFrame2.y + "]"); } Point positionInFrame1 = frame1.getMousePosition(); if (positionInFrame1 != null) { throw new RuntimeException("Wrong position reported. Should be null"); } - } ! }); ! frame1.setVisible(true); } } --- 21,121 ---- * questions. */ import test.java.awt.regtesthelpers.Util; ! import java.awt.Frame; ! import java.awt.Point; ! import java.awt.Robot; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; + import java.awt.event.MouseAdapter; /** * @test ! * @bug 8012026 8027154 * @summary Component.getMousePosition() does not work in an applet on MacOS * @library ../../regtesthelpers * @build Util * @compile GetMousePositionWithPopup.java * @run main/othervm GetMousePositionWithPopup */ public class GetMousePositionWithPopup { private static Frame frame1; private static Frame frame2; + private static Robot robot = null; + private static volatile boolean verified = false; public static void main(String[] args) throws Exception { try { ! frame1 = new Frame("frame1"); ! frame1.setBounds(100, 100, 100, 100); ! frame2 = new Frame("frame2"); ! frame2.setBounds(120, 120, 120, 120); ! frame1.setVisible(true); ! frame2.setVisible(true); ! robot = Util.createRobot(); ! robot.mouseMove(0, 0); ! Util.waitForIdle(robot); ! ! frame2.addMouseMotionListener(new MouseMotionAdapter() { @Override ! public void mouseMoved(MouseEvent e) { ! System.out.println("Mouse Moved"); ! if (!verified) { ! verifyMousePosition(); ! } } }); ! frame2.addMouseListener(new MouseAdapter() { @Override ! public void mouseEntered(MouseEvent e) { ! System.out.println("Mouse Entered"); ! if (!verified) { ! verifyMousePosition(); ! } } }); + + Util.waitForIdle(null); + Point loc = frame2.getLocationOnScreen(); + robot.mouseMove(loc.x + 30, loc.y + 30); + Util.waitForIdle(null); + robot.delay(6000); + if (!verified) { + throw new RuntimeException("No mouse events has been generated for the frame"); } + } finally { + frame2.dispose(); + frame1.dispose(); + frame1 = null; + frame2 = null; } } ! public static void verifyMousePosition() { ! verified = true; Point positionInFrame2 = frame2.getMousePosition(); ! System.out.println(positionInFrame2); ! if (!(isValueInRange(positionInFrame2.x) && isValueInRange(positionInFrame2.y))) { ! throw new RuntimeException("Wrong position reported. Should be in range from [25, 25] to [35, 35] but was [" ! + positionInFrame2.x + ", " + positionInFrame2.y + "]"); } Point positionInFrame1 = frame1.getMousePosition(); if (positionInFrame1 != null) { throw new RuntimeException("Wrong position reported. Should be null"); } } ! ! public static boolean isValueInRange(int value) { ! /* ! * since all operating systems doesn't return exact value, hence range ! * is used. ! */ ! return value >= 25 && value <= 35; } }
< prev index next >