< prev index next >
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,120 ----
* 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) {
! if (!verified) {
! verifyMousePosition();
! }
}
});
! frame2.addMouseListener(new MouseAdapter() {
@Override
! public void mouseEntered(MouseEvent e) {
! if (!verified) {
! verifyMousePosition();
! }
}
});
+
+ Util.waitForIdle(robot);
+ Point loc = frame2.getLocationOnScreen();
+ robot.mouseMove(loc.x + 30, loc.y + 30);
+ Util.waitForIdle(robot);
+ robot.delay(200);
+ if (!verified) {
+ throw new RuntimeException(
+ "No mouse events generated for frame");
}
+ } finally {
+ frame2.dispose();
+ frame1.dispose();
+ frame1 = null;
+ frame2 = null;
}
}
! public static void verifyMousePosition() {
! verified = true;
! Point posInFrm2 = frame2.getMousePosition();
! if (!(isValueInRange(posInFrm2.x) && isValueInRange(posInFrm2.y))) {
! throw new RuntimeException("Wrong position reported. Should be in"
! + " range from [25, 25] to [35, 35] but was ["
! + posInFrm2.x + ", " + posInFrm2.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 do not return exact value, hence range
! * is used.
! */
! return value >= 25 && value <= 35;
}
}
< prev index next >