/hg/icedtea-web: Adding forgotten files for PR1198 reproducer

adomurad at icedtea.classpath.org adomurad at icedtea.classpath.org
Wed Nov 21 11:49:04 PST 2012


changeset 754a2eb7731e in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=754a2eb7731e
author: Adam Domurad <adomurad at redhat.com>
date: Wed Nov 21 14:41:48 2012 -0500

	Adding forgotten files for PR1198 reproducer


diffstat:

 netx-dist-tests-whitelist                                                     |   2 +-
 tests/reproducers/simple/JSObjectFromEval/resources/JSObjectFromEval.html     |  54 ++++++
 tests/reproducers/simple/JSObjectFromEval/resources/JSObjectFromEval.js       |  22 ++
 tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java          |  62 ++++++
 tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java |  90 ++++++++++
 5 files changed, 229 insertions(+), 1 deletions(-)

diffs (253 lines):

diff -r 4cd65d83965b -r 754a2eb7731e netx-dist-tests-whitelist
--- a/netx-dist-tests-whitelist	Wed Nov 21 14:18:31 2012 -0500
+++ b/netx-dist-tests-whitelist	Wed Nov 21 14:41:48 2012 -0500
@@ -1,1 +1,1 @@
-.*
+JSObjectFromEval
diff -r 4cd65d83965b -r 754a2eb7731e tests/reproducers/simple/JSObjectFromEval/resources/JSObjectFromEval.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSObjectFromEval/resources/JSObjectFromEval.html	Wed Nov 21 14:41:48 2012 -0500
@@ -0,0 +1,54 @@
+<!--
+
+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; either version 2, or (at your option)
+any later version.
+
+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.
+
+ -->
+<html>
+  <head></head>
+  <body>
+	<applet 
+		id = "applet" 
+		code = "JSObjectFromEval.class" 
+		archive = "JSObjectFromEval.jar"> 
+	</applet>
+    <script type = "text/javascript" 
+    	src = "JSObjectFromEval.js">
+    </script>
+    
+    <script type = "text/javascript">
+    		testJSObjectFromEval();
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff -r 4cd65d83965b -r 754a2eb7731e tests/reproducers/simple/JSObjectFromEval/resources/JSObjectFromEval.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSObjectFromEval/resources/JSObjectFromEval.js	Wed Nov 21 14:41:48 2012 -0500
@@ -0,0 +1,22 @@
+function testJSObjectFromEval() {
+	var applet = document.getElementById("applet");	
+	var obj;
+	
+	applet.output("*** Test JSObject from JS ***");
+
+	applet.output("JS create");
+	obj = new Object();
+	applet.output("Java set");
+	applet.setJSMember(obj, "test", 0);
+	applet.output("obj.test = " + obj.test);
+
+	applet.output("*** Test JSObject from Java ***");
+
+	applet.output("Java create");
+	obj = applet.newJSObject();
+	applet.output("Java set");
+	applet.setJSMember(obj, "test", 0);	
+	applet.output("obj.test = " + obj.test);
+
+	applet.output("*** APPLET FINISHED ***"); //We're done here
+}
\ No newline at end of file
diff -r 4cd65d83965b -r 754a2eb7731e tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java	Wed Nov 21 14:41:48 2012 -0500
@@ -0,0 +1,62 @@
+/*
+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 java.applet.Applet;
+
+import netscape.javascript.JSObject;
+
+public class JSObjectFromEval extends Applet {
+	@Override
+	public void start() {
+		System.out.println(getClass().getSimpleName() + " started.");
+	}
+
+	public void output(String s) {
+		System.out.println(s);
+	}
+
+	public JSObject newJSObject() {
+		JSObject win = JSObject.getWindow(this);
+		return (JSObject) win.eval("new Object()");
+	}
+
+	public void setJSMember(JSObject js, String memb, Object val) {
+		String typeName = val.getClass().getName();
+		System.out.println("setJSMember: passed '" + typeName + "'");
+		js.setMember(memb, val);
+	}
+}
\ No newline at end of file
diff -r 4cd65d83965b -r 754a2eb7731e tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java	Wed Nov 21 14:41:48 2012 -0500
@@ -0,0 +1,90 @@
+/*
+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 static org.junit.Assert.assertTrue;
+
+import net.sourceforge.jnlp.ProcessResult;
+import net.sourceforge.jnlp.ServerAccess.AutoClose;
+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 net.sourceforge.jnlp.browsertesting.BrowserTest;
+import net.sourceforge.jnlp.browsertesting.Browsers;
+import net.sourceforge.jnlp.closinglisteners.AutoOkClosingListener;
+
+import org.junit.Test;
+
+public class JSObjectFromEvalTest extends BrowserTest {
+
+	private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING;
+
+	private static final String JAVA_CREATE = "Java create\n";
+	private static final String JS_CREATE = "JS create\n";
+	private static final String JAVA_SET = "Java set\n";
+	private static final String PASSED_INTEGER = "setJSMember: passed 'java.lang.Integer'\n";
+	private static final String CORRECT_VALUE = "obj.test = 0";
+
+	@Test
+	@TestInBrowsers(testIn = { Browsers.all })
+	@NeedsDisplay
+	@Bug(id = { "PR1198" })
+	@KnownToFail
+	public void testJSObjectSetMemberIsSet() throws Exception {
+		ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html",
+				AutoClose.CLOSE_ON_BOTH);
+
+		String expectedJSCreateOutput = JS_CREATE + JAVA_SET + PASSED_INTEGER
+				+ CORRECT_VALUE;
+		String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET
+				+ PASSED_INTEGER + CORRECT_VALUE;
+
+		// No reason JS create should fail, this is mostly a sanity check:
+		assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE
+				+ "' but did not.", pr.stdout.contains(expectedJSCreateOutput));
+
+		// Demonstrates PR1198:
+		assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE
+				+ "' but did not.",
+				pr.stdout.contains(expectedJavaCreateOutput));
+
+		// Make sure we got to the end of the script
+		assertTrue("stdout should contain '" + END_STRING + "' but did not.",
+				pr.stdout.contains(END_STRING));
+	}
+
+}



More information about the distro-pkg-dev mailing list