< prev index next >

test/jdk/java/awt/Choice/PopupPosTest/PopupPosTest.java

Print this page

        

@@ -20,46 +20,40 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
 /*
-  test
-  @bug 5044150
+  @test
+  @key headful
+  @bug 5044150 8197811
   @summary Tests that pupup doesn't popdown if no space to display under
   @author andrei.dmitriev area=awt.choice
-  @library /test/lib
-  @build jdk.test.lib.Platform
-  @run applet PopupPosTest.html
+  @run main PopupPosTest
 */
 
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.event.*;
-
-import jdk.test.lib.Platform;
-
-public class PopupPosTest extends Applet
-{
-    public void start ()
-    {
-        if (Platform.isOSX()) {
-            // On OS X, popup isn't under the mouse
-            return;
-        }
-        Frame frame = new TestFrame();
-    }
-}
-
-class TestFrame extends Frame implements ItemListener {
-    Robot robot;
-    Toolkit tk = Toolkit.getDefaultToolkit();
-    Choice choice = new Choice();
-    boolean indexChanged = false;
-    final static int INITIAL_ITEM = 99;
-    volatile boolean stateChanged;
+import java.awt.Frame;
+import java.awt.Toolkit;
+import java.awt.Choice;
+import java.awt.Dimension;
+import java.awt.Robot;
+import java.awt.Point;
+import java.awt.Font;
+import java.awt.BorderLayout;
+import java.awt.event.ItemListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.InputEvent;
+
+public class PopupPosTest extends Frame implements ItemListener {
+    private Robot robot;
+    private Toolkit tk = Toolkit.getDefaultToolkit();
+    private Choice choice = new Choice();
+    private boolean indexChanged = false;
+    private final static int INITIAL_ITEM = 99;
+    private volatile boolean stateChanged;
 
-    public TestFrame() {
+    private PopupPosTest() {
         for (int i = 0; i < 100; i++) {
              choice.addItem("Item Item Item " + i);
         }
         choice.addItemListener(this);
 

@@ -78,10 +72,11 @@
             // fix for 6175418. When we take "choice.getHeight()/2"
             // divider 2 is not sufficiently big to hit into the
             // small box Choice. We should use bigger divider to get
             // smaller value choice.getHeight()/i. 4 is sufficient.
             Point pt = choice.getLocationOnScreen();
+            System.out.println("Choice size: " + choice.getSize());
             // click on 1/4 of Choice's height
             mouseMoveAndPressOnChoice(pt.x + choice.getWidth()/2,
                               pt.y + choice.getHeight()/4);
 
             // click on center of Choice's height

@@ -105,11 +100,11 @@
         }
 
         if(stateChanged){
             throw new RuntimeException("Test failed. ItemEvent was generated on a simple mouse click when the dropdown appears under mouse");
         }
-    }// start()
+    }
 
     public void itemStateChanged(ItemEvent ie) {
         System.out.println("choice.stateChanged = "+ ie);
         stateChanged = true;
     }

@@ -126,11 +121,11 @@
         checkSelectedIndex();
     }
 
     public void openChoice(){
         Point pt = choice.getLocationOnScreen();
-        robot.mouseMove(pt.x + choice.getWidth() - choice.getHeight()/4,
+        robot.mouseMove(pt.x + choice.getWidth() - 10,
                         pt.y + choice.getHeight()/2);
         robot.mousePress(InputEvent.BUTTON1_MASK);
         robot.delay(30);
         robot.mouseRelease(InputEvent.BUTTON1_MASK);
         robot.waitForIdle();

@@ -140,11 +135,16 @@
         robot.keyRelease(KeyEvent.VK_ESCAPE);
         robot.waitForIdle();
     }
 
     public void checkSelectedIndex(){
+        System.out.println("choice.getSelectedIndex = " + choice.getSelectedIndex());
         if (choice.getSelectedIndex() != INITIAL_ITEM) {
             System.out.println("choice.getSelectedIndex = "+ choice.getSelectedIndex());
             indexChanged = true;
         }
     }
-}// class TestFrame
+
+    public static void main(String[] args) {
+        new PopupPosTest();
+    }
+}
< prev index next >