changeset 1838 | 493d5960d520 |
parent 1787 | ea12a3bb4b33 |
child 1900 | 7865a00c30ef |
1.1 --- a/rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Tue Feb 24 11:12:53 2015 +0100 1.2 +++ b/rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Sun Aug 02 11:56:45 2015 +0200 1.3 @@ -291,6 +291,32 @@ 1.4 @Compare public boolean isArray() { 1.5 return new Object[0].getClass().isArray(); 1.6 } 1.7 + 1.8 + @Compare public String copyDataViaReflection() throws Exception { 1.9 + Data d = new Data(); 1.10 + d.setName("Hello world!"); 1.11 + 1.12 + Method getter = d.getClass().getMethod("getName"); 1.13 + Object val = getter.invoke(d); 1.14 + 1.15 + Data clone = new Data(); 1.16 + Method setter = d.getClass().getMethod("setName", String.class); 1.17 + setter.invoke(clone, val); 1.18 + 1.19 + return clone.getName(); 1.20 + } 1.21 + 1.22 + @Compare public String copyStaticDataViaReflection() throws Exception { 1.23 + Data.setStatic("Hello world!"); 1.24 + 1.25 + Method getter = Data.class.getMethod("getStatic"); 1.26 + Object val = getter.invoke(null); 1.27 + 1.28 + Method setter = Data.class.getMethod("setStatic", String.class); 1.29 + setter.invoke(null, val); 1.30 + 1.31 + return Data.getStatic(); 1.32 + } 1.33 1.34 @JavaScriptBody(args = { "arr", "len" }, body="var a = arr.slice(0, len); a.sort(); return a;") 1.35 private static String[] sort(String[] arr, int len) { 1.36 @@ -312,4 +338,25 @@ 1.37 public static abstract class Abst { 1.38 public abstract int abst(); 1.39 } 1.40 + 1.41 + public static final class Data { 1.42 + private String name; 1.43 + private static String nameStatic; 1.44 + 1.45 + public String getName() { 1.46 + return name; 1.47 + } 1.48 + 1.49 + public void setName(String name) { 1.50 + this.name = name; 1.51 + } 1.52 + 1.53 + public static String getStatic() { 1.54 + return nameStatic; 1.55 + } 1.56 + 1.57 + public static void setStatic(String n) { 1.58 + nameStatic = n; 1.59 + } 1.60 + } 1.61 }