1 package test.net.sourceforge.pmd.jsp.rules; 2 3 import net.sourceforge.pmd.Rule; 4 import net.sourceforge.pmd.RuleSetFactory; 5 import net.sourceforge.pmd.RuleSetNotFoundException; 6 import net.sourceforge.pmd.SourceType; 7 import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst; 8 import test.net.sourceforge.pmd.testframework.TestDescriptor; 9 10 public class NoLongScriptsTest extends SimpleAggregatorTst { 11 12 public void testAll() throws RuleSetNotFoundException { 13 Rule rule = new RuleSetFactory() 14 .createSingleRuleSet("rulesets/basic-jsp.xml").getRuleByName("NoLongScripts"); 15 runTests(new TestDescriptor[]{ 16 new TestDescriptor(VIOLATION1, "Too long javascript.", 1, rule), 17 new TestDescriptor(NO_VIOLATION1, "Short javascript.", 0, rule), 18 }, SourceType.JSP); 19 } 20 21 private static final String VIOLATION1 = "<HTML>\n" 22 + "<BODY>\n" 23 + "<!--Java Script-->\n" 24 + "<SCRIPT language='JavaScript' type='text/javascript'>\n" 25 + "<!--\n" 26 + "function calcDays(){\n" 27 + " var date1 = document.getElementById('d1').lastChild.data;\n" 28 + " var date2 = document.getElementById('d2').lastChild.data;\n" 29 + " date1 = date1.split(\"-\");\n" 30 + " date2 = date2.split(\"-\");\n" 31 + " var sDate = new Date(date1[0]+\"/\"+date1[1]+\"/\"+date1[2]);\n" 32 + " var eDate = new Date(date2[0]+\"/\"+date2[1]+\"/\"+date2[2]);\n" 33 + " var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));\n" 34 + " document.getElementById('diffDays').lastChild.data = daysApart;\n" 35 + "}\n" + "\n" + "onload=calcDays;\n" + "//-->\n" + "</SCRIPT>\n" 36 + "</BODY>\n" + "</HTML>;\n"; 37 38 private static final String NO_VIOLATION1 = "<HTML>\n" 39 + "<BODY>\n" 40 + "<!--Java Script-->\n" 41 + "<SCRIPT language='JavaScript' type='text/javascript'>\n" 42 + "<!--\n" 43 + "function calcDays(){\n" 44 + " document.getElementById('diffDays').lastChild.data = daysApart;\n" 45 + "}\n" + "\n" + "onload=calcDays;\n" + "//-->\n" + "</SCRIPT>\n" 46 + "</BODY>\n" + "</HTML>;\n"; 47 }