8193468: [PIT][TEST BUG]: java/awt/FileDialog/MoveToTrashTest.java fails on Linux
authorsveerabhadra
Wed, 03 Jan 2018 15:37:35 +0530
changeset 48426 c08f1067ef57
parent 48425 fcd1913b1d36
child 48427 b08405cc467a
8193468: [PIT][TEST BUG]: java/awt/FileDialog/MoveToTrashTest.java fails on Linux Reviewed-by: aghaisas, serb
test/jdk/java/awt/FileDialog/MoveToTrashTest.java
--- a/test/jdk/java/awt/FileDialog/MoveToTrashTest.java	Wed Jan 03 11:14:04 2018 +0530
+++ b/test/jdk/java/awt/FileDialog/MoveToTrashTest.java	Wed Jan 03 15:37:35 2018 +0530
@@ -23,7 +23,7 @@
 
 /*
   @test
-  @bug 8190515
+  @bug 8190515 8193468
   @summary java.awt.Desktop.moveToTrash(File) prompts on Windows 7 but not on Mac.
   @run main MoveToTrashTest
 */
@@ -39,18 +39,23 @@
     private static boolean fileStatus = false;
 
     public static void main(String[] args) {
-        try {
-            file = File.createTempFile("TestFile","txt");
-        } catch (IOException ex) {
-            throw new RuntimeException("Test failed. Exception thrown: ", ex);
-        }
+        if (!Desktop.getDesktop().isSupported(Desktop.Action.MOVE_TO_TRASH)) {
+            System.out.println("Move to trash action is not supported on the"+
+               " platform under test. Marking the test passed");
+        } else {
+            try {
+                file = File.createTempFile("TestFile","txt");
+            } catch (IOException ex) {
+                throw new RuntimeException("Test failed. Exception thrown: ", ex);
+            }
 
-        // In case any UI that may pop up while deleting the file would
-        // block this thread until the user actions them. Hence do file
-        // check in a different thread and we assume it takes about sometime
-        // till it deletes the file(or popup) on the main thread.
-        new Thread(null, MoveToTrashTest::checkFileExistence, "FileCheck", 0, false).start();
-        fileStatus = Desktop.getDesktop().moveToTrash(file);
+            // In case any UI that may pop up while deleting the file would
+            // block this thread until the user actions them. Hence do file
+            // check in a different thread and we assume it takes about sometime
+            // till it deletes the file(or popup) on the main thread.
+            new Thread(null, MoveToTrashTest::checkFileExistence, "FileCheck", 0, false).start();
+            fileStatus = Desktop.getDesktop().moveToTrash(file);
+        }
     }
 
     private static void checkFileExistence() {
@@ -63,10 +68,10 @@
 
         robot.delay(1500);
 
-        if(!fileStatus) {
+        if (!fileStatus) {
             throw new RuntimeException("Test failed due to error while deleting the file");
         } else {
-            if(file.exists()) {
+            if (file.exists()) {
                 throw new RuntimeException("Test failed");
             } else {
                 System.out.println("Test passed");