diff --git a/jdk/test/java/beans/Introspector/4058433/TestJavaBean.java b/jdk/test/java/beans/Introspector/4058433/TestJavaBean.java index 1f986b6ff6f..f4e9ee2f040 100644 --- a/jdk/test/java/beans/Introspector/4058433/TestJavaBean.java +++ b/jdk/test/java/beans/Introspector/4058433/TestJavaBean.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, 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 @@ -20,11 +20,13 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + import java.awt.event.ActionListener; import java.beans.BeanDescriptor; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.JavaBean; + /* * @test * @bug 4058433 @@ -32,53 +34,63 @@ import java.beans.JavaBean; * @author Sergey Malenkov */ public class TestJavaBean { - public static void main(String[] args) throws Exception { - test(X.class); - test(D.class); - test(DP.class); - test(DES.class); + + static final String DSCR = "description"; + static final String PRP = "value"; + static final String ACT = "action"; + + public static void main(final String[] args) throws Exception { + test(X.class, "TestJavaBean$X", "TestJavaBean$X", null, null); + test(D.class, "TestJavaBean$D", DSCR, null, null); + test(DP.class, "TestJavaBean$DP", "TestJavaBean$DP", PRP, null); + test(DES.class, "TestJavaBean$DES", "TestJavaBean$DES", null, ACT); + test(DDP.class, "TestJavaBean$DDP", DSCR, PRP, null); + test(DDES.class, "TestJavaBean$DDES", DSCR, null, ACT); + test(DPDES.class, "TestJavaBean$DPDES", "TestJavaBean$DPDES", PRP, ACT); + test(DDPDES.class, "TestJavaBean$DDPDES", DSCR, PRP, ACT); } - private static void test(Class type) throws Exception { - System.out.println(type); + private static void test(Class type, String name, String descr, + String prop, String event) throws Exception { BeanInfo info = Introspector.getBeanInfo(type); BeanDescriptor bd = info.getBeanDescriptor(); - String description = bd.getShortDescription(); - System.out.println("description = " + description); - - int dp = info.getDefaultPropertyIndex(); - System.out.println("property index = " + dp); - if (0 <= dp) { - String name = info.getPropertyDescriptors()[dp].getName(); - System.out.println("property name = " + name); - } - int des = info.getDefaultEventIndex(); - System.out.println("event set index = " + des); - if (0 <= des) { - String name = info.getPropertyDescriptors()[des].getName(); - System.out.println("event set name = " + name); + if (!bd.getName().equals(name)) { + throw new Error("unexpected name of the bean"); } - if ((D.class == type) == bd.getName().equals(description)) { + if (!bd.getShortDescription().equals(descr)) { throw new Error("unexpected description of the bean"); } - if ((DP.class == type) == (dp < 0)) { + + int dp = info.getDefaultPropertyIndex(); + if (dp < 0 && prop != null) { throw new Error("unexpected index of the default property"); } - if ((DES.class == type) == (des < 0)) { + if (dp >= 0) { + if (!info.getPropertyDescriptors()[dp].getName().equals(prop)) { + throw new Error("unexpected default property"); + } + } + int des = info.getDefaultEventIndex(); + if (des < 0 && event != null) { throw new Error("unexpected index of the default event set"); } + if (des >= 0) { + if (!info.getEventSetDescriptors()[des].getName().equals(event)) { + throw new Error("unexpected default event set"); + } + } } public static class X { } - @JavaBean(description = "description") + @JavaBean(description = DSCR) public static class D { } - @JavaBean(defaultProperty = "value") + @JavaBean(defaultProperty = PRP) public static class DP { private int value; @@ -91,7 +103,7 @@ public class TestJavaBean { } } - @JavaBean(defaultEventSet = "action") + @JavaBean(defaultEventSet = ACT) public static class DES { public void addActionListener(ActionListener listener) { } @@ -99,4 +111,64 @@ public class TestJavaBean { public void removeActionListener(ActionListener listener) { } } + + @JavaBean(description = DSCR, defaultProperty = PRP) + public static class DDP { + private int value; + + public int getValue() { + return this.value; + } + + public void setValue(int value) { + this.value = value; + } + } + + @JavaBean(description = DSCR, defaultEventSet = ACT) + public static class DDES { + public void addActionListener(ActionListener listener) { + } + + public void removeActionListener(ActionListener listener) { + } + } + + @JavaBean(defaultProperty = PRP, defaultEventSet = ACT) + public static class DPDES { + private int value; + + public int getValue() { + return this.value; + } + + public void setValue(int value) { + this.value = value; + } + + public void addActionListener(ActionListener listener) { + } + + public void removeActionListener(ActionListener listener) { + } + } + + @JavaBean(description = DSCR, defaultProperty = PRP, defaultEventSet = ACT) + public static class DDPDES { + private int value; + + public int getValue() { + return this.value; + } + + public void setValue(int value) { + this.value = value; + } + + public void addActionListener(ActionListener listener) { + } + + public void removeActionListener(ActionListener listener) { + } + } }