| /* | |
| * Copyright (c) 2001, 2023, 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. | |
| */ | |
| /* | |
| @test | |
| @summary unit test for ability of FocusTraversalPolicyProvider | |
| */ | |
| import java.awt.Container; | |
| import java.beans.PropertyChangeEvent; | |
| import java.beans.PropertyChangeListener; | |
| public class PropertyEventsTest implements PropertyChangeListener { | |
| final String PROPERTY = "focusTraversalPolicyProvider"; | |
| public static void main(String[] args) throws Exception { | |
| new PropertyEventsTest().start(); | |
| } | |
| public void start () { | |
| Container c1 = new Container(); | |
| c1.addPropertyChangeListener(PROPERTY, this); | |
| assertEquals("Container shouldn't be a provider by default", | |
| false, c1.isFocusTraversalPolicyProvider()); | |
| prepareForEvent(false, true); | |
| c1.setFocusTraversalPolicyProvider(true); | |
| assertEventOccured(); | |
| assertEquals("Policy provider property was not set.", | |
| true, c1.isFocusTraversalPolicyProvider()); | |
| prepareForEvent(true, false); | |
| c1.setFocusTraversalPolicyProvider(false); | |
| assertEventOccured(); | |
| assertEquals("Policy provider property was not reset.", | |
| false, c1.isFocusTraversalPolicyProvider()); | |
| prepareForEvent(false, true); | |
| c1.setFocusCycleRoot(true); | |
| assertEventMissed(); | |
| assertEquals("Cycle root shouldn't be a policy provider.", | |
| false, c1.isFocusTraversalPolicyProvider()); | |
| prepareForEvent(true, false); | |
| c1.setFocusCycleRoot(false); | |
| assertEventMissed(); | |
| assertEquals("setFocusCycleRoot(false) should reset " | |
| + "policy provider property.", | |
| false, c1.isFocusTraversalPolicyProvider()); | |
| System.out.println("Test passed."); | |
| }// start() | |
| void assertEquals(String msg, boolean expected, boolean actual) { | |
| if (expected != actual) { | |
| Assert(msg + "(expected=" + expected + ", actual=" + actual + ")"); | |
| } | |
| } | |
| void assertEquals(String msg, Object expected, Object actual) { | |
| if ((expected != null && !expected.equals(actual)) | |
| || (actual != null && !actual.equals(expected))) | |
| { | |
| Assert(msg + "(expected=" + expected + ", actual=" + actual + ")"); | |
| } | |
| } | |
| void Assert(String msg) { | |
| throw new RuntimeException(msg); | |
| } | |
| void prepareForEvent(boolean old_val, boolean new_val) { | |
| property_change_fired = false; | |
| expected_new_value = Boolean.valueOf(new_val); | |
| expected_old_value = Boolean.valueOf(old_val); | |
| } | |
| void assertEventOccured() { | |
| if (!property_change_fired) { | |
| Assert("Property Change Event missed."); | |
| } | |
| } | |
| void assertEventMissed() { | |
| if (property_change_fired) { | |
| Assert("Unexpected property change event."); | |
| } | |
| } | |
| boolean property_change_fired; | |
| Boolean expected_new_value; | |
| Boolean expected_old_value; | |
| public void propertyChange(PropertyChangeEvent e) { | |
| System.out.println("PropertyChangeEvent[property=" + e.getPropertyName() | |
| + ", new=" + e.getNewValue() | |
| + ", old=" + e.getOldValue() + "]"); | |
| assertEquals("Wrong proeprty name.", | |
| PROPERTY, e.getPropertyName()); | |
| assertEquals("Wrong new value.", | |
| expected_new_value, e.getNewValue()); | |
| assertEquals("Wrong old value.", | |
| expected_old_value, e.getOldValue()); | |
| property_change_fired = true; | |
| } | |
| } |