Minor duplicate code cleanup in DevKit tests

This commit is contained in:
Yaroslav Pankratyev
2018-04-06 14:43:03 +07:00
parent e8010c29d3
commit a1764b3303
6 changed files with 81 additions and 138 deletions
@@ -16,13 +16,8 @@
package org.jetbrains.idea.devkit.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.codeInspection.LocalInspectionEP;
import com.intellij.icons.AllIcons;
import com.intellij.testFramework.TestDataPath;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.ui.components.JBList;
import com.intellij.util.PathUtil;
import org.jetbrains.idea.devkit.DevkitJavaTestsUtil;
import java.util.Collections;
@@ -30,21 +25,12 @@ import java.util.Comparator;
import java.util.List;
@TestDataPath("$CONTENT_ROOT/testData/navigation/descriptionType")
public class DescriptionTypeRelatedItemLineMarkerProviderTest extends JavaCodeInsightFixtureTestCase {
public class DescriptionTypeRelatedItemLineMarkerProviderTest extends DescriptionTypeRelatedItemLineMarkerProviderTestBase {
@Override
protected String getBasePath() {
return DevkitJavaTestsUtil.TESTDATA_PATH + "navigation/descriptionType";
}
@Override
protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) {
String pathForClass = PathUtil.getJarPathForClass(LocalInspectionEP.class);
moduleBuilder.addLibrary("lang-api", pathForClass);
String platformApiJar = PathUtil.getJarPathForClass(JBList.class);
moduleBuilder.addLibrary("platform-api", platformApiJar);
}
public void testInspectionDescription() {
doTestInspectionDescription("MyWithDescriptionInspection.java", "MyWithDescription.html");
}
@@ -53,12 +39,6 @@ public class DescriptionTypeRelatedItemLineMarkerProviderTest extends JavaCodeIn
doTestInspectionDescription("MyWithDescriptionFromFieldReferenceInspection.java", "MyWithDescriptionFromFieldReferenceInspection.html");
}
private void doTestInspectionDescription(String inspectionFile, String descriptionFile) {
myFixture.copyDirectoryToProject("inspectionDescriptions", "inspectionDescriptions");
GutterMark gutter = myFixture.findGutter(inspectionFile);
DevKitGutterTargetsChecker.checkGutterTargets(gutter, "Description", AllIcons.FileTypes.Html, descriptionFile);
}
public void testIntentionDescription() {
myFixture.copyDirectoryToProject("intentionDescriptions", "intentionDescriptions");
@@ -15,66 +15,21 @@
*/
package org.jetbrains.idea.devkit.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.psi.PsiFile;
import com.intellij.testFramework.TestDataPath;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.ui.ColorUtil;
import com.intellij.ui.components.JBList;
import com.intellij.util.PathUtil;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.idea.devkit.DevkitJavaTestsUtil;
@TestDataPath("$CONTENT_ROOT/testData/navigation/extensionDeclaration")
public class ExtensionDeclarationRelatedItemLineMarkerProviderTest extends JavaCodeInsightFixtureTestCase {
public class ExtensionDeclarationRelatedItemLineMarkerProviderTest extends ExtensionDeclarationRelatedItemLineMarkerProviderTestBase {
@Override
protected String getBasePath() {
return DevkitJavaTestsUtil.TESTDATA_PATH + "navigation/extensionDeclaration";
}
@Override
protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) {
String extensionsJar = PathUtil.getJarPathForClass(ExtensionPointName.class);
moduleBuilder.addLibrary("extensions", extensionsJar);
String platformApiJar = PathUtil.getJarPathForClass(JBList.class);
moduleBuilder.addLibrary("platform-api", platformApiJar);
}
public void testInvalidExtension() {
doTestInvalidExtension("MyInvalidExtension.java");
}
private void doTestInvalidExtension(String file) {
myFixture.configureByFile("plugin.xml");
assertNull(myFixture.findGutter(file));
}
public void testExtension() {
doTestExtension("MyExtension.java", "<myEp implementation=\"MyExtension\"/>");
}
private void doTestExtension(String file, String xmlDeclarationText) {
PsiFile pluginXmlFile = myFixture.configureByFile("plugin.xml");
String pluginXmlPath = pluginXmlFile.getVirtualFile().getPath();
Module module = ModuleUtilCore.findModuleForPsiElement(pluginXmlFile);
assertNotNull(module);
String color = ColorUtil.toHex(UIUtil.getInactiveTextColor());
int expectedTagPosition = pluginXmlFile.getText().indexOf(xmlDeclarationText);
String expectedTooltip = "<html><body>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#navigation/" + pluginXmlPath
+ ":" + expectedTagPosition + "\">myEp</a> declaration in plugin.xml " +
"<font color=" + color + ">[" + module.getName() + "]</font><br></body></html>";
GutterMark gutter = myFixture.findGutter(file);
DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, AllIcons.Nodes.Plugin, "myEp");
}
}
@@ -1,41 +1,18 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.devkit.kotlin.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.codeInspection.LocalInspectionEP;
import com.intellij.icons.AllIcons;
import com.intellij.testFramework.TestDataPath;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.ui.components.JBList;
import com.intellij.util.PathUtil;
import org.jetbrains.idea.devkit.kotlin.DevkitKtTestsUtil;
import org.jetbrains.idea.devkit.navigation.DevKitGutterTargetsChecker;
import org.jetbrains.idea.devkit.navigation.DescriptionTypeRelatedItemLineMarkerProviderTestBase;
//TODO fix copy-paste
@TestDataPath("$CONTENT_ROOT/testData/navigation/descriptionType")
public class KtDescriptionTypeRelatedItemLineMarkerProviderTest extends JavaCodeInsightFixtureTestCase {
public class KtDescriptionTypeRelatedItemLineMarkerProviderTest extends DescriptionTypeRelatedItemLineMarkerProviderTestBase {
@Override
protected String getBasePath() {
return DevkitKtTestsUtil.TESTDATA_PATH + "navigation/descriptionType";
}
@Override
protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) {
String pathForClass = PathUtil.getJarPathForClass(LocalInspectionEP.class);
moduleBuilder.addLibrary("lang-api", pathForClass);
String platformApiJar = PathUtil.getJarPathForClass(JBList.class);
moduleBuilder.addLibrary("platform-api", platformApiJar);
}
public void testKtInspectionDescription() {
doTestInspectionDescription("MyKtWithDescriptionInspection.kt", "MyKtWithDescription.html");
}
private void doTestInspectionDescription(String inspectionFile, String descriptionFile) {
myFixture.copyDirectoryToProject("inspectionDescriptions", "inspectionDescriptions");
GutterMark gutter = myFixture.findGutter(inspectionFile);
DevKitGutterTargetsChecker.checkGutterTargets(gutter, "Description", AllIcons.FileTypes.Html, descriptionFile);
}
}
@@ -1,66 +1,22 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.devkit.kotlin.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.psi.PsiFile;
import com.intellij.testFramework.TestDataPath;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.ui.ColorUtil;
import com.intellij.ui.components.JBList;
import com.intellij.util.PathUtil;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.idea.devkit.kotlin.DevkitKtTestsUtil;
import org.jetbrains.idea.devkit.navigation.DevKitGutterTargetsChecker;
import org.jetbrains.idea.devkit.navigation.ExtensionDeclarationRelatedItemLineMarkerProviderTestBase;
//TODO fix copy-paste
@TestDataPath("$CONTENT_ROOT/testData/navigation/extensionDeclaration")
public class KtExtensionDeclarationRelatedItemLineMarkerProviderTest extends JavaCodeInsightFixtureTestCase {
public class KtExtensionDeclarationRelatedItemLineMarkerProviderTest extends ExtensionDeclarationRelatedItemLineMarkerProviderTestBase {
@Override
protected String getBasePath() {
return DevkitKtTestsUtil.TESTDATA_PATH + "navigation/extensionDeclaration";
}
@Override
protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) {
String extensionsJar = PathUtil.getJarPathForClass(ExtensionPointName.class);
moduleBuilder.addLibrary("extensions", extensionsJar);
String platformApiJar = PathUtil.getJarPathForClass(JBList.class);
moduleBuilder.addLibrary("platform-api", platformApiJar);
}
public void testInvalidKtExtension() {
doTestInvalidExtension("MyInvalidKtExtension.kt");
}
private void doTestInvalidExtension(String file) {
myFixture.configureByFile("plugin.xml");
assertNull(myFixture.findGutter(file));
}
public void testKtExtension() {
doTestExtension("MyKtExtension.kt", "<myEp implementation=\"MyKtExtension\"/>");
}
private void doTestExtension(String file, String xmlDeclarationText) {
PsiFile pluginXmlFile = myFixture.configureByFile("plugin.xml");
String pluginXmlPath = pluginXmlFile.getVirtualFile().getPath();
Module module = ModuleUtilCore.findModuleForPsiElement(pluginXmlFile);
assertNotNull(module);
String color = ColorUtil.toHex(UIUtil.getInactiveTextColor());
int expectedTagPosition = pluginXmlFile.getText().indexOf(xmlDeclarationText);
String expectedTooltip = "<html><body>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#navigation/" + pluginXmlPath
+ ":" + expectedTagPosition + "\">myEp</a> declaration in plugin.xml " +
"<font color=" + color + ">[" + module.getName() + "]</font><br></body></html>";
GutterMark gutter = myFixture.findGutter(file);
DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, AllIcons.Nodes.Plugin, "myEp");
}
}
@@ -0,0 +1,27 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.devkit.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.codeInspection.LocalInspectionEP;
import com.intellij.icons.AllIcons;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.ui.components.JBList;
import com.intellij.util.PathUtil;
import org.jetbrains.annotations.NotNull;
public abstract class DescriptionTypeRelatedItemLineMarkerProviderTestBase extends JavaCodeInsightFixtureTestCase {
@Override
protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) {
String pathForClass = PathUtil.getJarPathForClass(LocalInspectionEP.class);
moduleBuilder.addLibrary("lang-api", pathForClass);
String platformApiJar = PathUtil.getJarPathForClass(JBList.class);
moduleBuilder.addLibrary("platform-api", platformApiJar);
}
protected void doTestInspectionDescription(@NotNull String inspectionFile, @NotNull String descriptionFile) {
myFixture.copyDirectoryToProject("inspectionDescriptions", "inspectionDescriptions");
GutterMark gutter = myFixture.findGutter(inspectionFile);
DevKitGutterTargetsChecker.checkGutterTargets(gutter, "Description", AllIcons.FileTypes.Html, descriptionFile);
}
}
@@ -0,0 +1,48 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.devkit.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.psi.PsiFile;
import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
import com.intellij.ui.ColorUtil;
import com.intellij.ui.components.JBList;
import com.intellij.util.PathUtil;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
public abstract class ExtensionDeclarationRelatedItemLineMarkerProviderTestBase extends JavaCodeInsightFixtureTestCase {
@Override
protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) {
String extensionsJar = PathUtil.getJarPathForClass(ExtensionPointName.class);
moduleBuilder.addLibrary("extensions", extensionsJar);
String platformApiJar = PathUtil.getJarPathForClass(JBList.class);
moduleBuilder.addLibrary("platform-api", platformApiJar);
}
protected void doTestExtension(@NotNull String file, @NotNull String xmlDeclarationText) {
PsiFile pluginXmlFile = myFixture.configureByFile("plugin.xml");
String pluginXmlPath = pluginXmlFile.getVirtualFile().getPath();
Module module = ModuleUtilCore.findModuleForPsiElement(pluginXmlFile);
assertNotNull(module);
String color = ColorUtil.toHex(UIUtil.getInactiveTextColor());
int expectedTagPosition = pluginXmlFile.getText().indexOf(xmlDeclarationText);
String expectedTooltip = "<html><body>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#navigation/" + pluginXmlPath
+ ":" + expectedTagPosition + "\">myEp</a> declaration in plugin.xml " +
"<font color=" + color + ">[" + module.getName() + "]</font><br></body></html>";
GutterMark gutter = myFixture.findGutter(file);
DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, AllIcons.Nodes.Plugin, "myEp");
}
protected void doTestInvalidExtension(@NotNull String file) {
myFixture.configureByFile("plugin.xml");
assertNull(myFixture.findGutter(file));
}
}