/hg/icedtea-web: Adding a new simple reproducer JSToJGet for tes...

jfabriko at icedtea.classpath.org jfabriko at icedtea.classpath.org
Wed Oct 3 07:06:54 PDT 2012


changeset 1db5f473227d in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=1db5f473227d
author: Jana Fabrikova <jfabriko at redhat.com>
date: Wed Oct 03 16:08:20 2012 +0200

	Adding a new simple reproducer JSToJGet for testing Liveconnect - getting members from Java side.


diffstat:

 tests/reproducers/simple/JSToJGet/resources/JSToJGet.html      |  105 +++
 tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js |   69 ++
 tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js    |  249 ++++++++
 tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp     |   20 +
 tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java           |   71 ++
 tests/reproducers/simple/JSToJGet/testcases/JSToJGetTest.java  |  309 ++++++++++
 6 files changed, 823 insertions(+), 0 deletions(-)

diffs (truncated from 847 to 500 lines):

diff -r df7db8de4a20 -r 1db5f473227d tests/reproducers/simple/JSToJGet/resources/JSToJGet.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSToJGet/resources/JSToJGet.html	Wed Oct 03 16:08:20 2012 +0200
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en-US">
+  <head>
+    <title>JavaScript to Java LiveConnect - Get values from applet</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+    <script language="JavaScript" src="JSToJ_auxiliary.js"></script>
+    <script language="JavaScript" src="JSToJava_Get.js"></script>
+
+  </head>
+  <body>
+
+    <h2> The JSToJGet html page</h2> 
+
+    <applet code="JSToJGet" width="1000" height="100" id="jstojGetApplet" MAYSCRIPT>
+        <param name="jnlp_href" value="jstoj-get.jnlp">
+    </applet>
+
+    <div id="messageDiv"></div>
+
+    <script type="text/javascript">
+      var urlArgs = document.URL.split("?");
+      var testid = urlArgs[1];
+
+      if( testid != null ){
+          document.getElementById( 'jstojGetApplet' ).setStatusLabel(testid);
+          appendMessageDiv(testid+"... ");
+      }else{
+          document.getElementById( 'jstojGetApplet' ).setStatusLabel("url without ?");
+          appendMessageDiv("no url arguments...");
+      }
+      switch(testid){
+        case "int":
+            test_get_int();
+            break;
+        case "double":
+            test_get_double();
+            break;
+        case "float":
+            test_get_float();
+            break;
+        case "long":
+            test_get_long();
+            break;
+        case "boolean":
+            test_get_boolean();
+            break;
+        case "char":
+            test_get_char();
+            break;
+        case "byte":
+            test_get_byte();
+            break;
+        case "intArrayElement":
+            test_get_intArrayElement();
+            break;
+        case "intArrayBeyond":
+            test_get_intArrayBeyond();
+            break;
+        case "regularString":
+            test_get_regularString();
+            break;
+        case "specialCharsString":
+            test_get_specialCharsString();
+            break;
+        case "null":
+            test_get_null();
+            break;
+        case "Integer":
+            test_get_Integer();
+            break;
+        case "Double":
+            test_get_Double();
+            break;
+        case "Float":
+            test_get_Float();
+            break;
+        case "Long":
+            test_get_Long();
+            break;
+        case "Boolean":
+            test_get_Boolean();
+            break;
+        case "Character":
+            test_get_Character();
+            break;
+        case "Byte":
+            test_get_Byte();
+            break;
+        case "DoubleArrayElement":
+            test_get_DoubleArrayElement();
+            break;
+        case "DoubleFullArray":
+            test_get_DoubleFullArray();
+            break;
+        default:
+            appletStdOutLn('jstojGetApplet', "No argument in URL! Should be e.g. JSToJGet.html?int");           
+            document.getElementById( 'jstojGetApplet' ).setStatusLabel("Not a valid argument in URL! Should be e.g. JSToJGet.html?int");             
+            break;
+    }
+    afterTestsMessage('jstojGetApplet');
+    </script>
+
+  </body>
+</html>
diff -r df7db8de4a20 -r 1db5f473227d tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js	Wed Oct 03 16:08:20 2012 +0200
@@ -0,0 +1,69 @@
+/*
+JSToJ_auxiliary.js
+This file contains auxiliary JavaScript functions for LiveConnect tests output,
+the following reproducers have this file as a common resource:
+- JSToJGet
+- JSToJSet
+- JSToJFuncParam
+- JSToJFuncReturn
+- JSToJFuncResol
+- JSToJTypeConv
+- JToJSGet
+- JToJSSet
+- JToJSFuncParam
+- JToJSFuncReturn
+- JToJSEval
+*/
+
+function check(actual, expected, expectedtype, testid, appletName ) {
+    if (actual == expected) { //the same value
+        if (typeof(actual) == expectedtype) { //the same type
+            passTest( testid, appletName );
+        } else {
+            failTypeTest( testid, appletName, actual, expectedtype );
+        }
+    } else {
+        failValTest( testid, appletName, actual, expected );                    
+    }
+}
+
+function passTest( testid, appletName ){
+    var passStr = "Test no."+testid+" - passed.";
+    //applet stdout
+    appletStdOut( appletName, passStr);
+    //html page
+    appendMessageDiv(passStr);
+}
+
+function failValTest( testid, appletName, actual, expected ){
+    var failValStr = "Test no."+testid+" - failed, value mismatch. expected:["+expected+"] found:["+actual+"].";
+    //applet stdout
+    appletStdOut( appletName, failValStr);
+    //html page
+    appendMessageDiv(failValStr);
+}
+
+function failTypeTest( testid, appletName, actual, expectedtype ){
+    var failTypeStr = "Test no."+testid+" - failed, type mismatch. expected:["+expectedtype+"] found:["+typeof(actual)+"].";
+    //applet stdout
+    appletStdOutLn( appletName, failTypeStr);
+    //html page
+    appendMessageDiv(failTypeStr);
+}
+
+function appletStdOut( appletName, str ){
+    document.getElementById( appletName ).stdOutWrite( str );
+}
+
+function appletStdOutLn( appletName, str ){
+    document.getElementById( appletName ).stdOutWriteln( str );
+}
+
+function afterTestsMessage( appletName ){
+    document.getElementById( appletName ).stdOutWriteln("afterTests");
+}
+
+function appendMessageDiv( message ){
+    var messageDiv = document.getElementById( 'messageDiv' );
+    messageDiv.appendChild( document.createTextNode(message) );
+}
diff -r df7db8de4a20 -r 1db5f473227d tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js	Wed Oct 03 16:08:20 2012 +0200
@@ -0,0 +1,249 @@
+function test_get_int(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var i = document.getElementById(appletName).i;    
+        check(i, 42, "number", " 1 - (int)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_double()
+{
+    var appletName = 'jstojGetApplet';
+    try{
+        var d = document.getElementById(appletName).d;
+        check(d, 42.42, "number", " 2 - (double)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_float(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var f = document.getElementById(appletName).f;
+        check(f, 42.099998474121094, "number", " 3 - (float)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_long(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var l = document.getElementById(appletName).l;
+        check(l, 4294967296, "number", " 4 - (long)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }    
+}
+
+function test_get_boolean(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var b = document.getElementById(appletName).b;
+        check(b, true, "boolean", " 5 - (boolean)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_char(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var c = document.getElementById(appletName).c;
+        check(c, 8995, "number", " 6 - (char)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_byte(){
+    var appletName = 'jstojGetApplet';
+    try{    
+        var by = document.getElementById(appletName).by;
+        check(by, 43, "number", " 7 - (byte)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_intArrayElement(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var ia = document.getElementById(appletName).ia[4];
+        check(ia, 1024, "number", " 8 - (int[] - element access)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_intArrayBeyond(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var ia2 = document.getElementById(appletName).ia[30];
+        check(ia2, null, "undefined", " 9 - (int[] - beyond length)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_regularString(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var rs = document.getElementById(appletName).rs;    
+        check(rs, "I'm a string!", "string", "10 - (regular string)", appletName);    
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_specialCharsString(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var ss = document.getElementById(appletName).ss;
+        check(ss, "𠁎〒£$ǣ€𝍖", "string", "11 - (string with special characters)",appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_null(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var n = document.getElementById(appletName).n;
+        check(n, null, "object","12 - (null)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Integer(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var I = document.getElementById(appletName).I;
+        check(I, 24, "object","13 - (Integer)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Double(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var D = document.getElementById(appletName).D;
+        check(D, 24.24, "object", "14 - (Double)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Float(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var F = document.getElementById(appletName).F;
+        check(F, 24.124, "object", "15 - (Float)", appletName);    
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Long(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var L = document.getElementById(appletName).L;
+        check(L, 6927694924, "object", "16 - (Long)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Boolean(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var B = document.getElementById(appletName).B;
+        check(B, false, "object", "17 - (Boolean)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Character(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var C = document.getElementById(appletName).C;
+        check(C, 'ᔦ',  "object", "18 - (Character)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_Byte(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var By = document.getElementById(appletName).By;
+        check(By, 34,  "object", "19 - (Byte)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_DoubleArrayElement(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var DaE = document.getElementById(appletName).Da1[9];
+        check(DaE, 24.24,  "object", "20 - (Double[] - element access)", appletName);
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+
+function test_get_DoubleFullArray(){
+    var appletName = 'jstojGetApplet';
+    try{
+        var DaStr = document.getElementById(appletName).Da1.toString().substr(0,20);
+        var Da = document.getElementById(appletName).Da1;
+    
+        var appletid = appletName;
+        var testid = "21 - (Double[] - full array)";
+        
+        var expected = "[Ljava.lang.Double;@";
+        var expectedtype = "object";
+    
+        if ( DaStr ==  expected ) { //the same value
+            if ( typeof(Da) == expectedtype ) { //the same type
+                passTest( testid, appletid );
+            } else {
+                failTypeTest( testid, appletid, typeof(Da), expectedtype );
+            }
+        } else {
+            failValTest( testid, appletid, DaStr, expected );                
+        }
+    }catch(e){
+        appletStdOut( appletName, e );    
+        appendMessageDiv(e);
+    }
+}
+    
+
diff -r df7db8de4a20 -r 1db5f473227d tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp	Wed Oct 03 16:08:20 2012 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jnlp spec="1.0+" codebase="" href="jstoj-get.jnlp">
+    <information>
+        <title>JavaScript to Java LiveConnect - Get</title>
+        <vendor>RedHat</vendor>
+        <homepage href="http://icedtea.classpath.org/wiki/IcedTea-Web#Testing_IcedTea-Web"/>
+        <description>LiveConnect - tests for getting members from Java side.</description>
+    </information>
+    <resources>
+        <!-- Application Resources -->
+        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
+        <jar href="JSToJGet.jar" main="true" />
+    </resources>
+    <applet-desc 
+         name="JS to J Get"
+         main-class="JSToJGet"
+         width="1000"
+         height="100">
+     </applet-desc>
+</jnlp>
diff -r df7db8de4a20 -r 1db5f473227d tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java	Wed Oct 03 16:08:20 2012 +0200
@@ -0,0 +1,71 @@
+import java.applet.*;
+import java.awt.*;
+
+public class JSToJGet extends Applet {
+
+    public static final int i = 42;
+    public static final double d = 42.42;
+    public static final float f = 42.1F;
+    public static final long l = 4294967296L;
+    public static final boolean b = true;
+    public static final char c = '\u2323';
+    public static final byte by = 43;
+    public static final String rs = "I'm a string!";
+    public static final String ss = "𠁎〒£$ǣ€𝍖";
+    public static final Object n = null;
+    public int[] ia = new int[5];
+
+    public static final Integer I = 24;
+    public static final Double D = 24.24;
+    public static final Float F = 24.124F;
+    public static final Long L = 6927694924L;
+    public static final Boolean B = false;
+    public static final Character C = '\u1526';
+    public static final Byte By = 34;
+    public Double[] Da1 = new Double[10];
+    public Double[] Da2 = null;
+
+    public char[] ca = new char[3];
+    public Character[] Ca = new Character[3];
+
+    private Label statusLabel;
+
+    public void init() {
+        setLayout(new BorderLayout());
+        statusLabel = new Label();
+        add(statusLabel);
+        String initStr = "JSToJGet applet initialized.";



More information about the distro-pkg-dev mailing list