/* * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ import java.awt.*; import static jdk.testlibrary.Asserts.*; /* * @test * @key headful * @bug 8047367 * @summary Check modality settings for Window and Dialog. * * @library ../../../../lib/testlibrary/ * @run main ModalitySettingsTest */ public class ModalitySettingsTest { private void doTest() throws Exception { Window w = new Window(new Frame()); boolean unexpectedExc = false; try { Dialog d = new Dialog(w); } catch (IllegalArgumentException iae) { } catch (Exception e) { unexpectedExc = true; } assertFalse(unexpectedExc, "unexpected exception occured when a " + "Window instance was passed to Dialog constructor"); Dialog d = new Dialog((Frame) null); assertTrue(d.getModalityType() == Dialog.ModalityType.MODELESS, "the default modality type returned by Dialog " + "differs from Dialog.ModalityType.MODELESS"); Frame f = new Frame(); assertTrue(f.getModalExclusionType() == Dialog.ModalExclusionType.NO_EXCLUDE, "the default modality exclusion type returned by Frame" + "differs from Dialog.ModalExclusionType.NO_EXCLUDE"); w = new Window((Frame) null); assertTrue(w.getModalExclusionType() == Dialog.ModalExclusionType.NO_EXCLUDE, "the default modality exclusion type returned by Window " + "differs from Dialog.ModalExclusionType.NO_EXCLUDE"); d = new Dialog((Frame) null); assertTrue(d.getModalExclusionType() == Dialog.ModalExclusionType.NO_EXCLUDE, "the default modality exclusion type returned by Dialog " + "differs from Dialog.ModalExclusionType.NO_EXCLUDE"); d.setModalityType(Dialog.ModalityType.TOOLKIT_MODAL); assertTrue(d.getModalityType() == Dialog.ModalityType.TOOLKIT_MODAL, "the modality type returned by Dialog " + "differs from Dialog.ModalityType.TOOLKIT_MODAL " + "after setting the modality type to that value"); d.setModal(false); assertTrue(d.getModalityType() == Dialog.ModalityType.MODELESS, "the modality type returned by Dialog differs from " + "Dialog.ModalityType.MODELESS after calling setModal(false)"); d.setModal(true); assertTrue(d.getModalityType() == Dialog.ModalityType.APPLICATION_MODAL, "the modality type returned by Dialog differs from " + "Dialog.ModalityType.APPLICATION_MODAL after calling setModal(true)"); w.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE); assertTrue(w.getModalExclusionType() == Dialog.ModalExclusionType.APPLICATION_EXCLUDE, "getModalExclusionType method for Window did not return " + "Dialog.ModalExclusionType.APPLICATION_EXCLUDE after " + "setting it to that value"); d = new Dialog((Frame) null); d.setModalityType(Dialog.ModalityType.TOOLKIT_MODAL); assertTrue(d.isModal(), "method isModal for Dialog " + "returned false when the Dialog is toolkit modal"); d.setModalityType(Dialog.ModalityType.MODELESS); assertFalse(d.isModal(), "method isModal for Dialog " + "returned true when the Dialog is MODELESS"); d = new Dialog((Frame) null, (Dialog.ModalityType) null); assertTrue(d.getModalityType() == Dialog.ModalityType.MODELESS, "The modality type returned for a Dialog constructed " + "with null modality type differs from MODELESS"); d = new Dialog((Frame) null); d.setModalityType(null); assertTrue(d.getModalityType() == Dialog.ModalityType.MODELESS, "the modality type returned for a Dialog set with null " + "modality type differs from MODELESS"); d.setModalExclusionType(null); assertTrue(d.getModalExclusionType() == Dialog.ModalExclusionType.NO_EXCLUDE, "The exlcusion type returned for a Dialog set with null " + "exclusion type differs from NO_EXCLUDE"); try { Dialog.ModalityType.valueOf("invalid"); } catch (IllegalArgumentException iae) { } catch (Exception e) { unexpectedExc = true; } assertFalse(unexpectedExc, "unexpected exception occured when an " + "invalid value was passed to ModalityType.valueOf method"); } public static void main(String[] args) throws Exception { ModalitySettingsTest test = new ModalitySettingsTest(); test.doTest(); } }