/hg/icedtea-web: modification of JSToJSet reproducer, added JSOb...

jfabriko at icedtea.classpath.org jfabriko at icedtea.classpath.org
Wed Feb 6 07:37:11 PST 2013


changeset 90126cbbee8f in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=90126cbbee8f
author: Jana Fabrikova <jfabriko at redhat.com>
date: Wed Feb 06 16:39:43 2013 +0100

	modification of JSToJSet reproducer, added JSObject case and bug annotations


diffstat:

 ChangeLog                                                     |  14 ++
 tests/reproducers/simple/JSToJSet/resources/JSToJava_Set.js   |  12 +-
 tests/reproducers/simple/JSToJSet/srcs/JSToJSet.java          |  12 +-
 tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java |  61 +++++++---
 4 files changed, 73 insertions(+), 26 deletions(-)

diffs (230 lines):

diff -r 047349c5ce3a -r 90126cbbee8f ChangeLog
--- a/ChangeLog	Wed Feb 06 15:41:18 2013 +0100
+++ b/ChangeLog	Wed Feb 06 16:39:43 2013 +0100
@@ -1,3 +1,17 @@
+2013-02-06  Jana Fabrikova  <jfabriko at redhat.com>
+
+	* /tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java:
+	adding 1 testcase setting applets variable of type JSObject from JS,
+	adding KnownToFail anotation and @Bug annotation with id=PR1298 to
+	(AppletJSToJSet_intArrayElement_Test) and
+	(AppletJSToJSet_DoubleArrayElement_Test) methods
+	* /tests/reproducers/simple/JSToJSet/resources/JSToJava_Set.js:
+	adding the JSObject case to (doSetTests) function
+	* /tests/reproducers/simple/JSToJSet/srcs/JSToJSet.java:
+	adding the JSObject variable to the applet and modifying
+	(printNewValueAndFinish) method in order to output new values
+	of JSObject variable
+
 2013-02-06  Jana Fabrikova  <jfabriko at redhat.com>
 
 	* /tests/reproducers/simple/JSToJGet/resources/JSToJGet.html:
diff -r 047349c5ce3a -r 90126cbbee8f tests/reproducers/simple/JSToJSet/resources/JSToJava_Set.js
--- a/tests/reproducers/simple/JSToJSet/resources/JSToJava_Set.js	Wed Feb 06 15:41:18 2013 +0100
+++ b/tests/reproducers/simple/JSToJSet/resources/JSToJava_Set.js	Wed Feb 06 16:39:43 2013 +0100
@@ -1,3 +1,9 @@
+//dummy javascript class whose instance is passed as JSObject parameter:
+function JSCar(mph,color){
+    this.mph = mph;
+    this.color = color;
+}
+
 function doSetTests( ){
 
     var urlArgs = document.URL.split("?");
@@ -18,12 +24,16 @@
         if( field === "_specialString"){
             value = "𠁎〒£$ǣ€𝍖";
         } 
+
+        if( field === "_JSObject"){
+            value =  new JSCar(100,"red");
+        }
+
     }else if(value.indexOf('[') != -1){
 
         var elem = value.substring(1);
         value = new Array();
         eval('value[0] = elem');
-
     }
 
     eval('applet.' + field + '= value');
diff -r 047349c5ce3a -r 90126cbbee8f tests/reproducers/simple/JSToJSet/srcs/JSToJSet.java
--- a/tests/reproducers/simple/JSToJSet/srcs/JSToJSet.java	Wed Feb 06 15:41:18 2013 +0100
+++ b/tests/reproducers/simple/JSToJSet/srcs/JSToJSet.java	Wed Feb 06 16:39:43 2013 +0100
@@ -1,7 +1,7 @@
-import java.applet.*;
-import java.awt.*;
+import java.applet.Applet;
 import java.lang.reflect.Array;
 import java.lang.reflect.Field;
+import netscape.javascript.JSObject;
 
 public class JSToJSet extends Applet {
 
@@ -27,6 +27,7 @@
     public Double[] _DoubleArray2;
     public char[] _charArray = new char[1];
     public Character[] _CharacterArray = new Character[1];
+    public JSObject _JSObject;
 
     public void init() {
         String initStr = "JSToJSet applet initialized.";
@@ -36,7 +37,12 @@
     public void printNewValueAndFinish(String fieldname) throws Exception {
         Field field = getClass().getDeclaredField(fieldname);
         Object value = field.get(this);
-        if (value != null && value.getClass().isArray()) {
+   
+        if( fieldname.equals("_JSObject") ){
+            Integer mph = (Integer)_JSObject.getMember("mph");
+            String color = (String)_JSObject.getMember("color");
+            System.out.println("New value is: "+mph+", "+color);
+        }else if (value != null && value.getClass().isArray()) {
             System.out.println("New array value is: " + Array.get(value, 0));
         } else {
             System.out.println("New value is: " + value);
diff -r 047349c5ce3a -r 90126cbbee8f tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java
--- a/tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java	Wed Feb 06 15:41:18 2013 +0100
+++ b/tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java	Wed Feb 06 16:39:43 2013 +0100
@@ -40,18 +40,25 @@
 import net.sourceforge.jnlp.browsertesting.BrowserTest;
 import net.sourceforge.jnlp.browsertesting.Browsers;
 import net.sourceforge.jnlp.closinglisteners.CountingClosingListener;
+import net.sourceforge.jnlp.annotations.Bug;
+import net.sourceforge.jnlp.annotations.KnownToFail;
 import net.sourceforge.jnlp.annotations.NeedsDisplay;
 import net.sourceforge.jnlp.annotations.TestInBrowsers;
 import org.junit.Assert;
 
 import org.junit.Test;
 
+ at Bug( id = { "PR1298" })
 public class JSToJSetTest extends BrowserTest {
 
     private final String exceptionStr = "xception";
     private final String errorStr = "rror";
     private final String initStr = "JSToJSet applet initialized.";
     private final String afterStr = "afterTests";
+
+    public enum TestType{
+        ARRAY_ELEMENT, WHOLE_ARRAY, NORMAL_VALUE
+    }
         
     private class CountingClosingListenerImpl extends CountingClosingListener {
 
@@ -71,7 +78,7 @@
 
         // Assert that the values set by JavaScript are ok
         Assert.assertTrue("JSToJSet: the output should include: "+expectedStdout+", but it didnt.",
-        		pr.stdout.contains(expectedStdout));
+        pr.stdout.contains(expectedStdout));
 
     }
 
@@ -82,24 +89,24 @@
         evaluateStdoutContents(expectedStdout, pr);
     }
     
-    private void jsToJavaSetSpecialTest(String fieldStr, String valueStr, int testType) throws Exception {
-    	String strURL = "/JSToJSet.html?";
-    	String expectedStdout = "";
-    	switch( testType ){
-        case 0://array element
-        	strURL += fieldStr + ";" + valueStr;
-        	expectedStdout = "New array value is: "+valueStr;
+    private void jsToJavaSetSpecialTest(String fieldStr, String valueStr, TestType testType) throws Exception {
+        String strURL = "/JSToJSet.html?";
+        String expectedStdout = "";
+        switch( testType ){
+        case ARRAY_ELEMENT://array element
+            strURL += fieldStr + ";" + valueStr;
+            expectedStdout = "New array value is: "+valueStr;
             break;
-        case 1://whole array, set 1st element
-        	strURL += fieldStr + ";[" + valueStr;
-        	expectedStdout = "New array value is: "+valueStr;
-    		break;
-        case 2://char et al - to be set at JS side
-        	strURL += fieldStr + ";JavaScript";
-        	expectedStdout = "New value is: "+valueStr;
+        case WHOLE_ARRAY://whole array, set 1st element
+            strURL += fieldStr + ";[" + valueStr;
+            expectedStdout = "New array value is: "+valueStr;
+            break;
+        case NORMAL_VALUE://char et al - to be set at JS side
+            strURL += fieldStr + ";JavaScript";
+            expectedStdout = "New value is: "+valueStr;
             break;
         default:
-            break;    	
+            break;
         }
          
         ProcessResult pr = server.executeBrowser(strURL, new CountingClosingListenerImpl(), new CountingClosingListenerImpl());
@@ -145,7 +152,7 @@
     @TestInBrowsers(testIn = { Browsers.all })
     @NeedsDisplay
     public void AppletJSToJSet_char_Test() throws Exception {
-        jsToJavaSetSpecialTest("_char", "a", 2);
+        jsToJavaSetSpecialTest("_char", "a", TestType.NORMAL_VALUE);
     }
 
     @Test
@@ -158,8 +165,10 @@
     @Test
     @TestInBrowsers(testIn = { Browsers.all })
     @NeedsDisplay
+    @KnownToFail
+    @Bug( id = {"PR1298"})
     public void AppletJSToJSet_intArrayElement_Test() throws Exception {
-        jsToJavaSetSpecialTest("_intArray[0]", "1", 0);
+        jsToJavaSetSpecialTest("_intArray[0]", "1", TestType.ARRAY_ELEMENT);
     }
 
     @Test
@@ -173,7 +182,7 @@
     @TestInBrowsers(testIn = { Browsers.all })
     @NeedsDisplay
     public void AppletJSToJSet_specialCharsString_Test() throws Exception {
-        jsToJavaSetSpecialTest("_specialString", "𠁎〒£$ǣ€𝍖", 2);
+        jsToJavaSetSpecialTest("_specialString", "𠁎〒£$ǣ€𝍖", TestType.NORMAL_VALUE);
     }
 
     @Test
@@ -222,7 +231,7 @@
     @TestInBrowsers(testIn = { Browsers.all })
     @NeedsDisplay
     public void AppletJSToJSet_Character_Test() throws Exception {
-        jsToJavaSetSpecialTest("_Character", "A", 2);
+        jsToJavaSetSpecialTest("_Character", "A", TestType.NORMAL_VALUE);
     }
 
     @Test
@@ -235,15 +244,23 @@
     @Test
     @TestInBrowsers(testIn = { Browsers.all })
     @NeedsDisplay
+    @KnownToFail
+    @Bug( id = {"PR1298"})
     public void AppletJSToJSet_DoubleArrayElement_Test() throws Exception {
-        jsToJavaSetSpecialTest("_DoubleArray[0]", "1.1", 0);
+        jsToJavaSetSpecialTest("_DoubleArray[0]", "1.1", TestType.ARRAY_ELEMENT);
     }
 
     @Test
     @TestInBrowsers(testIn = { Browsers.all })
     @NeedsDisplay
     public void AppletJSToJSet_DoubleFullArray_Test() throws Exception {
-        jsToJavaSetSpecialTest("_DoubleArray2", "0.1", 1);
+        jsToJavaSetSpecialTest("_DoubleArray2", "0.1", TestType.WHOLE_ARRAY);
     }
 
+    @Test
+    @TestInBrowsers(testIn = { Browsers.all })
+    @NeedsDisplay
+    public void AppletJSToJSet_JSObject_Test() throws Exception {
+        jsToJavaSetSpecialTest("_JSObject", "100, red", TestType.NORMAL_VALUE);
+    }
 }



More information about the distro-pkg-dev mailing list