Source Code Cross Referenced for TestJSExpressionVariables.java in  » Portal » Open-Portal » com » sun » portal » rewriter » engines » js » test » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Portal » Open Portal » com.sun.portal.rewriter.engines.js.test 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


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 = \"./\" + \"..&#47;xde.doc\";",
0568:                                "doc.all[all].src ="
0569:                                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0570:                                        + " \"./\" + \"..&#47;xde.doc\");"
0571:                                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_JS,
0572:                        //"doc.all[all].src =\"http://rajanagendra.sun.com/Base/Raja/\" + \"..&#47;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&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;security=1'",
0578:                                "doc.all[all].src ="
0579:                                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0580:                                        + "A+'/command.shtml?view=new_cal&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;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&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;security=1'",
0586:                                "doc.all[all].src ='http://rajanagendra.sun.com/command.shtml?view=new_cal&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;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&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;security=1';",
0591:                                "doc.all[all].src ="
0592:                                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
0593:                                        + "A+'/command.shtml?view=new_cal&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;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&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;security=1';",
0599:                                "doc.all[all].src ='http://rajanagendra.sun.com/command.shtml?view=new_cal&#38;id=ebm0q3u6y92m2nv9&#38;crc=3002401687&#38;date=20021005T013040&#38;newCalCalID=tuser&#38;tzid=&#38;e_ACL=@@o^c^WDEIC^g;@@o^a^RSF^g;@^a^sf^g;@^c^^g;@^p^r^g&#38;freebusy=1&#38;tab=1&#38;prevView=monthview&#38;calid=tuser&#38;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 = &#39;/portal/document1.pdf&#39;;"
1340:                        + "var a = &#x27;/portal/document1.pdf&#39;;"
1341:                        + "var a = &#x27;/portal/document1.pdf&#x27;;"
1342:                        + "var a = &#34;/portal/document1.pdf&#34;;"
1343:                        + "var a = &#x22;/portal/document1.pdf&#34;;"
1344:                        + "var a = &#x22;/portal/document1.pdf&#x22;;"
1345:                        + "getTopFrame1().main.location.href = &#39;/portal/document1.pdf&#39;;"
1346:                        + "var a = '&#39;portal/document1.pdf&#39;';"
1347:                        + "getTopFrame().main.location.href = \"&#39;/portal/document1.pdf&#39;\";";
1348:
1349:                String lExpectation = "var a ="
1350:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1351:                        + " &#39;/portal/document1.pdf&#39;);"
1352:                        + "var a ="
1353:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1354:                        + " &#x27;/portal/document1.pdf&#39;);"
1355:                        + "var a ="
1356:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1357:                        + " &#x27;/portal/document1.pdf&#x27;);"
1358:                        + "var a ="
1359:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1360:                        + " &#34;/portal/document1.pdf&#34;);"
1361:                        + "var a ="
1362:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1363:                        + " &#x22;/portal/document1.pdf&#34;);"
1364:                        + "var a ="
1365:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1366:                        + " &#x22;/portal/document1.pdf&#x22;);"
1367:                        + "getTopFrame1().main.location.href ="
1368:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1369:                        + " &#39;/portal/document1.pdf&#39;);"
1370:                        + "var a ="
1371:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1372:                        + " '&#39;portal/document1.pdf&#39;');"
1373:                        + "getTopFrame().main.location.href ="
1374:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1375:                        + " \"&#39;/portal/document1.pdf&#39;\");"
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 = &#39;/portal/document1.pdf&#39;;"
1392:                        + "getTopFrame().main.location.href = &#39;/portal/document1.pdf&#39;;"
1393:                        + "var a = '&#39;portal/document1.pdf&#39;';"
1394:                        + "getTopFrame().main.location.href = \"&#39;/portal/document1.pdf&#39;\";";
1395:
1396:                String lExpectation = "var a = &#39;http://rajanagendra.sun.com/portal/document1.pdf&#39;;"
1397:                        + "getTopFrame().main.location.href ="
1398:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1399:                        + " &#39;/portal/document1.pdf&#39;);"
1400:                        + "var a = '&#39;http://rajanagendra.sun.com/Base/Raja/portal/document1.pdf&#39;';"
1401:                        + "getTopFrame().main.location.href ="
1402:                        + JSWrapperHelper.CONVERT_EXPRESSION_FUNCTION_WRAP_START
1403:                        + " \"&#39;/portal/document1.pdf&#39;\");"
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
w___w_w_._j_a_v_a__2__s__._com_ | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.