< prev index next >

test/java/awt/TrayIcon/TrayIconEvents/TrayIconEventsTest.java

Print this page

        

@@ -35,10 +35,11 @@
  * @run main TrayIconEventsTest
  */
 
 public class TrayIconEventsTest {
 
+    private static boolean isOEL7;
     TrayIcon icon;
     ExtendedRobot robot;
 
     boolean actionPerformed = false;
     Object actionLock = new Object();

@@ -75,10 +76,13 @@
                         "in Windows 7, which is behavior by default.\n" +
                         "Set \"Right mouse click\" -> \"Customize notification icons\" -> " +
                         "\"Always show all icons and notifications on the taskbar\" true " +
                         "to avoid this problem. Or change behavior only for Java SE " +
                         "tray icon.");
+            isOEL7 = System.getProperty("os.name").toLowerCase()
+                    .contains("linux") && System.getProperty("os.version")
+                    .toLowerCase().contains("el7");
             new TrayIconEventsTest().doTest();
         }
     }
 
     public TrayIconEventsTest() throws Exception {

@@ -193,35 +197,48 @@
     void doTest() throws Exception {
 
         Point iconPosition = SystemTrayIconHelper.getTrayIconLocation(icon);
         if (iconPosition == null)
             throw new RuntimeException("Unable to find the icon location!");
-
-        robot.mouseMove(iconPosition.x, iconPosition.y);
+        if (isOEL7) {
+            // close tray
+            robot.mouseMove(100,100);
+            robot.click(InputEvent.BUTTON1_MASK);
         robot.waitForIdle(2000);
+        }
 
+        robot.mouseMove(iconPosition.x, iconPosition.y);
+        robot.waitForIdle();
+        if(!isOEL7) {
         SystemTrayIconHelper.doubleClick(robot);
 
-        if (! actionPerformed) {
+            if (!actionPerformed) {
             synchronized (actionLock) {
                 try {
                     actionLock.wait(10000);
                 } catch (Exception e) {
                 }
             }
         }
-        if (! actionPerformed)
+            if (!actionPerformed)
             throw new RuntimeException("FAIL: ActionEvent not triggered when TrayIcon is double clicked");
+        }
 
         for (int i = 0; i < buttonTypes.length; i++) {
             mousePressed = false;
+            if(isOEL7) {
+                SystemTrayIconHelper.openTrayIfNeeded(robot);
+                robot.mouseMove(iconPosition.x, iconPosition.y);
+                robot.click(buttonTypes[i]);
+            } else {
             robot.mousePress(buttonTypes[i]);
+            }
 
             if (! mousePressed) {
                 synchronized (pressLock) {
                     try {
-                        pressLock.wait(3000);
+                        pressLock.wait(6000);
                     } catch (Exception e) {
                     }
                 }
             }
             if (! mousePressed)

@@ -229,16 +246,22 @@
                     throw new RuntimeException("FAIL: mousePressed not triggered when " +
                             buttonNames[i] + " pressed");
 
             mouseReleased = false;
             mouseClicked = false;
+            if(isOEL7) {
+                SystemTrayIconHelper.openTrayIfNeeded(robot);
+                robot.mouseMove(iconPosition.x, iconPosition.y);
+                robot.click(buttonTypes[i]);
+            } else {
             robot.mouseRelease(buttonTypes[i]);
+            }
 
             if (! mouseReleased) {
                 synchronized (releaseLock) {
                     try {
-                        releaseLock.wait(3000);
+                        releaseLock.wait(6000);
                     } catch (Exception e) {
                     }
                 }
             }
             if (! mouseReleased)

@@ -246,24 +269,26 @@
                         buttonNames[i] + " released");
 
             if (! mouseClicked) {
                 synchronized (clickLock) {
                     try {
-                        clickLock.wait(3000);
+                        clickLock.wait(6000);
                     } catch (Exception e) {
                     }
                 }
             }
             if (! mouseClicked)
                 throw new RuntimeException("FAIL: mouseClicked not triggered when " +
                         buttonNames[i] + " pressed & released");
         }
 
+        if (!isOEL7) {
         mouseMoved = false;
         robot.mouseMove(iconPosition.x + 100, iconPosition.y);
         robot.glide(iconPosition.x, iconPosition.y);
 
-        if (! mouseMoved)
-            if (! SystemTrayIconHelper.skip(0) )
+            if (!mouseMoved)
+                if (!SystemTrayIconHelper.skip(0))
                 throw new RuntimeException("FAIL: mouseMoved not triggered even when mouse moved over the icon");
     }
+    }
 }
< prev index next >