3636import java .io .IOException ;
3737import java .util .concurrent .ExecutionException ;
3838
39- import javax .script .Bindings ;
40- import javax .script .ScriptContext ;
4139import javax .script .ScriptEngine ;
4240import javax .script .ScriptException ;
4341
4442import org .junit .Test ;
4543import org .scijava .Context ;
46- import org .scijava .plugins .scripting .jruby .JRubyScriptEngine ;
4744import org .scijava .script .ScriptLanguage ;
4845import org .scijava .script .ScriptModule ;
4946import org .scijava .script .ScriptService ;
@@ -63,10 +60,8 @@ public void testBasic() throws InterruptedException, ExecutionException,
6360 final ScriptService scriptService = context .getService (ScriptService .class );
6461 final String script = "$x = 1 + 2;" ;
6562 final ScriptModule m = scriptService .run ("add.rb" , script , true ).get ();
66- final ScriptEngine engine = (ScriptEngine ) m .getReturnValue ();
67- final Object result = engine .get ("$x" );
68- // NB: Result is of type org.jruby.RubyFixnum.
69- assertEquals ("3" , result .toString ());
63+ final Object result = m .getReturnValue ();
64+ assertEquals (3L , result );
7065 }
7166
7267 @ Test
@@ -76,18 +71,14 @@ public void testLocals() throws ScriptException {
7671
7772 final ScriptLanguage language = scriptService .getLanguageByExtension ("rb" );
7873 final ScriptEngine engine = language .getScriptEngine ();
79- assertEquals (JRubyScriptEngine .class , engine .getClass ());
80- engine .put ("$hello" , 17 );
81- assertEquals ("17" , engine .eval ("$hello" ).toString ());
82- assertEquals ("17" , engine .get ("$hello" ).toString ());
83-
84- final Bindings bindings = engine .getBindings (ScriptContext .ENGINE_SCOPE );
85- bindings .clear ();
86- assertEquals ("" , engine .get ("$hello" ).toString ());
74+ final String engineClassName = engine .getClass ().getName ();
75+ assertEquals ("org.jruby.embed.jsr223.JRubyEngine" , engineClassName );
76+ engine .put ("hello" , 17 );
77+ assertEquals (17L , engine .eval ("$hello" ));
78+ assertEquals (17 , engine .get ("hello" ));
8779 }
8880
89- // FIXME: This test currently fails due to input injection failure.
90- // @Test
81+ @ Test
9182 public void testParameters () throws InterruptedException , ExecutionException ,
9283 IOException , ScriptException
9384 {
@@ -97,12 +88,12 @@ public void testParameters() throws InterruptedException, ExecutionException,
9788 final String script = "" + //
9889 "# @ScriptService ss\n " + //
9990 "# @OUTPUT String language\n " + //
100- "language = ss.getLanguageByName(\" Ruby \" ).getLanguageName\n " ;
91+ "$ language = $ ss.getLanguageByName(\" ruby \" ).getLanguageName\n " ;
10192 final ScriptModule m = scriptService .run ("hello.rb" , script , true ).get ();
10293
10394 final Object actual = m .getOutput ("language" );
10495 final String expected =
105- scriptService .getLanguageByName ("Ruby " ).getLanguageName ();
96+ scriptService .getLanguageByName ("ruby " ).getLanguageName ();
10697 assertEquals (expected , actual );
10798
10899 final Object result = m .getReturnValue ();
0 commit comments