0001: package com.sun.portal.rewriter.engines.js.test;
0002:
0003: import com.sun.portal.rewriter.Rewriter;
0004: import com.sun.portal.rewriter.RewriterModule;
0005: import com.sun.portal.rewriter.RewriterPool;
0006: import com.sun.portal.rewriter.Translator;
0007: import com.sun.portal.rewriter.engines.LanguageConstants;
0008: import com.sun.portal.rewriter.rom.RuleSet;
0009: import com.sun.portal.rewriter.test.util.BasicTestCase;
0010: import com.sun.portal.rewriter.test.util.CreateRuleSet;
0011: import com.sun.portal.rewriter.test.util.JSWrapperHelper;
0012: import junit.framework.TestSuite;
0013:
0014: public class TestJSExpressionVariables extends BasicTestCase {
0015: public TestJSExpressionVariables(String aName) {
0016: super (aName);
0017: }//constuctor
0018:
0019: public void testArrayVars() throws Exception {
0020: String lInput = "var imgx = new Array();\n"
0021: + "imgx = \"/images/a.gif\"\n"
0022: + "imgxabc = \"/images/a.gif\"\n"
0023: + "imgx[1] = \"/images/a.gif\"\n"
0024: + "imgx[2] = \"/images/b.gif\"\n"
0025: + "imgx[3] = imagex[2] + \"/images/b.gif\"\n"
0026: + "imgx = \"/images/a.gif\"\n";
0027:
0028: String lExpectation = "var imgx ="
0029: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0030: + " new Array());\n"
0031: + "imgx = \"http://rajanagendra.sun.com/images/a.gif\"\n"
0032: + "imgxabc = \"http://rajanagendra.sun.com/images/a.gif\"\n"
0033: + "imgx[1] = \"http://rajanagendra.sun.com/images/a.gif\"\n"
0034: + "imgx[2] = \"http://rajanagendra.sun.com/images/b.gif\"\n"
0035: + "imgx[3] ="
0036: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0037: + " imagex[2] + \"/images/b.gif\")\n"
0038: + "imgx = \"http://rajanagendra.sun.com/images/a.gif\"\n"
0039: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0040:
0041: String lJSVarRules = "<Variable name=\"imgx*\"/>";
0042:
0043: RuleSet lRuleSet = CreateRuleSet
0044: .withJSVariableRules(lJSVarRules);
0045: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0046: LanguageConstants.JS_MIME);
0047: String lResult = lRewriter.rewrite(lInput,
0048: getDefaultJSTranslator());
0049: assertEquals(lExpectation, lResult);
0050: }//testArrayVars()
0051:
0052: public void testSimpleEXPRESSION() throws Exception {
0053: String[][] lData = {
0054: {
0055: "doc.all[all].src = b()+\"./xde.doc\";"
0056: + "doc.all[all].src = b() + 'eee' + x(\"./xde.doc\") + a;"
0057: + "doc.all[all].src =\"./xde.doc\";",
0058:
0059: "doc.all[all].src ="
0060: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0061: + " b()+\"./xde.doc\");"
0062: + "doc.all[all].src ="
0063: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0064: + " b() + 'eee' + x(\"./xde.doc\") + a);"
0065: + "doc.all[all].src =\"http://rajanagendra.sun.com/Base/Raja/xde.doc\";"
0066: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //0
0067:
0068: {
0069: "doc.all[all].src = \"./xde.doc\";"
0070: + "doc.all[all].src = b() + 'eee'"
0071: + "\n" + "x(\"./xde.doc\") + a;"
0072: + "doc.all[all].src = k+\"./xde.doc\";",
0073:
0074: "doc.all[all].src = \"http://rajanagendra.sun.com/Base/Raja/xde.doc\";"
0075: + "doc.all[all].src ="
0076: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0077: + " b() + 'eee')"
0078: + "\n"
0079: + "x(\"./xde.doc\") + a;"
0080: + "doc.all[all].src ="
0081: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0082: + " k+\"./xde.doc\");"
0083: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //1
0084:
0085: {
0086: "doc.all[all].src = b+\"./xde.doc\";"
0087: + "doc.all[all].src = b() + x(\"./xde.doc\") + a;"
0088: + "doc.all[all].src = b+\"./xde.doc\";",
0089:
0090: "doc.all[all].src ="
0091: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0092: + " b+\"./xde.doc\");"
0093: + "doc.all[all].src ="
0094: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0095: + " b() + x(\"./xde.doc\") + a);"
0096: + "doc.all[all].src ="
0097: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0098: + " b+\"./xde.doc\");"
0099: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //2
0100:
0101: {
0102: "doc.all[all].src = \"./xde.doc\"+b;"
0103: + "doc.all[all].src = b() + './xde.doc' + a;"
0104: + "doc.all[all].src = g+\"./xde.doc\";",
0105:
0106: "doc.all[all].src = \"http://rajanagendra.sun.com/Base/Raja/xde.doc\"+b;"
0107: + "doc.all[all].src ="
0108: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0109: + " b() + './xde.doc' + a);"
0110: + "doc.all[all].src ="
0111: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0112: + " g+\"./xde.doc\");"
0113: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //3
0114:
0115: {
0116: "doc.all[all].src = ''+\"./xde.doc\";"
0117: + "doc.all[all].src = b()"
0118: + "\n"
0119: + "'./xde.doc' + a;"
0120: + "doc.all[all].src = \" \"+\"./xde.doc\";",
0121:
0122: "doc.all[all].src ="
0123: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0124: + " ''+\"./xde.doc\");"
0125: + "doc.all[all].src ="
0126: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0127: + " b())"
0128: + "\n"
0129: + "'./xde.doc' + a;"
0130: + "doc.all[all].src ="
0131: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0132: + " \" \"+\"./xde.doc\");"
0133: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //4
0134:
0135: {
0136: "doc.all[all].src = job+\"./xde.doc\";"
0137: + "doc.all[all].src = b()" + "\n"
0138: + "x('./xde.doc') + a;"
0139: + "doc.all[all].src = jog+'./xde.doc';",
0140:
0141: "doc.all[all].src ="
0142: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0143: + " job+\"./xde.doc\");"
0144: + "doc.all[all].src ="
0145: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0146: + " b())"
0147: + "\n"
0148: + "x('./xde.doc') + a;"
0149: + "doc.all[all].src ="
0150: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0151: + " jog+'./xde.doc');"
0152: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //5
0153:
0154: {
0155: "doc.all[all].src = fun()+\"./xde.doc\";"
0156: + "doc.all[all].src = b()"
0157: + "\n"
0158: + "x(\"./xde.doc\") + a;"
0159: + "doc.all[all].src = fun()+\"./xde.doc\";",
0160:
0161: "doc.all[all].src ="
0162: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0163: + " fun()+\"./xde.doc\");"
0164: + "doc.all[all].src ="
0165: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0166: + " b())"
0167: + "\n"
0168: + "x(\"./xde.doc\") + a;"
0169: + "doc.all[all].src ="
0170: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0171: + " fun()+\"./xde.doc\");"
0172: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //6
0173:
0174: {
0175: "doc.all[all].src = b()" + "\n"
0176: + "x(\"./xde.doc\") + a;",
0177: "doc.all[all].src ="
0178: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0179: + " b())"
0180: + "\n"
0181: + "x(\"./xde.doc\") + a;"
0182: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //7
0183:
0184: {
0185: "doc.all[all].src = fun()+\"./xde.doc\";",
0186: "doc.all[all].src ="
0187: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0188: + " fun()+\"./xde.doc\");"
0189: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //8
0190:
0191: {
0192: "doc.all[all].src = fun()+'./xde.doc';",
0193: "doc.all[all].src ="
0194: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0195: + " fun()+'./xde.doc');"
0196: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //9
0197:
0198: {
0199: "doc.all[all].src = fun()+'./xde.doc' + a;",
0200: "doc.all[all].src ="
0201: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0202: + " fun()+'./xde.doc' + a);"
0203: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //10
0204:
0205: {
0206: "doc.all[all].src = \"/xde.doc\" + a;",
0207: "doc.all[all].src = \"http://rajanagendra.sun.com/xde.doc\" + a;", }, //11
0208:
0209: {
0210: "doc.all[all].src = b + './xde.doc' + a;",
0211: "doc.all[all].src ="
0212: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0213: + " b + './xde.doc' + a);"
0214: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //12
0215:
0216: {
0217: "doc.all[all].src = b + \"./xde.doc\" + a;",
0218: "doc.all[all].src ="
0219: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0220: + " b + \"./xde.doc\" + a);"
0221: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //13
0222:
0223: {
0224: "doc.all[all].src = b() + './xde.doc' + a;",
0225: "doc.all[all].src ="
0226: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0227: + " b() + './xde.doc' + a);"
0228: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //14
0229:
0230: {
0231: "doc.all[all].src = b() + \"./xde.doc\" + a;",
0232: "doc.all[all].src ="
0233: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0234: + " b() + \"./xde.doc\" + a);"
0235: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //15
0236:
0237: {
0238: "doc.all[all].src = b() + './xde.doc' + a();",
0239: "doc.all[all].src ="
0240: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0241: + " b() + './xde.doc' + a());"
0242: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //16
0243:
0244: {
0245: "doc.all[all].src = b() + \"./xde.doc\" + a();",
0246: "doc.all[all].src ="
0247: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0248: + " b() + \"./xde.doc\" + a());"
0249: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //17
0250:
0251: {
0252: "doc.all[all].src = b() + x('./xde.doc') + a;",
0253: "doc.all[all].src ="
0254: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0255: + " b() + x('./xde.doc') + a);"
0256: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //18
0257:
0258: {
0259: "doc.all[all].src = b() + x(\"./xde.doc\") + a;",
0260: "doc.all[all].src ="
0261: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0262: + " b() + x(\"./xde.doc\") + a);"
0263: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //19
0264:
0265: { "doc.all[all].src += \"./xde.doc\";",
0266: "doc.all[all].src += \"./xde.doc\";", }, //20
0267:
0268: { "doc.all[all].src += './xde.doc';",
0269: "doc.all[all].src += './xde.doc';", }, //21
0270:
0271: { "doc.all[all].src -= \"./xde.doc\";",
0272: "doc.all[all].src -= \"./xde.doc\";", }, //22
0273:
0274: { "doc.all[all].src -= './xde.doc';",
0275: "doc.all[all].src -= './xde.doc';", }, //23
0276:
0277: {
0278: "doc.all[all].src = b()" + "\n"
0279: + "x(\"./xde.doc\") + a;",
0280: "doc.all[all].src ="
0281: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0282: + " b())"
0283: + "\n"
0284: + "x(\"./xde.doc\") + a;"
0285: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //24
0286:
0287: {
0288: "doc.all[all].src ='\t'+ b()" + "\n"
0289: + "x('./xde.doc') + a;",
0290: "doc.all[all].src ="
0291: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0292: + "'\t'+ b())"
0293: + "\n"
0294: + "x('./xde.doc') + a;"
0295: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //25
0296:
0297: {
0298: "doc.all[all].src ='\t'+ b()" + "\n"
0299: + "x('./xde.doc') + a;",
0300: "doc.all[all].src ="
0301: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0302: + "'\t'+ b())"
0303: + "\n"
0304: + "x('./xde.doc') + a;"
0305: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //26
0306:
0307: {
0308: "doc.all[all].src = b()" + "\n"
0309: + "x(\"./xde.doc\") + a +'\n';",
0310: "doc.all[all].src ="
0311: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0312: + " b())"
0313: + "\n"
0314: + "x(\"./xde.doc\") + a +'\n';"
0315: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //27
0316:
0317: {
0318: "doc.all[all].src ='\t'+ b()" + "\n"
0319: + "x('./xde.doc') + a+'\n';",
0320: "doc.all[all].src ="
0321: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0322: + "'\t'+ b())"
0323: + "\n"
0324: + "x('./xde.doc') + a+'\n';"
0325: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //28
0326:
0327: {
0328: "doc.all[all].src = '\t' + b()" + "\n"
0329: + "x(\"./xde.doc\") + a;",
0330: "doc.all[all].src ="
0331: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0332: + " '\t' + b())"
0333: + "\n"
0334: + "x(\"./xde.doc\") + a;"
0335: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //29
0336:
0337: {
0338: "doc.all[all].src = b()" + "\n"
0339: + "x('./xde.doc') + a;",
0340: "doc.all[all].src ="
0341: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0342: + " b())"
0343: + "\n"
0344: + "x('./xde.doc') + a;"
0345: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //30
0346:
0347: {
0348: "doc.all[all].src = 'a\t' + b()" + "\n"
0349: + "x(\"./xde.doc\") + a;",
0350: "doc.all[all].src = 'http://rajanagendra.sun.com/Base/Raja/a\t' + b()"
0351: + "\n" + "x(\"./xde.doc\") + a;", }, //31
0352:
0353: {
0354: "doc.all[all].src = 'httpa\t' + b() \n"
0355: + "x(\"./xde.doc\") + a;",
0356: "doc.all[all].src ="
0357: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0358: + " 'httpa\t' + b()) \n"
0359: + "x(\"./xde.doc\") + a;"
0360: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //32
0361:
0362: {
0363: "doc.all[all].src ='' + b()" + "\n"
0364: + "x(\"./xde.doc\") + a +'\n';",
0365: "doc.all[all].src ="
0366: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0367: + "'' + b())"
0368: + "\n"
0369: + "x(\"./xde.doc\") + a +'\n';"
0370: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //33
0371:
0372: {
0373: "doc.all[all].src =\"\" + b()" + "\n"
0374: + "x('./xde.doc') + a+'\n';",
0375: "doc.all[all].src ="
0376: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0377: + "\"\" + b())"
0378: + "\n"
0379: + "x('./xde.doc') + a+'\n';"
0380: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //34
0381:
0382: //negative test case - invalid JS
0383: {
0384: "doc.all[all].src = 'a\t' + b() + '\n' + x(\"./xde.doc\") + a;",
0385: "doc.all[all].src = 'a\t' + b() + '\n' + x(\"./xde.doc\") + a;",
0386: //"doc.all[all].src =" + LanguageConstants.CONVERT_EXPRESSION_FUNCTION_WRAP_START + " 'a\t' + b() + '\n' + x(\"./xde.doc\") + a;" + TestHTMLJSTokens.CONVERT_EXPRESSION_FUNCTION_JS,
0387: }, //35
0388:
0389: {
0390: "doc.all[all].src = 'a\t' + b() + \"\n\" + x(\"./xde.doc\") + a;",
0391: "doc.all[all].src = 'a\t' + b() + \"\n\" + x(\"./xde.doc\") + a;",
0392: //"doc.all[all].src =" + LanguageConstants.CONVERT_EXPRESSION_FUNCTION_WRAP_START + " 'a\t' + b() + \"\n\" + x(\"./xde.doc\") + a;" + TestHTMLJSTokens.CONVERT_EXPRESSION_FUNCTION_JS,
0393: }, //36
0394:
0395: {
0396: "doc.all[all].src ='\"' + b()" + "\n"
0397: + "x(\"./xde.doc\") + a +'\n';",
0398: "doc.all[all].src ="
0399: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0400: + "'\"' + b())"
0401: + "\n"
0402: + "x(\"./xde.doc\") + a +'\n';"
0403: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //37
0404:
0405: {
0406: "doc.all[all].src =\"''\" + b()" + "\n"
0407: + "x('./xde.doc') + a+'\n';",
0408: "doc.all[all].src ="
0409: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0410: + "\"''\" + b())"
0411: + "\n"
0412: + "x('./xde.doc') + a+'\n';"
0413: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //38
0414:
0415: {
0416: "doc.all[all].src ='\"/index.html' + b()"
0417: + "\n"
0418: + "x(\"./xde.doc\") + a +'\"\n';",
0419: "doc.all[all].src ='\"http://rajanagendra.sun.com/index.html' + b()"
0420: + "\n"
0421: + "x(\"./xde.doc\") + a +'\"\n';", }, //39
0422:
0423: {
0424: "doc.all[all].src =\"'\"index.html'\" + b()"
0425: + "\n" + "x('./xde.doc') + a+'\"\n';",
0426: "doc.all[all].src =\"'\"index.html'\" + b()"
0427: + "\n" + "x('./xde.doc') + a+'\"\n';",
0428: //"doc.all[all].src =" + LanguageConstants.CONVERT_EXPRESSION_FUNCTION_WRAP_START + "\"'\")index.html'\" + b()" + "\n" + "x('./xde.doc') + a+'\"\n';" + TestHTMLJSTokens.CONVERT_EXPRESSION_FUNCTION_JS,
0429: }, //40
0430: };
0431:
0432: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>";
0433:
0434: for (int i = 0; i < lData.length; i++) {
0435: RuleSet lRuleSet = CreateRuleSet
0436: .withJSVariableRules(lJSVarRules);
0437: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0438: LanguageConstants.JS_MIME);
0439: String lResult = lRewriter.rewrite(lData[i][0],
0440: getDefaultJSTranslator());
0441: assertEquals("ExpressionTranslation failed at i=" + i,
0442: lData[i][1], lResult);
0443: }
0444: }//testSimpleEXPRESSION()
0445:
0446: public void testSpecialEXPRESSION() throws Exception {
0447: String[][] lData = {
0448: {
0449: "doc.all[all].src = '../../' + './xde.doc';",
0450: "doc.all[all].src = 'http://rajanagendra.sun.com/' + './xde.doc';", }, //0
0451:
0452: {
0453: "doc.all[all].src = '/../' + './xde.doc';",
0454: "doc.all[all].src = 'http://rajanagendra.sun.com/' + './xde.doc';", }, //1
0455:
0456: {
0457: "doc.all[all].src = './' + './xde.doc';",
0458: "doc.all[all].src = 'http://rajanagendra.sun.com/Base/Raja/' + './xde.doc';", }, //2
0459:
0460: {
0461: "doc.all[all].src = '/./' + b();",
0462: "doc.all[all].src = 'http://rajanagendra.sun.com/' + b();", }, //3
0463:
0464: {
0465: "doc.all[all].src = '/' + './xde.doc';",
0466: "doc.all[all].src = 'http://rajanagendra.sun.com/' + './xde.doc';", }, //4
0467:
0468: {
0469: "doc.all[all].src = '' + var22;",
0470: "doc.all[all].src ="
0471: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0472: + " '' + var22);"
0473: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //5
0474:
0475: {
0476: "doc.all[all].src = \"\" + \"./xde.doc\";",
0477: "doc.all[all].src ="
0478: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0479: + " \"\" + \"./xde.doc\");"
0480: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //6
0481:
0482: {
0483: "doc.all[all].src = 'Http://a' + \"./xde.doc\";",
0484: "doc.all[all].src = 'Http://a' + \"./xde.doc\";", }, //7
0485:
0486: {
0487: "doc.all[all].src = 'HttpS://a' + \"./xde.doc\";",
0488: "doc.all[all].src = 'HttpS://a' + \"./xde.doc\";", }, //8
0489:
0490: {
0491: "doc.all[all].src = 'httpS://' + \"./xde.doc\";",
0492: "doc.all[all].src ="
0493: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0494: + " 'httpS://' + \"./xde.doc\");"
0495: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //9
0496:
0497: {
0498: "doc.all[all].src = 'httP:'+ '//' + \"./xde.doc\";",
0499: "doc.all[all].src ="
0500: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0501: + " 'httP:'+ '//' + \"./xde.doc\");"
0502: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //10
0503:
0504: {
0505: "doc.all[all].src = 'hTTp' +'://' + \"./xde.doc\";",
0506: "doc.all[all].src ="
0507: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0508: + " 'hTTp' +'://' + \"./xde.doc\");"
0509: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //11
0510:
0511: {
0512: "doc.all[all].src = \"htTp://\" + \"./xde.doc\";",
0513: "doc.all[all].src ="
0514: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0515: + " \"htTp://\" + \"./xde.doc\");"
0516: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //12
0517:
0518: {
0519: "doc.all[all].src = \"htTp:\" + \"//\" + \"./xde.doc\";",
0520: "doc.all[all].src ="
0521: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0522: + " \"htTp:\" + \"//\" + \"./xde.doc\");"
0523: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //13
0524:
0525: {
0526: "doc.all[all].src = \"HttP\"+ \"://\" + \"./xde.doc\";",
0527: "doc.all[all].src ="
0528: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0529: + " \"HttP\"+ \"://\" + \"./xde.doc\");"
0530: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //14
0531:
0532: {
0533: "doc.all[all].src = \"./\" + \"./xde.doc\";",
0534: "doc.all[all].src = \"http://rajanagendra.sun.com/Base/Raja/\" + \"./xde.doc\";", }, //15
0535:
0536: {
0537: "doc.all[all].src = \"/\" + \"./xde.doc\";",
0538: "doc.all[all].src = \"http://rajanagendra.sun.com/\" + \"./xde.doc\";", }, //16
0539:
0540: {
0541: "doc.all[all].src = \"hTtp://a\" + \"./xde.doc\";",
0542: "doc.all[all].src = \"hTtp://a\" + \"./xde.doc\";", }, //17
0543:
0544: {
0545: "doc.all[all].src = \"ftp://a\" + \"./xde.doc\";",
0546: "doc.all[all].src = \"ftp://a\" + \"./xde.doc\";", }, //18
0547: };
0548:
0549: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\" source=\"http*\"/>";
0550:
0551: for (int i = 0; i < lData.length; i++) {
0552: RuleSet lRuleSet = CreateRuleSet
0553: .withJSVariableRules(lJSVarRules);
0554: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0555: LanguageConstants.JS_MIME);
0556: String lResult = lRewriter.rewrite(lData[i][0],
0557: getDefaultJSTranslator());
0558: assertEquals("ExpressionTranslation failed at i=" + i,
0559: lData[i][1], lResult);
0560: }
0561: }//testSpecialEXPRESSION()
0562:
0563: public void testHTMLEntityURIEXPRESSION() throws Exception {
0564: String[][] lData = {
0565: {
0566: //HTML Entities as path part URI
0567: "doc.all[all].src = \"./\" + \"../xde.doc\";",
0568: "doc.all[all].src ="
0569: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0570: + " \"./\" + \"../xde.doc\");"
0571: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS,
0572: //"doc.all[all].src =\"http://rajanagendra.sun.com/Base/Raja/\" + \"../xde.doc\";",
0573: }, //0
0574:
0575: {
0576: //HTML Entities as part of Query part of URI
0577: "doc.all[all].src =A+'/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1'",
0578: "doc.all[all].src ="
0579: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0580: + "A+'/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1')"
0581: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //1
0582:
0583: {
0584: //HTML Entities as part of Query part of URI
0585: "doc.all[all].src ='/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1'",
0586: "doc.all[all].src ='http://rajanagendra.sun.com/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1'", }, //2
0587:
0588: {
0589: //HTML Entities as part of Query part of URI
0590: "doc.all[all].src =A+'/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1';",
0591: "doc.all[all].src ="
0592: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0593: + "A+'/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1');"
0594: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS, }, //1
0595:
0596: {
0597: //HTML Entities as part of Query part of URI
0598: "doc.all[all].src ='/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1';",
0599: "doc.all[all].src ='http://rajanagendra.sun.com/command.shtml?view=new_cal&id=ebm0q3u6y92m2nv9&crc=3002401687&date=20021005T013040&newCalCalID=tuser&tzid=&e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&freebusy=1&tab=1&prevView=monthview&calid=tuser&security=1';", }, //2
0600: };
0601:
0602: String lJSVarRules = "<Variable name=\"*.src\"/>";
0603:
0604: for (int i = 0; i < lData.length; i++) {
0605: RuleSet lRuleSet = CreateRuleSet
0606: .withJSVariableRules(lJSVarRules);
0607: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0608: LanguageConstants.JS_MIME);
0609: String lResult = lRewriter.rewrite(lData[i][0],
0610: getDefaultJSTranslator());
0611: assertEquals("ExpressionTranslation failed at i=" + i,
0612: lData[i][1], lResult);
0613: }
0614: }//testHTMLEntityURIEXPRESSION()
0615:
0616: public void testExpressionVariablePlusEqual() throws Exception {
0617: String lInput = "var ab += top.location + \"./abc.html\";"
0618: + "var ab = top.location + \"./abc.html\";";
0619:
0620: String lExpectation = "var ab += top.location + \"./abc.html\";"
0621: + "var ab ="
0622: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0623: + " top.location + \"./abc.html\");"
0624: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0625:
0626: String lJSVarRules = "<Variable name=\"a*b\" type=\"EXPRESSION\"/>";
0627:
0628: RuleSet lRuleSet = CreateRuleSet
0629: .withJSVariableRules(lJSVarRules);
0630: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0631: LanguageConstants.JS_MIME);
0632: String lResult = lRewriter.rewrite(lInput,
0633: getDefaultJSTranslator());
0634: assertEquals(lExpectation, lResult);
0635: }//testExpressionVariablePlusEqual()
0636:
0637: public void testExpressionVariableDivEqual() throws Exception {
0638: String lInput = "var ab = top.location + \"./abc.html\";"
0639: + "var ab %= top.location + \"./abc.html\";"
0640: + "var ab = top.location + \"./abc.html\";";
0641:
0642: String lExpectation = "var ab ="
0643: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0644: + " top.location + \"./abc.html\");"
0645: + "var ab %= top.location + \"./abc.html\";"
0646: + "var ab ="
0647: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0648: + " top.location + \"./abc.html\");"
0649: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0650:
0651: String lJSVarRules = "<Variable name=\"*ab*\" source=\"HTT*BAS*\" type=\"EXPRESSION\"/>";
0652: RuleSet lRuleSet = CreateRuleSet
0653: .withJSVariableRules(lJSVarRules);
0654: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0655: LanguageConstants.JS_MIME);
0656: String lResult = lRewriter.rewrite(lInput,
0657: getDefaultJSTranslator());
0658: assertEquals(lExpectation, lResult);
0659: }//testExpressionVariableDivEqual()
0660:
0661: public void testExpressionVariable0() throws Exception {
0662: String lInput = "var ab = top.location + \"./abc.html\";";
0663: String lExpectation = "var ab ="
0664: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0665: + " top.location + \"./abc.html\");"
0666: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0667: String lRules = "<Variable name=\"ab\" type=\"EXPRESSION\"/>";
0668: RuleSet lRuleSet = CreateRuleSet.withJSVariableRules(lRules);
0669: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0670: LanguageConstants.JS_MIME);
0671: String lResult = lRewriter.rewrite(lInput,
0672: getDefaultJSTranslator());
0673: assertEquals(lExpectation, lResult);
0674: }//testExpressionVariable0()
0675:
0676: public void testFunctionVariable0() throws Exception {
0677: final String[] lShouldMatch = { "this.location.href", //0
0678: "*.*.*", //1
0679: "th*loc*.*f", //2
0680: "th*s.*.h*ef", //3
0681: };
0682:
0683: final String lInput = "function gotoanotherweb()\n"
0684: + "{\n"
0685: + " this.location.href = \"http://\"+\"iplanet.India.Sun.COM/products/index.html\";\n"
0686: + "}";
0687:
0688: String lExpectation = "function gotoanotherweb()\n"
0689: + "{\n"
0690: + " this.location.href ="
0691: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0692: + " \"http://\"+\"iplanet.India.Sun.COM/products/index.html\");\n"
0693: + "}" + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0694:
0695: String lRules;
0696: for (int i = (lShouldMatch.length - 1); i >= 0; i--) {
0697: lRules = "<Variable name=\"" + lShouldMatch[i]
0698: + "\" type=\"EXPRESSION\"/>";
0699: RuleSet lRuleSet = CreateRuleSet
0700: .withJSVariableRules(lRules);
0701: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0702: LanguageConstants.JS_MIME);
0703: String lResult = lRewriter.rewrite(lInput,
0704: getDefaultJSTranslator());
0705: assertEquals("Failed Pattern = " + lShouldMatch[i] + ":"
0706: + i + "\n", lExpectation, lResult);
0707: }//for loop
0708: }//testFunctionVariable0()
0709:
0710: public void testFunctionVariable1() throws Exception {
0711: String[] lShouldMatch = { "href", //0
0712: };
0713:
0714: String lInput = "function gotoanotherweb()\n"
0715: + "{\n"
0716: + " href =\"http://\"+\"iplanet.India.Sun.COM/products/index.html\";\n"
0717: + "}";
0718:
0719: String lExpectation = "function gotoanotherweb()\n"
0720: + "{\n"
0721: + " href ="
0722: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0723: + "\"http://\"+\"iplanet.India.Sun.COM/products/index.html\");\n"
0724: + "}" + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0725:
0726: String lRules;
0727: for (int i = (lShouldMatch.length - 1); i >= 0; i--) {
0728: lRules = "<Variable name=\"" + lShouldMatch[i]
0729: + "\" type=\"EXPRESSION\"/>";
0730: RuleSet lRuleSet = CreateRuleSet
0731: .withJSVariableRules(lRules);
0732: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0733: LanguageConstants.JS_MIME);
0734: String lResult = lRewriter.rewrite(lInput,
0735: getDefaultJSTranslator());
0736: assertEquals("Failed Pattern = " + lShouldMatch[i] + ":"
0737: + i + "\n", lExpectation, lResult);
0738: }//for loop
0739: }//testFunctionVariable1()
0740:
0741: public void testSimpleExpressionVariables() throws Exception {
0742: String[][] lData = {
0743: {
0744: "expressionVar='../../abc.html' \t " + "\t"
0745: + "'window';",
0746: "expressionVar='http://rajanagendra.sun.com/abc.html' \t \t'window';",
0747: "<Variable name=\"expressionVar\"/>" }, //0
0748:
0749: {
0750: "expressionVar='../../abc.html' \t " + "\t"
0751: + "+'window';",
0752: "expressionVar='http://rajanagendra.sun.com/abc.html' \t \t+'window';",
0753: "<Variable name=\"expressionVar\" type=\"EXPRESSION\"/>" }, //0
0754: };
0755:
0756: for (int i = 0; i < lData.length; i++) {
0757: RuleSet lRuleSet = CreateRuleSet
0758: .withJSVariableRules(lData[i][2]);
0759: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0760: LanguageConstants.JS_MIME);
0761: String lResult = lRewriter.rewrite(lData[i][0],
0762: getDefaultJSTranslator());
0763: assertEquals("Starts With Failed: i = " + i, lData[i][1],
0764: lResult);
0765: }//for loop
0766: }//testSimpleExpressionVariables()
0767:
0768: public void testExpressionWithComment() throws Exception {
0769: String lInput = "<SCRIPT LANGUAGE=\"JavaScript\">\n" + "<!--\n"
0770: + " Flash_embedSWF(\"swift3d.swf\", \"/sonify\");\n"
0771: + " var mySwf = var2.abc\t\t+'/raja.com';\n"
0772: + "//end -->" + "</SCRIPT>\n";
0773:
0774: String lExpectation = JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_HTML
0775: + "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0776: + "<!--\n"
0777: + " Flash_embedSWF(\"swift3d.swf\", \"http://rajanagendra.sun.com/sonify\");\n"
0778: + " var mySwf ="
0779: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0780: + " var2.abc\t\t+'/raja.com');\n"
0781: + "//end -->"
0782: + "</SCRIPT>\n";
0783:
0784: String lJSVarRules = "<Variable name=\"mySwf\" type=\"EXPRESSION\"/>\t"
0785: + "<Variable name=\"mySwf2\" type=\"URL\"/>";
0786: String lJSFunRules = "<Function type=\"URL\" name=\"Flash_embedSWF\" paramPatterns=\",y\"/>";
0787:
0788: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
0789: lJSVarRules, lJSFunRules);
0790: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0791: LanguageConstants.HTML_MIME);
0792: Translator lDefaultTranslator = getDefaultTranslator();
0793: String lResult = lRewriter.rewrite(lInput, lDefaultTranslator);
0794: assertEquals(lExpectation, lResult);
0795: }//testExpressionWithComment()
0796:
0797: public void testExpressionWithVarAndFuncComment() throws Exception {
0798: String lInput = "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0799: + "<!--\n"
0800: + " Flash_embedSWF('' + \"swift3d.swf\", var1+\"/sonify\");\n"
0801: + " var mySwf = '' + '/raja.com';\n" + "//end -->"
0802: + "</SCRIPT>\n";
0803:
0804: String lExpectation = JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_HTML
0805: + "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0806: + "<!--\n"
0807: + " Flash_embedSWF('' + \"swift3d.swf\","
0808: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0809: + " var1+\"/sonify\"));\n"
0810: + " var mySwf ="
0811: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0812: + " '' + '/raja.com');\n" + "//end -->" + "</SCRIPT>\n";
0813:
0814: String lJSVarRules = "<Variable name=\"mySwf\" type=\"EXPRESSION\"/>\t"
0815: + "<Variable name=\"mySwf2\" type=\"URL\"/>";
0816: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"Flash_embedSWF\" paramPatterns=\",y\"/>";
0817:
0818: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
0819: lJSVarRules, lJSFunRules);
0820: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0821: LanguageConstants.HTML_MIME);
0822: Translator lDefaultTranslator = getDefaultTranslator();
0823: String lResult = lRewriter.rewrite(lInput, lDefaultTranslator);
0824: assertEquals(lExpectation, lResult);
0825: }//testExpressionWithVarAndFuncComment()
0826:
0827: public void testExpressionWithVarAndFuncComment1() throws Exception {
0828: String lInput = "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0829: + "<!--\n"
0830: + " Flash_embedSWF(\"\t\" + \"swift3d.swf\", \" \t \"+\"/sonify\");\n"
0831: + " var mySwf = \"\t \t\" + '/raja.com';\n"
0832: + "//end -->" + "</SCRIPT>\n";
0833:
0834: String lExpectation = JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_HTML
0835: + "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0836: + "<!--\n"
0837: + " Flash_embedSWF(\"\t\" + \"swift3d.swf\","
0838: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0839: + " \" \t \"+\"/sonify\"));\n"
0840: + " var mySwf ="
0841: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0842: + " \"\t \t\" + '/raja.com');\n"
0843: + "//end -->"
0844: + "</SCRIPT>\n";
0845:
0846: String lJSVarRules = "<Variable name=\"mySwf\" type=\"EXPRESSION\"/>\t"
0847: + "<Variable name=\"mySwf2\" type=\"URL\"/>";
0848:
0849: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"Flash_embedSWF\" paramPatterns=\",y\"/>";
0850:
0851: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
0852: lJSVarRules, lJSFunRules);
0853: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0854: LanguageConstants.HTML_MIME);
0855: Translator lDefaultTranslator = getDefaultTranslator();
0856: String lResult = lRewriter.rewrite(lInput, lDefaultTranslator);
0857: assertEquals(lExpectation, lResult);
0858: }//testExpressionWithVarAndFuncComment1()
0859:
0860: public void testExpressionWithRecursiveVarAndFuncComment()
0861: throws Exception {
0862: String lInput = "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0863: + "<!--\n"
0864: + " Flash_embedSWF(\"swift3d.swf\","
0865: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0866: + " \"/sonify\"));\n"
0867: + " var mySwf ="
0868: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0869: + " '/raja.com');\n" + "//end -->" + "</SCRIPT>\n";
0870:
0871: String lExpectation = JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_HTML
0872: + "<SCRIPT LANGUAGE=\"JavaScript\">\n"
0873: + "<!--\n"
0874: + " Flash_embedSWF(\"swift3d.swf\","
0875: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0876: + ""
0877: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0878: + " \"/sonify\")));\n"
0879: + " var mySwf ="
0880: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0881: + ""
0882: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0883: + " '/raja.com'));\n" + "//end -->" + "</SCRIPT>\n";
0884:
0885: String lJSVarRules = "<Variable name=\"mySwf\" type=\"EXPRESSION\"/>\t"
0886: + "<Variable name=\"mySwf2\" type=\"URL\"/>";
0887: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"Flash_embedSWF\" paramPatterns=\",y\"/>";
0888:
0889: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
0890: lJSVarRules, lJSFunRules);
0891: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0892: LanguageConstants.HTML_MIME);
0893: String lResult = lRewriter.rewrite(lInput,
0894: getDefaultTranslator());
0895: assertEquals(lExpectation, lResult);
0896: }//testExpressionWithRecursiveVarAndFuncComment()
0897:
0898: public void testBugNo4693657() throws Exception {
0899: String lInput = "<html>\n"
0900: + "<script>\n"
0901: + "var myimgsrc = var1+\"/test.html\"\n"
0902: + "document.writeln(myimgsrc)\n"
0903: + "document.writeln(\"<BR>\")\n"
0904: + "\n"
0905: + "var myimgsrc =var1+ \"http://srap.india.sun.com/test.html\"\n"
0906: + "document.writeln(myimgsrc)\n" + "</script>\n"
0907: + "</html>\n";
0908:
0909: String lExpectation = "<html>\n"
0910: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_HTML
0911: + "<script>\n"
0912: + "var myimgsrc ="
0913: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0914: + " var1+\"/test.html\")\n"
0915: + "document.writeln(myimgsrc)\n"
0916: + "document.writeln(\"<BR>\")\n"
0917: + "\n"
0918: + "var myimgsrc ="
0919: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0920: + "var1+\t\"http://srap.india.sun.com/test.html\")\n"
0921: + "document.writeln(myimgsrc)\n" + "</script>\n"
0922: + "</html>\n";
0923:
0924: String lJSVarRules = "<Variable name=\"myimgsrc\" type=\"EXPRESSION\"/>\t"
0925: + "<Variable name=\"mySwf2\" type=\"URL\"/>";
0926:
0927: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
0928: lJSVarRules, "");
0929: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0930: LanguageConstants.HTML_MIME);
0931: String lResult = lRewriter.rewrite(lInput,
0932: getDefaultTranslator());
0933: assertEquals(lExpectation, lResult);
0934: }//testBugNo4693657()
0935:
0936: public void testEXPRESSIONVar() throws Exception {
0937: String lInput = "doc.all[all].src = var1+'abc' + b() + x(var1 + \"./xde.doc\") + a;";
0938: String lExpectation = "doc.all[all].src ="
0939: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0940: + " var1+'abc' + b() + x(var1 + \"./xde.doc\") + a);"
0941: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0942:
0943: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
0944: + "<Variable name=\"url\" type=\"URL\"/>";
0945:
0946: RuleSet lRuleSet = CreateRuleSet
0947: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules, "");
0948: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0949: LanguageConstants.JS_MIME);
0950: String lResult = lRewriter.rewrite(lInput,
0951: getDefaultJSTranslator());
0952: assertEquals(lExpectation, lResult);
0953: }//testEXPRESSIONVar()
0954:
0955: public void testEXPRESSIONVarFun() throws Exception {
0956: String lInput = "doc.all[all].src = var1+ 'abc' + b() + x(var1 + \"./xde.doc\") + a;";
0957: String lExpectation = "doc.all[all].src ="
0958: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0959: + " var1+ 'abc' + b() + x("
0960: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0961: + "var1 + \"./xde.doc\")) + a);"
0962: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0963:
0964: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
0965: + " <Variable name=\"url\" type=\"URL\"/>";
0966: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
0967:
0968: RuleSet lRuleSet = CreateRuleSet
0969: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
0970: lJSFunRules);
0971: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0972: LanguageConstants.JS_MIME);
0973: String lResult = lRewriter.rewrite(lInput,
0974: getDefaultJSTranslator());
0975: assertEquals(lExpectation, lResult);
0976: }//testEXPRESSIONVarFun()
0977:
0978: public void testURLVarExpressionFun() throws Exception {
0979: String lInput = "doc.all[all].src = '../abc' + b() + x(var1 + \"./xde.doc\") + a;";
0980: String lExpectation = "doc.all[all].src = 'http://rajanagendra.sun.com/Base/abc' + b() + x("
0981: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0982: + "var1 + \"./xde.doc\")) + a;"
0983: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
0984:
0985: String lJSVarRules = "<Variable name=\"*.src\" type=\"URL\"/>"
0986: + "<Variable name=\"url\" type=\"URL\"/>";
0987: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
0988:
0989: RuleSet lRuleSet = CreateRuleSet
0990: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
0991: lJSFunRules);
0992: Rewriter lRewriter = RewriterPool.create(lRuleSet,
0993: LanguageConstants.JS_MIME);
0994: String lResult = lRewriter.rewrite(lInput,
0995: getDefaultJSTranslator());
0996: assertEquals(lExpectation, lResult);
0997: }//testURLVarExpressionFun()
0998:
0999: public void testEXPRESSIONVarURLFun() throws Exception {
1000: String lInput = "doc.all[all].src = b() + 'abc' + b() + x(\"./xde.doc\") + a;";
1001: String lExpectation = "doc.all[all].src ="
1002: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1003: + " b() + 'abc' + b() + x(\"http://rajanagendra.sun.com/Base/Raja/xde.doc\") + a);"
1004: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1005:
1006: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1007: + " <Variable name=\"url\" type=\"URL\"/>";
1008: String lJSFunRules = "<Function type=\"URL\" name=\"x\" paramPatterns=\"y\" />";
1009:
1010: RuleSet lRuleSet = CreateRuleSet
1011: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1012: lJSFunRules);
1013: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1014: LanguageConstants.JS_MIME);
1015: String lResult = lRewriter.rewrite(lInput,
1016: getDefaultJSTranslator());
1017: assertEquals(lExpectation, lResult);
1018: }//testEXPRESSIONVarURLFun()
1019:
1020: public void testEXPRESSIONVarVarient() throws Exception {
1021: String lInput = "doc.all[all].src = b()" + "\n"
1022: + "x(var1 + \"./xde.doc\") + a;";
1023: String lExpectation = "doc.all[all].src ="
1024: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1025: + " b())" + "\n" + "x(var1 + \"./xde.doc\") + a;"
1026: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1027:
1028: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1029: + "<Variable name=\"url\" type=\"URL\"/>";
1030:
1031: RuleSet lRuleSet = CreateRuleSet
1032: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules, "");
1033: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1034: LanguageConstants.JS_MIME);
1035: String lResult = lRewriter.rewrite(lInput,
1036: getDefaultJSTranslator());
1037: assertEquals(lExpectation, lResult);
1038: }//testEXPRESSIONVar()
1039:
1040: public void testEXPRESSIONVarFunVarient() throws Exception {
1041: String lInput = "doc.all[all].src = b()" + "\n"
1042: + "x(var1 + \"./xde.doc\") + a;";
1043: String lExpectation = "doc.all[all].src ="
1044: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1045: + " b())"
1046: + "\n"
1047: + "x("
1048: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1049: + "var1 + \"./xde.doc\")) + a;"
1050: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1051:
1052: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1053: + "<Variable name=\"url\" type=\"URL\"/>";
1054: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
1055:
1056: RuleSet lRuleSet = CreateRuleSet
1057: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1058: lJSFunRules);
1059: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1060: LanguageConstants.JS_MIME);
1061: String lResult = lRewriter.rewrite(lInput,
1062: getDefaultJSTranslator());
1063: assertEquals(lExpectation, lResult);
1064: }//testEXPRESSIONVarFun()
1065:
1066: public void testURLVarExpressionFunVarient() throws Exception {
1067: String lInput = "doc.all[all].src = b()" + "\n"
1068: + "x(var1 + \"./xde.doc\") + a;";
1069: String lExpectation = "doc.all[all].src = b()\nx("
1070: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1071: + "var1 + \"./xde.doc\")) + a;"
1072: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1073:
1074: String lJSVarRules = "<Variable name=\"*.src\" type=\"URL\"/>"
1075: + "<Variable name=\"url\" type=\"URL\"/>";
1076: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
1077:
1078: RuleSet lRuleSet = CreateRuleSet
1079: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1080: lJSFunRules);
1081: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1082: LanguageConstants.JS_MIME);
1083: String lResult = lRewriter.rewrite(lInput,
1084: getDefaultJSTranslator());
1085: assertEquals(lExpectation, lResult);
1086: }//testURLVarExpressionFun()
1087:
1088: public void testEXPRESSIONVarURLFunVarient() throws Exception {
1089: String lInput = "doc.all[all].src = b()" + "\n"
1090: + "x(\"./xde.doc\") + a;";
1091: String lExpectation = "doc.all[all].src ="
1092: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1093: + " b())\nx(\"http://rajanagendra.sun.com/Base/Raja/xde.doc\") + a;"
1094: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1095:
1096: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1097: + " <Variable name=\"url\" type=\"URL\"/>";
1098: String lJSFunRules = "<Function type=\"URL\" name=\"x\" paramPatterns=\"y\" />";
1099:
1100: RuleSet lRuleSet = CreateRuleSet
1101: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1102: lJSFunRules);
1103: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1104: LanguageConstants.JS_MIME);
1105: String lResult = lRewriter.rewrite(lInput,
1106: getDefaultJSTranslator());
1107: assertEquals(lExpectation, lResult);
1108: }//testEXPRESSIONVarURLFun()
1109:
1110: public void testEXPRESSIONVarVarient1() throws Exception {
1111: String lInput = "doc.all[all].src = x(var1 + \"./xde.doc\")"
1112: + "\n" + "x(var1 + \"./xde.doc\") + a;";
1113: String lExpectation = "doc.all[all].src = x("
1114: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1115: + "var1 + \"./xde.doc\"))"
1116: + "\n"
1117: + "x("
1118: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1119: + "var1 + \"./xde.doc\")) + a;"
1120: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1121:
1122: String lJSFunRules = "<Function source=\"*Base*\" type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
1123:
1124: RuleSet lRuleSet = CreateRuleSet
1125: .withHTMLJSTokenJSVarJSFunRules("", "", lJSFunRules);
1126: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1127: LanguageConstants.JS_MIME);
1128: String lResult = lRewriter.rewrite(lInput,
1129: getDefaultJSTranslator());
1130: assertEquals(lExpectation, lResult);
1131: }//testEXPRESSIONVarVarient1()
1132:
1133: public void testEXPRESSIONVarVarient11() throws Exception {
1134: String lInput = "doc.all[all].src = x(var1 + \"./xde.doc\")"
1135: + "\n" + "x(var1 + \"./xde.doc\") + a;";
1136: String lExpectation = "doc.all[all].src ="
1137: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1138: + " x(var1 + \"./xde.doc\"))" + "\n"
1139: + "x(var1 + \"./xde.doc\") + a;"
1140: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1141:
1142: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1143: + " <Variable name=\"url\" type=\"URL\"/>";
1144:
1145: RuleSet lRuleSet = CreateRuleSet
1146: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules, "");
1147: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1148: LanguageConstants.JS_MIME);
1149: String lResult = lRewriter.rewrite(lInput,
1150: getDefaultJSTranslator());
1151: assertEquals(lExpectation, lResult);
1152: }//testEXPRESSIONVarVarient11()
1153:
1154: public void testEXPRESSIONVarFunVarient1() throws Exception {
1155: String lInput = "doc.all[all].src = x(var1 + \"./xde.doc\")"
1156: + "\n" + "x(var1 + \"./xde.doc\") + a;";
1157: String lExpectation = "doc.all[all].src ="
1158: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1159: + " x("
1160: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1161: + "var1 + \"./xde.doc\")))"
1162: + "\n"
1163: + "x("
1164: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1165: + "var1 + \"./xde.doc\")) + a;"
1166: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1167:
1168: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1169: + " <Variable name=\"url\" type=\"URL\"/>";
1170: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
1171:
1172: RuleSet lRuleSet = CreateRuleSet
1173: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1174: lJSFunRules);
1175: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1176: LanguageConstants.JS_MIME);
1177: String lResult = lRewriter.rewrite(lInput,
1178: getDefaultJSTranslator());
1179: assertEquals(lExpectation, lResult);
1180: }//testEXPRESSIONVarFunVarient1()
1181:
1182: public void testURLVarExpressionFunVarient1() throws Exception {
1183: String lInput = "doc.all[all].src = x(var1 + \"./xde.doc\")"
1184: + "\n" + "x(var1 + \"./xde.doc\") + a;";
1185: String lExpectation = "doc.all[all].src = x("
1186: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1187: + "var1 + \"./xde.doc\"))\nx("
1188: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1189: + "var1 + \"./xde.doc\")) + a;"
1190: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1191:
1192: String lJSVarRules = "<Variable name=\"*.src\" type=\"URL\"/>"
1193: + " <Variable name=\"url\" type=\"URL\"/>";
1194: String lJSFunRules = "<Function type=\"EXPRESSION\" name=\"x\" paramPatterns=\"y\" />";
1195:
1196: RuleSet lRuleSet = CreateRuleSet
1197: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1198: lJSFunRules);
1199: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1200: LanguageConstants.JS_MIME);
1201: String lResult = lRewriter.rewrite(lInput,
1202: getDefaultJSTranslator());
1203: assertEquals(lExpectation, lResult);
1204: }//testURLVarExpressionFunVarient1()
1205:
1206: public void testEXPRESSIONVarURLFunVarient1() throws Exception {
1207: String lInput = "doc.all[all].src = x(\"./xde.doc\")" + "\n"
1208: + "x(\"./xde.doc\") + a;";
1209: String lExpectation = "doc.all[all].src ="
1210: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1211: + " x(\"http://rajanagendra.sun.com/Base/Raja/xde.doc\"))\nx(\"http://rajanagendra.sun.com/Base/Raja/xde.doc\") + a;"
1212: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1213:
1214: String lJSVarRules = "<Variable name=\"*.src\" type=\"EXPRESSION\"/>"
1215: + "<Variable name=\"url\" type=\"URL\"/>";
1216: String lJSFunRules = "<Function type=\"URL\" name=\"x\" paramPatterns=\"y\" />";
1217:
1218: RuleSet lRuleSet = CreateRuleSet
1219: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules,
1220: lJSFunRules);
1221: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1222: LanguageConstants.JS_MIME);
1223: String lResult = lRewriter.rewrite(lInput,
1224: getDefaultJSTranslator());
1225: assertEquals(lExpectation, lResult);
1226: }//testEXPRESSIONVarURLFunVarient1()
1227:
1228: public void testBugNo4755898Varient() throws Exception {
1229: String lInput = "<script language=\"JavaScript\">\n" + "<!--\n"
1230: + "document.form1.action = \"/index.jsp\";\n"
1231: + "document.form1.action = \"../index.jsp\";\n"
1232: + "-->\n" + "\t\t\n" + "</script>\n";
1233:
1234: String lExpectation = "<script language=\"JavaScript\">\n"
1235: + "<!--\n"
1236: + "document.form1.action = \"http://rajanagendra.sun.com/index.jsp\";\n"
1237: + "document.form1.action = \"http://rajanagendra.sun.com/Base/index.jsp\";\n"
1238: + "-->\n" + "\t\t\n" + "</script>\n";
1239:
1240: String lJSVarRules = "<Variable name=\"document.form1.action\" type=\"EXPRESSION\"/>";
1241:
1242: RuleSet lRuleSet = CreateRuleSet
1243: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules, "");
1244: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1245: LanguageConstants.HTML_MIME);
1246: String lResult = lRewriter.rewrite(lInput,
1247: getDefaultTranslator());
1248: assertEquals(lExpectation, lResult);
1249: }//testBugNo4755898Varient()
1250:
1251: public void testBugNo4755898Varient1() throws Exception {
1252: String lInput = "<script language=\"JavaScript\">\n" + "<!--\n"
1253: + "document.form1.action = \"/index.jsp\";\n" + "-->\n"
1254: + "document.form1.action = \"../index.jsp\";\n"
1255: + "</script>\n";
1256:
1257: String lExpectation = "<script language=\"JavaScript\">\n"
1258: + "<!--\n"
1259: + "document.form1.action = \"http://rajanagendra.sun.com/index.jsp\";\n"
1260: + "-->\n"
1261: + "document.form1.action = \"http://rajanagendra.sun.com/Base/index.jsp\";\n"
1262: + "</script>\n";
1263:
1264: String lJSVarRules = "<Variable name=\"document.form1.action\" source = \" *raja* \" type=\"EXPRESSION\"/>";
1265:
1266: RuleSet lRuleSet = CreateRuleSet
1267: .withHTMLJSTokenJSVarJSFunRules("", lJSVarRules, "");
1268: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1269: LanguageConstants.HTML_MIME);
1270: String lResult = lRewriter.rewrite(lInput,
1271: getDefaultTranslator());
1272: assertEquals(lExpectation, lResult);
1273: }//testBugNo4755898Varient1()
1274:
1275: public void testFunctionCallVarExp() throws Exception {
1276: String lInput = "function someFunction() \n"
1277: + "{\n"
1278: + " ab(getTopFrame().main.location.href=a+\"/someURI?someParameter\",\"test.html\");\n"
1279: + "}\n";
1280:
1281: String lExpectation = "function someFunction() \n"
1282: + "{\n"
1283: + " ab(getTopFrame().main.location.href="
1284: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1285: + "a+\"/someURI?someParameter\"),\"test.html\");\n"
1286: + "}\n"
1287: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1288:
1289: String lJSVarRules[] = {
1290: "<Variable name=\"*href\" type=\"EXPRESSION\"/>",
1291: "<Variable name=\"getTopFrame*.main.location.href\" type=\"EXPRESSION\"/>",
1292: "<Variable name=\"*.main.location.href\" type=\"EXPRESSION\"/>",
1293: "<Variable name=\"*main.location.href\" type=\"EXPRESSION\"/>",
1294: "<Variable name=\"*location.href\" type=\"EXPRESSION\"/>", };
1295:
1296: for (int i = 0; i < lJSVarRules.length; i++) {
1297: RuleSet lRuleSet = CreateRuleSet
1298: .withJSVariableRules(lJSVarRules[i]);
1299: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1300: LanguageConstants.JS_MIME);
1301: String lResult = lRewriter.rewrite(lInput,
1302: getDefaultJSTranslator());
1303: assertEquals(lExpectation, lResult);
1304: }
1305: }//testFunctionCallFunExp()
1306:
1307: public void testFunctionCallVarExpVarient() throws Exception {
1308: String lInput = "function someFunction() \n"
1309: + "{\n"
1310: + " getTopFrame().main.location.href=a+\"/someURI?someParameter\";\n"
1311: + "}\n";
1312:
1313: String lExpectation = "function someFunction() \n"
1314: + "{\n"
1315: + " getTopFrame().main.location.href="
1316: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1317: + "a+\"/someURI?someParameter\");\n" + "}\n"
1318: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1319:
1320: String lJSVarRules[] = {
1321: "<Variable name=\"*href\" type=\"EXPRESSION\"/>",
1322: "<Variable name=\"getTopFrame*.main.location.href\" type=\"EXPRESSION\"/>",
1323: "<Variable name=\"*.main.location.href\" type=\"EXPRESSION\"/>",
1324: "<Variable name=\"*main.location.href\" type=\"EXPRESSION\"/>",
1325: "<Variable name=\"*location.href\" type=\"EXPRESSION\"/>", };
1326:
1327: for (int i = 0; i < lJSVarRules.length; i++) {
1328: RuleSet lRuleSet = CreateRuleSet
1329: .withJSVariableRules(lJSVarRules[i]);
1330: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1331: LanguageConstants.JS_MIME);
1332: String lResult = lRewriter.rewrite(lInput,
1333: getDefaultJSTranslator());
1334: assertEquals(lExpectation, lResult);
1335: }
1336: }//testFunctionCallVarExpVarient()
1337:
1338: public void testEntityReferenceEXPURL() throws Exception {
1339: String lInput = "var a = '/portal/document1.pdf';"
1340: + "var a = '/portal/document1.pdf';"
1341: + "var a = '/portal/document1.pdf';"
1342: + "var a = "/portal/document1.pdf";"
1343: + "var a = "/portal/document1.pdf";"
1344: + "var a = "/portal/document1.pdf";"
1345: + "getTopFrame1().main.location.href = '/portal/document1.pdf';"
1346: + "var a = ''portal/document1.pdf'';"
1347: + "getTopFrame().main.location.href = \"'/portal/document1.pdf'\";";
1348:
1349: String lExpectation = "var a ="
1350: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1351: + " '/portal/document1.pdf');"
1352: + "var a ="
1353: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1354: + " '/portal/document1.pdf');"
1355: + "var a ="
1356: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1357: + " '/portal/document1.pdf');"
1358: + "var a ="
1359: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1360: + " "/portal/document1.pdf");"
1361: + "var a ="
1362: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1363: + " "/portal/document1.pdf");"
1364: + "var a ="
1365: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1366: + " "/portal/document1.pdf");"
1367: + "getTopFrame1().main.location.href ="
1368: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1369: + " '/portal/document1.pdf');"
1370: + "var a ="
1371: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1372: + " ''portal/document1.pdf'');"
1373: + "getTopFrame().main.location.href ="
1374: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1375: + " \"'/portal/document1.pdf'\");"
1376: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1377:
1378: String lJSVarRules = "<Variable name=\"*main.location.href\" type=\"EXPRESSION\"/>"
1379: + "<Variable name=\"a\" type=\"EXPRESSION\"/>";
1380:
1381: RuleSet lRuleSet = CreateRuleSet
1382: .withJSVariableRules(lJSVarRules);
1383: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1384: LanguageConstants.JS_MIME);
1385: String lResult = lRewriter.rewrite(lInput,
1386: getDefaultTranslator());
1387: assertEquals(lExpectation, lResult);
1388: }//testEntityReferenceEXPURL()
1389:
1390: public void testEntityReferenceEXPURLMix() throws Exception {
1391: String lInput = "var a = '/portal/document1.pdf';"
1392: + "getTopFrame().main.location.href = '/portal/document1.pdf';"
1393: + "var a = ''portal/document1.pdf'';"
1394: + "getTopFrame().main.location.href = \"'/portal/document1.pdf'\";";
1395:
1396: String lExpectation = "var a = 'http://rajanagendra.sun.com/portal/document1.pdf';"
1397: + "getTopFrame().main.location.href ="
1398: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1399: + " '/portal/document1.pdf');"
1400: + "var a = ''http://rajanagendra.sun.com/Base/Raja/portal/document1.pdf'';"
1401: + "getTopFrame().main.location.href ="
1402: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1403: + " \"'/portal/document1.pdf'\");"
1404: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1405:
1406: String lJSVarRules = "<Variable name=\"*main.location.href\"/>"
1407: + "<Variable name=\"a\" type=\"URL\"/>";
1408:
1409: RuleSet lRuleSet = CreateRuleSet
1410: .withJSVariableRules(lJSVarRules);
1411: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1412: LanguageConstants.JS_MIME);
1413: String lResult = lRewriter.rewrite(lInput,
1414: getDefaultTranslator());
1415: assertEquals(lExpectation, lResult);
1416: }//testEntityReferenceEXPURL()
1417:
1418: public void testVariableTypeOrder() throws Exception {
1419: String[][] lData = {
1420: {
1421: "doc.all[all].src = b()+\"./xde.doc\";"
1422: + "doc.all[all].src = b() + 'eee' + x(\"./xde.doc\") + a;"
1423: + "doc.all[all].src =\"./xde.doc\";",
1424:
1425: "doc.all[all].src ="
1426: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1427: + " b()+\"./xde.doc\");"
1428: + "doc.all[all].src ="
1429: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1430: + " b() + 'eee' + x(\"./xde.doc\") + a);"
1431: + "doc.all[all].src =\"http://rajanagendra.sun.com/Base/Raja/xde.doc\";"
1432: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS,
1433: "<Variable name=\"*.src\" type=\"EXPRESSION\"/>" }, //0
1434:
1435: {
1436: "doc.all[all].src = b()+\"./xde.doc\";"
1437: + "doc.all[all].src = b() + 'eee' + x(\"./xde.doc\") + a;"
1438: + "doc.all[all].src =\"./xde.doc\";",
1439:
1440: "doc.all[all].src = b()+\"./xde.doc\";"
1441: + "doc.all[all].src = b() + 'eee' + x(\"./xde.doc\") + a;"
1442: + "doc.all[all].src =\"./xde.doc\";",
1443: "<Variable name=\"*.src\" type=\"DHTML\"/><Variable name=\"*.src\" type=\"EXPRESSION\"/>" }, //1
1444:
1445: {
1446: "doc.all[all].src = b()+\"./xde.doc\";"
1447: + "doc.all[all].src = b() + 'eee' + x(\"./xde.doc\") + a;"
1448: + "doc.all[all].src =\"./xde.doc\";",
1449:
1450: "doc.all[all].src = b()+\"./xde.doc\";"
1451: + "doc.all[all].src = b() + 'eee' + x(\"./xde.doc\") + a;"
1452: + "doc.all[all].src =\"http://rajanagendra.sun.com/Base/Raja/xde.doc\";",
1453: "<Variable name=\"*.src\" type=\"DJS\"/><Variable name=\"*.src\" type=\"EXPRESSION\"/>" }, //2
1454: };
1455:
1456: for (int i = 0; i < lData.length; i++) {
1457: RuleSet lRuleSet = CreateRuleSet
1458: .withJSVariableRules(lData[i][2]);
1459: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1460: LanguageConstants.JS_MIME);
1461: String lResult = lRewriter.rewrite(lData[i][0],
1462: getDefaultJSTranslator());
1463: assertEquals("ExpressionTranslation failed at i=" + i,
1464: lData[i][1], lResult);
1465: }
1466: }//testVariableTypeOrder()
1467:
1468: public void testRewrittingWithTerinaryOperator() throws Exception {
1469: String lInput = "var x = 'abc' "
1470: + "var x = (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget;\n"
1471: + "mfPostData(szCommand, (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget, fAttach);\n"
1472: + "var x = 'abc' ";
1473:
1474: String lExpectation = "var x = 'http://rajanagendra.sun.com/Base/Raja/abc' "
1475: + "var x ="
1476: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1477: + " (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget);\n"
1478: + "mfPostData(szCommand,"
1479: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1480: + " (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget), fAttach);\n"
1481: + "var x = 'http://rajanagendra.sun.com/Base/Raja/abc' "
1482: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1483:
1484: String lJSVarRules = "<Variable name=\"x\"/>";
1485:
1486: String lJSFunRules = "<Function name=\"mfPostData\" paramPatterns=\",y\" />";
1487:
1488: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
1489: lJSVarRules, lJSFunRules);
1490:
1491: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1492: LanguageConstants.JS_MIME);
1493: String lResult = lRewriter.rewrite(lInput,
1494: getDefaultJSTranslator());
1495: assertEquals(lExpectation, lResult);
1496: }//testRewrittingWithTerinaryOperator()
1497:
1498: public void testFixMeRewrittingWithTerinaryOperatorVarient()
1499: throws Exception {
1500: String lInput = "var x = 'abc' "
1501: + "var x = (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget;\n"
1502: + "mfPostData(szCommand, (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget, fAttach);\n"
1503: + "var x = 'abc' ";
1504:
1505: String lExpectation = "var x = 'http://rajanagendra.sun.com/Base/Raja/abc' "
1506: + "var x ="
1507: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1508: + " (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget);\n"
1509: + "mfPostData(szCommand,"
1510: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1511: + " (2 == m_iResponseType) ? this.draftsURL : this.url + szTarget), fAttach);\n"
1512: + "var x = 'http://rajanagendra.sun.com/Base/Raja/abc' "
1513: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1514:
1515: String lTrueExpectation = "var x = 'http://rajanagendra.sun.com/Base/Raja/abc' "
1516: + "var x ="
1517: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1518: + " (2 == m_iResponseType) ?"
1519: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1520: + " this.draftsURL) :"
1521: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1522: + " this.url) + szTarget);\n"
1523: + "mfPostData(szCommand,"
1524: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1525: + " (2 == m_iResponseType) ?"
1526: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1527: + " this.draftsURL) :"
1528: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1529: + " this.url) + szTarget), fAttach);\n"
1530: + "var x = 'http://rajanagendra.sun.com/Base/Raja/abc' "
1531: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1532:
1533: String lJSVarRules = "<Variable name=\"x\"/>"
1534: + "<Variable name=\"this.url\"/>"
1535: + "<Variable name=\"this.draftsURL\"/>";
1536:
1537: String lJSFunRules = "<Function name=\"mfPostData\" paramPatterns=\",y\" />";
1538:
1539: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
1540: lJSVarRules, lJSFunRules);
1541:
1542: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1543: LanguageConstants.JS_MIME);
1544: String lResult = lRewriter.rewrite(lInput,
1545: getDefaultJSTranslator());
1546: assertEquals(lExpectation, lResult);
1547: }//testRewrittingWithTerinaryOperator()
1548:
1549: public void testVar2VarAssignment() throws Exception {
1550: String lInput = "for (j=0; j < Frameobjects.length; j++) \n"
1551: + "{\n"
1552: + " Frameobjects[j] = Frameobjects[j];\n"
1553: + " if(Typeobjects[j]==\"text\") \n"
1554: + " {\n"
1555: + " if(i == numOfPages ) \n"
1556: + " {\n"
1557: + " document.write(Frameobjects[j]+\"<br>\");\n"
1558: + " } \n"
1559: + " else if(Frameobjects[j] != \"\") \n"
1560: + " {\n"
1561: + " document.write(\"<font color=#000000>\"+Frameobjects[j]+\"</font><br>\");\n"
1562: + " }\n"
1563: + " }\n"
1564: + " else \n"
1565: + " {\n"
1566: + " document.write(\"<img src=\\\"\"+Frameobjects[j]+\"\\\" hspace=0 vspace=0 border=0><br>\");\n"
1567: + " }\n" + "}\n";
1568:
1569: String lExpectation = "for (j=0; j < Frameobjects.length; j++) \n"
1570: + "{\n"
1571: + " Frameobjects[j] ="
1572: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1573: + " Frameobjects[j]);\n"
1574: + " if(Typeobjects[j]==\"text\") \n"
1575: + " {\n"
1576: + " if(i == numOfPages ) \n"
1577: + " {\n"
1578: + " document.write(Frameobjects[j]+\"<br>\");\n"
1579: + " } \n"
1580: + " else if(Frameobjects[j] != \"\") \n"
1581: + " {\n"
1582: + " document.write(\"<font color=#000000>\"+Frameobjects[j]+\"</font><br>\");\n"
1583: + " }\n"
1584: + " }\n"
1585: + " else \n"
1586: + " {\n"
1587: + " document.write(\"<img src=\\\"\"+Frameobjects[j]+\"\\\" hspace=0 vspace=0 border=0><br>\");\n"
1588: + " }\n"
1589: + "}\n"
1590: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1591:
1592: String lJSVarRules = "<Variable name=\"Frameobjects*\"/>";
1593:
1594: RuleSet lRuleSet = CreateRuleSet
1595: .withJSVariableRules(lJSVarRules);
1596: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1597: LanguageConstants.JS_MIME);
1598: String lResult = lRewriter.rewrite(lInput,
1599: getDefaultJSTranslator());
1600: assertEquals(lExpectation, lResult);
1601: }//testVar2VarAssignment()
1602:
1603: public void testVar2VarAssignmentVarient() throws Exception {
1604: String lInput = "for (j=0; j < Frameobjects.length; j++) \n"
1605: + "{\n"
1606: + " Frameobjects[j] = Frameobjects[j];\n"
1607: + " if(Typeobjects[j]==\"text\") \n"
1608: + " {\n"
1609: + " if(i == numOfPages ) \n"
1610: + " {\n"
1611: + " document.write(Frameobjects[j]+\"<br>\");\n"
1612: + " } \n"
1613: + " else if(Frameobjects[j] != \"\") \n"
1614: + " {\n"
1615: + " document.write(\"<font color=#000000>\"+Frameobjects[j]+\"</font><br>\");\n"
1616: + " }\n"
1617: + " }\n"
1618: + " else \n"
1619: + " {\n"
1620: + " document.write(\"<img src=\\\"\"+Frameobjects[j]+\"\\\" hspace=0 vspace=0 border=0><br>\");\n"
1621: + " }\n" + "}\n";
1622:
1623: String lExpectation = "for (j=0; j < Frameobjects.length; j++) \n"
1624: + "{\n" + " Frameobjects[j] ="
1625: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1626: + " Frameobjects[j]);\n"
1627: + " if(Typeobjects[j]==\"text\") \n"
1628: + " {\n"
1629: + " if(i == numOfPages ) \n"
1630: + " {\n"
1631: + " document.write("
1632: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1633: + "Frameobjects[j])+\"<br>\");\n"
1634: + " } \n"
1635: + " else if(Frameobjects[j] != \"\") \n"
1636: + " {\n"
1637: + " document.write(\"<font color=#000000>\"+"
1638: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1639: + "Frameobjects[j])+\"</font><br>\");\n"
1640: + " }\n"
1641: + " }\n"
1642: + " else \n"
1643: + " {\n"
1644: + " document.write(\"<img src=\\\"\"+"
1645: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1646: + "Frameobjects[j])+\"\\\" hspace=0 vspace=0 border=0><br>\");\n"
1647: + " }\n"
1648: + "}\n"
1649: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1650:
1651: String lJSVarRules = "<Variable name=\"Frameobjects*\"/>";
1652: String lJSFunRules = "<Function type=\"DHTML\" name=\"*.write\" paramPatterns=\"y\"/>\n";
1653:
1654: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarJSFunRules("",
1655: lJSVarRules, lJSFunRules);
1656: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1657: LanguageConstants.JS_MIME);
1658: String lResult = lRewriter.rewrite(lInput,
1659: getDefaultJSTranslator());
1660: assertEquals(lExpectation, lResult);
1661: }//testVar2VarAssignmentVarient()
1662:
1663: public void testSAPExpressionVar() throws Exception {
1664: String lInput = "var contentUrl = getParameter(\"contentUrl\");\n";
1665:
1666: String lExpectation = "var contentUrl ="
1667: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1668: + " getParameter(\"contentUrl\"));\n"
1669: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1670:
1671: String[] lJSVarRules = {
1672: "<Variable name=\"contentUrl\" type='EXPRESSION'/>",
1673: "<Variable name=\"contentUrl\"/>", };
1674:
1675: for (int i = 0; i < lJSVarRules.length; i++) {
1676: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarRules("",
1677: lJSVarRules[i]);
1678: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1679: LanguageConstants.JS_MIME);
1680: String lResult = lRewriter.rewrite(lInput,
1681: getDefaultJSTranslator());
1682: assertEquals(lExpectation, lResult);
1683: }
1684: }//testSAPExpressionVar()
1685:
1686: public void testExpressionObjectProperties() throws Exception {
1687: String lInput = "ur_system = {doc : window.document , mimepath : vara+\"/irj/portalapps/com.sap.portal.themes.lafservice/themes/portal/sap_standard/common/\", stylepath : \"/irj/portalapps/com.sap.portal.themes.lafservice/themes/portal/sap_standard/ur/\", is508 : false};\n";
1688:
1689: String lExpectation = "ur_system = {doc : window.document , mimepath :"
1690: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1691: + " vara+\"/irj/portalapps/com.sap.portal.themes.lafservice/themes/portal/sap_standard/common/\"), stylepath : \"http://rajanagendra.sun.com/irj/portalapps/com.sap.portal.themes.lafservice/themes/portal/sap_standard/ur/\", is508 : false};\n"
1692: + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS;
1693:
1694: String lJSVarRules = " <Variable name = 'mimepath;stylepath'/>\n";
1695: RuleSet lRuleSet = CreateRuleSet.withHTMLAttJSVarRules("",
1696: lJSVarRules);
1697: Rewriter lRewriter = RewriterPool.create(lRuleSet,
1698: LanguageConstants.JS_MIME);
1699: String lResult = lRewriter.rewrite(lInput,
1700: getDefaultJSTranslator());
1701: assertEquals(lExpectation, lResult);
1702: }//testExpressionObjectProperties()
1703:
1704: public static void main(String[] args) {
1705: RewriterModule.initFile();
1706: //BasicTestCase.run( TestJSExpressionVariables.class );
1707: TestSuite testSuite = new TestSuite();
1708: testSuite.addTest(new TestJSExpressionVariables(
1709: "testVariableTypeOrder"));
1710: BasicTestCase.run(testSuite);
1711: }//main()
1712:
1713: }//class TestJSExpressionVariables
|