jdk-24/test/jdk/java/awt/Container/PropertyEventsTest.java
Alexander Zvegintsev b372f28ad4 8306753: Open source several container AWT tests
Reviewed-by: prr
2023-04-25 20:25:16 +00:00

130 lines
4.5 KiB
Java

/*
* 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;
}
}