diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java index 44bd952a9b60..becddc77e803 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTest.java @@ -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"); diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTest.java b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTest.java index b0b9cce43f73..830ca6de15c5 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTest.java +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTest.java @@ -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", ""); } - - 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 = "    myEp declaration in plugin.xml " + - "[" + module.getName() + "]
"; - - GutterMark gutter = myFixture.findGutter(file); - DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, AllIcons.Nodes.Plugin, "myEp"); - } } diff --git a/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtDescriptionTypeRelatedItemLineMarkerProviderTest.java b/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtDescriptionTypeRelatedItemLineMarkerProviderTest.java index 26cb8ddab617..3903a520a06b 100644 --- a/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtDescriptionTypeRelatedItemLineMarkerProviderTest.java +++ b/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtDescriptionTypeRelatedItemLineMarkerProviderTest.java @@ -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); - } } diff --git a/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtExtensionDeclarationRelatedItemLineMarkerProviderTest.java b/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtExtensionDeclarationRelatedItemLineMarkerProviderTest.java index 304f32458d71..75857dc6f6d1 100644 --- a/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtExtensionDeclarationRelatedItemLineMarkerProviderTest.java +++ b/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/navigation/KtExtensionDeclarationRelatedItemLineMarkerProviderTest.java @@ -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", ""); } - - 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 = "    myEp declaration in plugin.xml " + - "[" + module.getName() + "]
"; - - GutterMark gutter = myFixture.findGutter(file); - DevKitGutterTargetsChecker.checkGutterTargets(gutter, expectedTooltip, AllIcons.Nodes.Plugin, "myEp"); - } } diff --git a/plugins/devkit/devkit-tests-api/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java b/plugins/devkit/devkit-tests-api/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java new file mode 100644 index 000000000000..f4abb6c58f2f --- /dev/null +++ b/plugins/devkit/devkit-tests-api/src/org/jetbrains/idea/devkit/navigation/DescriptionTypeRelatedItemLineMarkerProviderTestBase.java @@ -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); + } +} diff --git a/plugins/devkit/devkit-tests-api/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java b/plugins/devkit/devkit-tests-api/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java new file mode 100644 index 000000000000..1983afeb4740 --- /dev/null +++ b/plugins/devkit/devkit-tests-api/src/org/jetbrains/idea/devkit/navigation/ExtensionDeclarationRelatedItemLineMarkerProviderTestBase.java @@ -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 = "    myEp declaration in plugin.xml " + + "[" + module.getName() + "]
"; + + 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)); + } +}