changeset 3306:69b2e5838eee

7007708: TEST: javax/swing/JScrollBar/6542335/bug6542335.java failes agaisnt jdk7 on solaris/linux Reviewed-by: alexp
author rupashka
date Thu, 23 Dec 2010 18:25:35 +0300
parents c8b383fd8adf
children 94e0438c74c3
files test/javax/swing/JScrollBar/6542335/bug6542335.java
diffstat 1 files changed, 27 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/test/javax/swing/JScrollBar/6542335/bug6542335.java	Thu Dec 23 17:39:18 2010 +0300
+++ b/test/javax/swing/JScrollBar/6542335/bug6542335.java	Thu Dec 23 18:25:35 2010 +0300
@@ -40,11 +40,13 @@
     private static MyScrollBarUI ui;
 
     public static void main(String[] args) throws Exception {
-        Robot robot = new Robot();
+        final Robot robot = new Robot();
         robot.setAutoDelay(10);
 
         SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
 
+        final Rectangle[] thumbBounds = new Rectangle[1];
+
         SwingUtilities.invokeAndWait(new Runnable() {
             public void run() {
                 final JFrame frame = new JFrame("bug6542335");
@@ -63,25 +65,39 @@
                 rangeModel.setValue(50);
 
                 sb.setModel(rangeModel);
-                frame.add(sb);
+                frame.add(sb, BorderLayout.NORTH);
 
                 frame.setSize(200, 100);
                 frame.setVisible(true);
+
+                thumbBounds[0] = new Rectangle(ui.getThumbBounds());
             }
         });
 
-        Rectangle thumbBounds = new Rectangle(ui.getThumbBounds());
+        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                Point l = sb.getLocationOnScreen();
+
+                robot.mouseMove(l.x + (int) (0.75 * sb.getWidth()), l.y + sb.getHeight() / 2);
+                robot.mousePress(InputEvent.BUTTON1_MASK);
+                robot.mouseRelease(InputEvent.BUTTON1_MASK);
+            }
+        });
 
         toolkit.realSync();
-        Point l = sb.getLocationOnScreen();
-        robot.mouseMove(l.x + (int) (0.75 * sb.getWidth()), l.y + sb.getHeight()/2);
-        robot.mousePress(InputEvent.BUTTON1_MASK);
-        robot.mouseRelease(InputEvent.BUTTON1_MASK);
-        toolkit.realSync();
+
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                Rectangle newThumbBounds = ui.getThumbBounds();
 
-        if (!thumbBounds.equals(ui.getThumbBounds())) {
-            throw new RuntimeException("Test failed");
-        }
+                if (!thumbBounds[0].equals(newThumbBounds)) {
+                    throw new RuntimeException("Test failed.\nOld bounds: " + thumbBounds[0] +
+                    "\nNew bounds: " + newThumbBounds);
+                }
+            }
+        });
     }
 
     static class MyScrollBarUI extends BasicScrollBarUI {