< prev index next >

test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java

Print this page

        

@@ -22,11 +22,11 @@
  */
 
 /*
   @test
   @key headful
-  @bug 4980161 7158623 8204860
+  @bug 4980161 7158623 8204860 8208125
   @summary Setting focusable window state to false makes the maximized frame resizable
   @compile UnfocusableMaximizedFrameResizablity.java
   @run main UnfocusableMaximizedFrameResizablity
 */
 

@@ -34,17 +34,14 @@
 import java.awt.Frame;
 import java.awt.Rectangle;
 import java.awt.AWTException;
 import java.awt.event.InputEvent;
 import java.awt.Robot;
-import javax.swing.JFrame;
-import javax.swing.SwingUtilities;
 
 public class UnfocusableMaximizedFrameResizablity {
 
     private static Frame frame;
-    private static JFrame jframe;
     private static Robot robot;
     private static boolean isProgInterruption = false;
     private static Thread mainThread = null;
     private static int sleepTime = 300000;
 

@@ -53,69 +50,17 @@
         //The MAXIMIZED_BOTH state is not supported by the toolkit. Nothing to test.
         if (!Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH)) {
             return;
         }
 
-        //Case 1: Setting frame resizable to true followed by focusable to false
-        frame = createFrame("Resizable Unfocusable frame");
-        frame.setResizable(true);
-        frame.setFocusableWindowState(false);
-        tryToResizeFrame(frame);
-
-        //Case 2: Setting frame focusable to false followed by resizable to true
-        frame = createFrame("Unfocusable Resizable frame");
-        frame.setFocusableWindowState(false);
-        frame.setResizable(true);
-        tryToResizeFrame(frame);
-
-        //Case 3: Testing JFrame fullscreen behaviour only on Mac OS
-        if (System.getProperty("os.name").toLowerCase().startsWith("mac")) {
-            SwingUtilities.invokeAndWait(new Runnable() {
-
-                Override
-                public void run() {
-                    jframe = createJFrame("Unfocusable Resizable JFrame");
-                    jframe.setFocusableWindowState(false);
-                    jframe.setResizable(true);
-                    Object prop1 = jframe.getRootPane().getClientProperty("apple.awt.fullscreenable");
-                    jframe.setVisible(false);
-                    jframe.setVisible(true);
-                    Object prop2 = jframe.getRootPane().getClientProperty("apple.awt.fullscreenable");
-
-                    if((prop1 != null && prop2 != null) && (!prop1.equals(prop2))) {
-                        jframe.dispose();
-                        cleanup();
-                        throw new RuntimeException("Non-focusable resizable JFrame is fullscreenable!!");
-                    }
-                }
-            });
-        }
-
-        cleanup();
-    }
-
-    private static JFrame createJFrame(String title) {
-        JFrame jframe = new JFrame(title);
-        jframe.setMaximizedBounds(new Rectangle(0, 0, 300, 300));
-        jframe.setSize(200, 200);
-        jframe.setVisible(true);
-        jframe.setExtendedState(Frame.MAXIMIZED_BOTH);
-
-        return jframe;
-    }
-
-    private static Frame createFrame(String title) {
-        Frame frame = new Frame(title);
+        Frame frame = new Frame("Unfocusable frame");
         frame.setMaximizedBounds(new Rectangle(0, 0, 300, 300));
         frame.setSize(200, 200);
         frame.setVisible(true);
         frame.setExtendedState(Frame.MAXIMIZED_BOTH);
+        frame.setFocusableWindowState(false);
 
-        return frame;
-    }
-
-    private static void tryToResizeFrame(Frame frame) {
         try {
             robot = new Robot();
         } catch (AWTException e) {
             throw new RuntimeException("Robot creation failed");
         }

@@ -143,14 +88,15 @@
         if (!finalBounds.equals(bounds)) {
             cleanup();
             throw new RuntimeException("The maximized unfocusable frame can be resized.");
         }
 
-        frame.dispose();
+        cleanup();
     }
 
     private static void cleanup() {
+        frame.dispose();
         isProgInterruption = true;
         mainThread.interrupt();
     }
 
     public static void main(String args[]) throws Exception {
< prev index next >