xpathruletest.java

来自「检查Java程序漏洞」· Java 代码 · 共 48 行

JAVA
48
字号
package test.net.sourceforge.pmd.rules;

import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.Report;
import net.sourceforge.pmd.Rule;
import net.sourceforge.pmd.RuleContext;
import net.sourceforge.pmd.RuleSet;
import net.sourceforge.pmd.RuleViolation;
import net.sourceforge.pmd.rules.XPathRule;
import test.net.sourceforge.pmd.testframework.RuleTst;

import java.io.StringReader;

/**
 * @author daniels
 */
public class XPathRuleTest extends RuleTst {

    XPathRule rule;

    public void setUp() {
        rule = new XPathRule();
        rule.setMessage("XPath Rule Failed");
    }

    public void testPluginname() throws Throwable {
        Rule rule = new XPathRule();
        rule.addProperty("xpath", "//VariableDeclaratorId[string-length(@Image) < 3]");
        rule.setMessage("{0}");
        rule.addProperty("pluginname", "true");
        PMD p = new PMD();
        RuleContext ctx = new RuleContext();
        Report report = new Report();
        ctx.setReport(report);
        ctx.setSourceCodeFilename("n/a");
        RuleSet rules = new RuleSet();
        rules.addRule(rule);
        p.processFile(new StringReader(TEST1), rules, ctx);
        RuleViolation rv = (RuleViolation)report.iterator().next();
        assertEquals("a", rv.getDescription());
    }

    private static final String TEST1 =
    "public class Foo {" + PMD.EOL +
    "    int a;" + PMD.EOL +
    "}";
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?