📄 javascriptrunnertest.java
字号:
package cn.myapps.core.macro.runner;
import java.util.Collection;
import java.util.HashSet;
import junit.framework.TestCase;
import cn.myapps.base.action.ParamsTable;
import cn.myapps.core.dynaform.document.ejb.Document;
import cn.myapps.core.dynaform.document.ejb.DocumentProcessBean;
import cn.myapps.core.macro.repository.ejb.RepositoryProcess;
import cn.myapps.core.macro.repository.ejb.RepositoryProcessBean;
import cn.myapps.core.macro.repository.ejb.RepositoryVO;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.util.ProcessFactory;
public class JavaScriptRunnerTest extends TestCase {
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
/*
* Test method for
* 'cn.myapps.core.macro.runner.JavaScriptRunner.run(String)'
*/
public void testRun() throws Exception {
Document doc = null;
DocumentProcessBean dp = new DocumentProcessBean();
doc = (Document) dp.doView("1161831168796002");
RepositoryProcessBean rp = new RepositoryProcessBean();
RepositoryVO ry = (RepositoryVO) rp.doView("1155560754666000");
ParamsTable params = new ParamsTable();
UserVO uv = new UserVO();
WebUser user = new WebUser(uv);
Collection errors = new HashSet();
JavaScriptRunner jsrun = JavaScriptRunner.getInstance();
jsrun.initBSFManager(doc, params, user, errors, "");
/*
* String valuescript=" var rtn = \"ERROR!\"; var doc =
* $CURRDOC.getCurrDoc(); " + "if (doc!=null) { var item =
* doc.findItem(\"field1\"); " + "if (item!=null) { rtn =
* item.getValue(); } } rtn;";
*
* String valuescript1=" var rtn = \"ERROR!\"; var doc =
* $CURRDOC.getCurrDoc(); " + "if (doc!=null) { var item =
* doc.getClass().getName(); " + "if (item!=null) { rtn = item } }
* rtn;";
*
* String valuescript2=" function
* helloworld(){$PRINTER.println(\"peng77804\");};helloworld()"; String
* valuescript3=" $PRINTER.println(\"peng\"); ";
*/
// String script=ry.getContent();
// String
// script="$RepositoryProcess.doView(\"1155560754666000\").getContent()";
// String valuescript2=" function square(a){ return a*a;};square(8);";
// String valuescript3=" function square(a){ return a*a;};function
// add(c,d){return c+d;}; function test(){var rtn =
// \"ERROR!\";rtn=add(7,8)*square(2); return rtn;};test();";
// String c=" function add(a,b){return a+b;};function square(a){return
// a*a;};function test(){var rtn = \"ERROR!\";rtn=add(7,8); return
// rtn;};test();";
// String valuescript=" #include \"add\" #include \"square\" " +
// "function test(){var rtn = \"ERROR!\";rtn=add(10,5)*square(2); return
// rtn;}test()";
String valuescript = " #include \"add\" #include \"add\" #include\"square\" "
+ "var rtn = \"ERROR!\";rtn=add(10,5)*square(2); $PRINTER.println(\"result-->>\"+rtn)";
// String js=exp(valuescript);
Object result = jsrun.run(valuescript);
System.out.print(result);
}
public String exp(String js) throws Exception {
if (js.indexOf("#include") != -1) {
String Content = js;
HashSet set = new HashSet();
while (Content.indexOf("#include") != -1) {
String funname = null;
int k = 0, t = 0, e = 0;
k = Content.indexOf("#include");
t = Content.indexOf("\"", k + 8);
e = Content.indexOf("\"", t + 1);
funname = Content.substring(t + 1, e);
if (!set.contains(funname)) {
RepositoryProcess rp = (RepositoryProcess) ProcessFactory
.createProcess(RepositoryProcess.class);
RepositoryVO rpvo = rp.getRepositoryByName(funname, "");
if (rpvo != null)
Content += rpvo.getContent();
set.add(funname);
}
String st = Content.substring(0, k);
String ed = Content.substring(e + 1, Content.length());
Content = st + ed;
}
js = Content;
}
return js;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -