aboutsummaryrefslogtreecommitdiffstats
path: root/tests/reproducers/simple/JSToJGet
diff options
context:
space:
mode:
authorJana Fabrikova <[email protected]>2012-10-03 16:08:20 +0200
committerJana Fabrikova <[email protected]>2012-10-03 16:08:20 +0200
commit8981061fe9643be19a6ce71538a82e3f5d528b6f (patch)
tree2ea51feacc5295b39f6aae7836499f1121af4307 /tests/reproducers/simple/JSToJGet
parent82cd2b4d05d38bc9e9f327d9224e40b7b8be8228 (diff)
Adding a new simple reproducer JSToJGet for testing Liveconnect - getting members from Java side.
Diffstat (limited to 'tests/reproducers/simple/JSToJGet')
-rw-r--r--tests/reproducers/simple/JSToJGet/resources/JSToJGet.html105
-rw-r--r--tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js69
-rw-r--r--tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js249
-rw-r--r--tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp20
-rw-r--r--tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java71
-rw-r--r--tests/reproducers/simple/JSToJGet/testcases/JSToJGetTest.java309
6 files changed, 823 insertions, 0 deletions
diff --git a/tests/reproducers/simple/JSToJGet/resources/JSToJGet.html b/tests/reproducers/simple/JSToJGet/resources/JSToJGet.html
new file mode 100644
index 0000000..31ed1cb
--- /dev/null
+++ b/tests/reproducers/simple/JSToJGet/resources/JSToJGet.html
@@ -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 --git a/tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js b/tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js
new file mode 100644
index 0000000..97231fe
--- /dev/null
+++ b/tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js
@@ -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 --git a/tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js b/tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js
new file mode 100644
index 0000000..da4c080
--- /dev/null
+++ b/tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js
@@ -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 --git a/tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp b/tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp
new file mode 100644
index 0000000..28ef0d3
--- /dev/null
+++ b/tests/reproducers/simple/JSToJGet/resources/jstoj-get.jnlp
@@ -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 --git a/tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java b/tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java
new file mode 100644
index 0000000..5c2511b
--- /dev/null
+++ b/tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java
@@ -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.";
+ System.out.println(initStr);
+ statusLabel.setText(initStr);
+
+ ia[4] = 1024;
+ Da1[9] = D;
+
+ String setupStr = "JSToJGet applet set up for GET tests.";
+ System.out.println(setupStr);
+ statusLabel.setText(setupStr);
+
+ }
+
+ // auxiliary method for setting the statusLabel text:
+ public void setStatusLabel(String s) {
+ statusLabel.setText(s);
+ }
+
+ // auxiliary methods for writing to stdout and stderr:
+ public void stdOutWrite(String s) {
+ System.out.print(s);
+ }
+
+ public void stdErrWrite(String s) {
+ System.err.print(s);
+ }
+
+ public void stdOutWriteln(String s) {
+ System.out.println(s);
+ }
+
+ public void stdErrWriteln(String s) {
+ System.err.println(s);
+ }
+}
diff --git a/tests/reproducers/simple/JSToJGet/testcases/JSToJGetTest.java b/tests/reproducers/simple/JSToJGet/testcases/JSToJGetTest.java
new file mode 100644
index 0000000..e575534
--- /dev/null
+++ b/tests/reproducers/simple/JSToJGet/testcases/JSToJGetTest.java
@@ -0,0 +1,309 @@
+/* JSToJGetTest.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+import net.sourceforge.jnlp.ProcessResult;
+import net.sourceforge.jnlp.ServerAccess;
+import net.sourceforge.jnlp.browsertesting.BrowserTest;
+import net.sourceforge.jnlp.browsertesting.Browsers;
+import net.sourceforge.jnlp.closinglisteners.CountingClosingListener;
+import net.sourceforge.jnlp.annotations.NeedsDisplay;
+import net.sourceforge.jnlp.annotations.TestInBrowsers;
+import org.junit.Assert;
+
+import org.junit.Test;
+
+public class JSToJGetTest extends BrowserTest {
+
+ public String[] testNames = { "int", "double", "float", "long", "boolean",
+ "char", "byte", "intArrayElement", "intArrayBeyond",
+ "regularString", "specialCharsString", "null", "Integer", "Double",
+ "Float", "Long", "Boolean", "Character", "Byte",
+ "DoubleArrayElement", "DoubleFullArray" };
+
+ public String[] outputStrings = { "Test no. 1 - (int)",
+ "Test no. 2 - (double)", "Test no. 3 - (float)",
+ "Test no. 4 - (long)", "Test no. 5 - (boolean)",
+ "Test no. 6 - (char)", "Test no. 7 - (byte)",
+ "Test no. 8 - (int[] - element access)",
+ "Test no. 9 - (int[] - beyond length)",
+ "Test no.10 - (regular string)",
+ "Test no.11 - (string with special characters)",
+ "Test no.12 - (null)", "Test no.13 - (Integer)",
+ "Test no.14 - (Double)", "Test no.15 - (Float)",
+ "Test no.16 - (Long)", "Test no.17 - (Boolean)",
+ "Test no.18 - (Character)", "Test no.19 - (Byte)",
+ "Test no.20 - (Double[] - element access)",
+ "Test no.21 - (Double[] - full array)" };
+
+ public String passStr = " - passed.";
+ public String failValStr = " - failed, value mismatch.";
+ public String failTypeStr = " - failed, type mismatch.";
+ public String expStr = "expected:[";
+ public String foundStr = "] found:[";
+ public String endStr = "].";
+
+ private final String exceptionStr = "xception";
+ private final String initStr = "JSToJGet applet initialized.";
+ private final String setupStr = "JSToJGet applet set up for GET tests.";
+ private final String afterStr = "afterTests";
+
+ private class CountingClosingListenerImpl extends CountingClosingListener {
+
+ @Override
+ protected boolean isAlowedToFinish(String s) {
+ if (s.contains(exceptionStr)) {
+ return true;
+ }
+ return (s.contains(initStr) && s.contains(setupStr) && s
+ .contains(afterStr));
+ }
+ }
+
+ private void evaluateStdoutContents(int index, ProcessResult pr) {
+ // Assert that the applet was initialized.
+ Assert.assertTrue("JSToJGetTest stdout should contain \"" + initStr
+ + "\" but it didn't.", pr.stdout.contains(initStr));
+
+ // Assert that the applet was set up for the GM tests.
+ Assert.assertTrue("JSToJGetTest stdout should contain \"" + setupStr
+ + "\" but it didn't.", pr.stdout.contains(setupStr));
+
+ // Assert that the tests have passed.
+ String s0 = outputStrings[index] + passStr;
+ String s1 = outputStrings[index] + failValStr;
+ String s2 = outputStrings[index] + failTypeStr;
+ String s3 = "Error on Java side";
+
+ int ind0 = pr.stdout.indexOf(s0);
+ int ind1 = pr.stdout.indexOf(s1);
+ int ind2 = pr.stdout.indexOf(s2);
+ int ind3 = pr.stdout.indexOf(s3);
+ int indBegin = pr.stdout.indexOf(setupStr);
+ if (indBegin != -1) {
+ indBegin += setupStr.length();
+ } else {
+ indBegin = 0;
+ }
+
+ String failStr = "JSToJGet " + outputStrings[index]
+ + ": \"passed\" not found in the applet stdout, which is: "
+ + pr.stdout.substring(indBegin, pr.stdout.length());
+
+ if (ind1 != -1) {
+ // int inde = pr.stdout.indexOf(expStr);
+ // int indf = pr.stdout.indexOf(foundStr);
+ int indend = pr.stdout.indexOf(endStr);
+ failStr = pr.stdout.substring(ind1, indend + endStr.length());
+ }
+
+ if (ind2 != -1) {
+ // int inde = pr.stdout.indexOf(expStr);
+ // int indf = pr.stdout.indexOf(foundStr);
+ int indend = pr.stdout.indexOf(endStr);
+ failStr = pr.stdout.substring(ind2, indend + endStr.length());
+ }
+
+ if (ind3 != -1) {
+ failStr = "JSToJGet: " + outputStrings[index]
+ + pr.stdout.substring(ind3, pr.stdout.length());
+ }
+
+ Assert.assertTrue(failStr, (ind3 == -1));// no error on Java side
+ Assert.assertTrue(failStr, (ind1 == -1));// no value mismatch
+ Assert.assertTrue(failStr, (ind2 == -1));// no type mismatch
+ Assert.assertTrue(failStr, (ind0 != -1));// test passed
+
+ }
+
+ private void genericJSToJavaGetTestMethod(int index) throws Exception {
+
+ String strURL = "/JSToJGet.html?" + testNames[index];
+ ProcessResult pr = server.executeBrowser(strURL,
+ new CountingClosingListenerImpl(),
+ new CountingClosingListenerImpl());
+ evaluateStdoutContents(index, pr);
+
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_int_Test() throws Exception {
+ genericJSToJavaGetTestMethod(0);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_double_Test() throws Exception {
+ genericJSToJavaGetTestMethod(1);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_float_Test() throws Exception {
+ genericJSToJavaGetTestMethod(2);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_long_Test() throws Exception {
+ genericJSToJavaGetTestMethod(3);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_boolean_Test() throws Exception {
+ genericJSToJavaGetTestMethod(4);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_char_Test() throws Exception {
+ genericJSToJavaGetTestMethod(5);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_byte_Test() throws Exception {
+ genericJSToJavaGetTestMethod(6);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_intArrayElement_Test() throws Exception {
+ genericJSToJavaGetTestMethod(7);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_intArrayBeyond_Test() throws Exception {
+ genericJSToJavaGetTestMethod(8);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_regularString_Test() throws Exception {
+ genericJSToJavaGetTestMethod(9);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_specialCharsString_Test() throws Exception {
+ genericJSToJavaGetTestMethod(10);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_null_Test() throws Exception {
+ genericJSToJavaGetTestMethod(11);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Integer_Test() throws Exception {
+ genericJSToJavaGetTestMethod(12);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Double_Test() throws Exception {
+ genericJSToJavaGetTestMethod(13);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Float_Test() throws Exception {
+ genericJSToJavaGetTestMethod(14);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Long_Test() throws Exception {
+ genericJSToJavaGetTestMethod(15);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Boolean_Test() throws Exception {
+ genericJSToJavaGetTestMethod(16);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Character_Test() throws Exception {
+ genericJSToJavaGetTestMethod(17);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_Byte_Test() throws Exception {
+ genericJSToJavaGetTestMethod(18);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_DoubleArrayElement_Test() throws Exception {
+ genericJSToJavaGetTestMethod(19);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = { Browsers.all })
+ @NeedsDisplay
+ public void AppletJSToJGet_DoubleFullArray_Test() throws Exception {
+ genericJSToJavaGetTestMethod(20);
+ }
+
+}