Revision: 30044
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 6, 2010 13:10 by cadrlife
Initial Code
package com.cadrlife.mywebapp; import groovy.util.GroovyScriptEngine; import org.apache.commons.lang.RandomStringUtils; import org.junit.Before; import org.junit.Test; import com.google.common.collect.Lists; import com.google.common.io.Files; import com.google.common.io.Resources; import org.mozilla.javascript.Context; import org.mozilla.javascript.ContextFactory; import org.mozilla.javascript.ScriptableObject; import static org.junit.Assert.* public class MyWebAppTest { private Context cx; private ScriptableObject scope; @Before public void setup() throws Exception { cx = ContextFactory.getGlobal().enterContext(); cx.setOptimizationLevel(-1); cx.setLanguageVersion(Context.VERSION_1_5); scope = cx.initStandardObjects(); // Assumes we have env.rhino.js as a resource on the classpath. String envjs = getClass().getResourceAsStream("env.rhino.js").text; String printFunction = "function print(message) {java.lang.System.out.println(message);}"; cx.evaluateString(scope, printFunction, "print", 1, null); cx.evaluateString(scope, envjs, "env.rhino.js", 1, null); // This will load the home page DOM. run("window.location='http://localhost:5000'"); // Whatever script JS includes the home page has. def libs = ["/js/jquery-1.4.2.min.js", "/js/jquery-ui-1.8.2.custom.min.js", "/js/app.js"]; for (String lib : libs) { run(new URL("http://localhost:5000" + lib).text); } // Whatever happens on document ready. run('appInit()'); } @Test public void navigation() throws Exception { def h1Text = '$("h1:first").text()'; run('$(".nav .homeLink").click()'); assertJsEquals('Request Sets', h1Text); run('$(".nav .dashboardLink").click()'); assertJsEquals('Dashboard', h1Text); run('$(".nav .homeLink").click()'); assertJsEquals('Sacrifice Pig', h1Text); } private void assertJsEquals(String a, String b) { assertEquals(a,run(b)); } private void assertJsContains(String a, String b) { String result = run(b); assertTrue("${a} does not contain ${a}", result.contains(a)); } private String run(String js) throws Exception { Object result = cx.evaluateString(scope, js, "run", 1, null); return Context.toString(result); } }
Initial URL
Initial Description
Initial Title
Rhino env.js testing example
Initial Tags
javascript, DOM, groovy
Initial Language
Groovy