blob: 5031f821c58115002f57f03dee96d7688bf30335 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
package com.intellij.structuralsearch;
import com.intellij.openapi.application.PluginPathManager;
import com.intellij.structuralsearch.inspection.highlightTemplate.SSBasedInspection;
import com.intellij.structuralsearch.plugin.ui.Configuration;
import com.intellij.structuralsearch.plugin.ui.SearchConfiguration;
import com.intellij.testFramework.IdeaTestCase;
import com.intellij.testFramework.UsefulTestCase;
import com.intellij.testFramework.fixtures.*;
import com.intellij.testFramework.fixtures.impl.LightTempDirTestFixtureImpl;
import java.util.Collections;
public class SSRCodeInsightTest extends UsefulTestCase {
protected CodeInsightTestFixture myFixture;
private SSBasedInspection myInspection;
public SSRCodeInsightTest() {
IdeaTestCase.initPlatformPrefix();
}
@Override
protected void setUp() throws Exception {
super.setUp();
IdeaTestFixtureFactory factory = IdeaTestFixtureFactory.getFixtureFactory();
TestFixtureBuilder<IdeaProjectTestFixture> fixtureBuilder = factory.createLightFixtureBuilder(new DefaultLightProjectDescriptor());
final IdeaProjectTestFixture fixture = fixtureBuilder.getFixture();
myFixture = IdeaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(fixture,
new LightTempDirTestFixtureImpl(true));
myInspection = new SSBasedInspection();
myFixture.enableInspections(myInspection);
myFixture.setUp();
myFixture.setTestDataPath(getTestDataPath());
}
@Override
protected void tearDown() throws Exception {
myFixture.tearDown();
myFixture = null;
myInspection = null;
super.tearDown();
}
public void testExpressionStatement() {
doTest("File.createTempFile($p1$, $p2$)", "Forbid File.createTempFile");
}
public void testTwoStatementPattern() {
doTest("$field$ = $something$;\n" +
"if ($field$ == null) {\n" +
" throw new $Exception$($msg$);\n" +
"}",
"silly null check");
}
private void doTest(final String searchPattern, final String patternName) {
final SearchConfiguration configuration = new SearchConfiguration();
//display name
configuration.setName(patternName);
//search pattern
final MatchOptions options = new MatchOptions();
options.setSearchPattern(searchPattern);
configuration.setMatchOptions(options);
myInspection.setConfigurations(Collections.<Configuration>singletonList(configuration), myFixture.getProject());
myInspection.projectOpened(myFixture.getProject());
myFixture.testHighlighting(true, false, false, getTestName(false) + ".java");
}
protected String getTestDataPath() {
return PluginPathManager.getPluginHomePath("structuralsearch") + "/testData/ssBased";
}
}
|