/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