From ab20d9e09d150f287a55fbb25edae17e3d2c6883 Mon Sep 17 00:00:00 2001 From: nik Date: Mon, 16 Apr 2018 14:48:37 +0300 Subject: [PATCH] maven tests: fail test if errors occurred during importing by default Those tests which really check importing of incorrect xml use special 'importProjectWithErrors' methods. This way we'll detect problems if some test actually doesn't work as expected because its pom.xml content is invalid (see IDEA-CR-31189 for example). --- .../idea/maven/MavenImportingTestCase.java | 22 +- ...DependencyCompletionAndResolutionTest.java | 51 +-- .../idea/maven/dom/MavenDomTestCase.java | 6 + ...avenParentCompletionAndResolutionTest.java | 45 ++- .../maven/dom/MavenPropertyResolverTest.java | 2 +- .../maven/dom/MavenSurefirePluginTest.groovy | 9 +- .../importing/DependenciesImportingTest.java | 27 +- .../importing/DependenciesManagementTest.java | 2 +- .../maven/importing/FoldersImportingTest.java | 7 +- .../InvalidProjectImportingTest.java | 358 +++++++++--------- .../maven/importing/MiscImportingTest.java | 52 +-- .../importing/StructureImportingTest.java | 17 +- ...nDuplicatedDependencyInspectionTest.groovy | 2 +- .../importing/MavenProjectsManagerTest.java | 2 +- 14 files changed, 319 insertions(+), 283 deletions(-) diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java index f2c2c057e621..1c1b698dfee6 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/MavenImportingTestCase.java @@ -365,8 +365,12 @@ public abstract class MavenImportingTestCase extends MavenTestCase { importProjectWithProfiles(); } + protected void importProjectWithErrors(boolean maven2) { + doImportProjects(maven2, Collections.singletonList(myProjectPom), false); + } + protected void importProjectWithProfiles(String... profiles) { - doImportProjects(true, Collections.singletonList(myProjectPom), profiles); + doImportProjects(true, Collections.singletonList(myProjectPom), true, profiles); } protected void importProject(VirtualFile file) { @@ -374,7 +378,11 @@ public abstract class MavenImportingTestCase extends MavenTestCase { } protected void importProjects(VirtualFile... files) { - doImportProjects(true, Arrays.asList(files)); + doImportProjects(true, Arrays.asList(files), true); + } + + protected void importProjectsWithErrors(VirtualFile... files) { + doImportProjects(true, Arrays.asList(files), false); } protected void importProjectWithMaven3(@NonNls String xml) { @@ -387,10 +395,10 @@ public abstract class MavenImportingTestCase extends MavenTestCase { } protected void importProjectWithMaven3WithProfiles(String... profiles) { - doImportProjects(false, Collections.singletonList(myProjectPom), profiles); + doImportProjects(false, Collections.singletonList(myProjectPom), true, profiles); } - private void doImportProjects(boolean useMaven2, final List files, String... profiles) { + private void doImportProjects(boolean useMaven2, final List files, boolean failOnReadingError, String... profiles) { MavenServerManager.getInstance().setUseMaven2(useMaven2); initProjectsManager(false); @@ -402,9 +410,9 @@ public abstract class MavenImportingTestCase extends MavenTestCase { myProjectsManager.importProjects(); }); - for (MavenProject each : myProjectsTree.getProjects()) { - if (each.hasReadingProblems()) { - System.out.println(each + " has problems: " + each.getProblems()); + if (failOnReadingError) { + for (MavenProject each : myProjectsTree.getProjects()) { + assertFalse("Failed to import Maven project: " + each.getProblems(), each.hasReadingProblems()); } } } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDependencyCompletionAndResolutionTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDependencyCompletionAndResolutionTest.java index 5ba307c8032c..6b7c3771f536 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDependencyCompletionAndResolutionTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDependencyCompletionAndResolutionTest.java @@ -309,7 +309,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi "m1" + "1"); - createProjectPom("test" + + configureProjectPom("test" + "project" + "1" + @@ -320,14 +320,14 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi " " + ""); - importProjects(myProjectPom, m); + importProjectsWithErrors(myProjectPom, m); assertCompletionVariants(myProjectPom, "m1"); createModulePom("m1", ""); - importProjects(myProjectPom, m); + importProjectsWithErrors(myProjectPom, m); - createProjectPom("test" + + configureProjectPom("test" + "project" + "1" + @@ -347,7 +347,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi "m1" + "1"); - createProjectPom("test" + + configureProjectPom("test" + "project" + "1" + @@ -358,7 +358,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi " " + ""); - importProjects(myProjectPom, m); + importProjectsWithErrors(myProjectPom, m); assertCompletionVariants(myProjectPom, "m1"); @@ -400,26 +400,27 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi } public void testResolveManagedDependency() throws Exception { - importProject("test" + - "project" + - "1" + + configureProjectPom("test" + + "project" + + "1" + - "" + - " " + - " " + - " junit" + - " junit" + - " 4.0" + - " " + - " " + - "" + + "" + + " " + + " " + + " junit" + + " junit" + + " 4.0" + + " " + + " " + + "" + - "" + - " " + - " junit" + - " junit" + - " " + - ""); + "" + + " " + + " junit" + + " junit" + + " " + + ""); + importProject(); String filePath = myIndicesFixture.getRepositoryHelper().getTestDataPath("local1/junit/junit/4.0/junit-4.0.pom"); VirtualFile f = LocalFileSystem.getInstance().refreshAndFindFileByPath(filePath); @@ -753,7 +754,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi } public void testTypeCompletion() { - createProjectPom("test" + + configureProjectPom("test" + "project" + "1" + diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomTestCase.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomTestCase.java index e01061473e10..a79190824e27 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomTestCase.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenDomTestCase.java @@ -51,6 +51,7 @@ import com.intellij.usages.UsageTarget; import com.intellij.usages.UsageTargetUtil; import com.intellij.util.containers.ContainerUtil; import gnu.trove.THashMap; +import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -96,6 +97,11 @@ public abstract class MavenDomTestCase extends MavenImportingTestCase { return PsiManager.getInstance(myProject).findFile(f); } + protected void configureProjectPom(@Language(value = "XML", prefix = "", suffix = "") String xml) { + VirtualFile file = createProjectPom(xml); + configTest(file); + } + protected void configTest(VirtualFile f) { if (Comparing.equal(myConfigTimestamps.get(f), f.getTimeStamp())) return; myFixture.configureFromExistingVirtualFile(f); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenParentCompletionAndResolutionTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenParentCompletionAndResolutionTest.java index 3621d995c0d6..e6a16f5444d2 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenParentCompletionAndResolutionTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenParentCompletionAndResolutionTest.java @@ -272,38 +272,41 @@ public class MavenParentCompletionAndResolutionTest extends MavenDomWithIndicesT } public void testHighlightingAbsentGroupId() { - importProject("test" + - "project" + - "1" + + createProjectPom("test" + + "project" + + "1" + - "<parent>" + - " junit" + - " 4.0" + - ""); + "<parent>" + + " junit" + + " 4.0" + + ""); + importProjectWithErrors(true); checkHighlighting(); } public void testHighlightingAbsentArtifactId() { - importProject("test" + - "project" + - "1" + + createProjectPom("test" + + "project" + + "1" + - "<parent>" + - " junit" + - " 4.0" + - ""); + "<parent>" + + " junit" + + " 4.0" + + ""); + importProjectWithErrors(true); checkHighlighting(); } public void testHighlightingAbsentVersion() { - importProject("test" + - "project" + - "1" + + createProjectPom("test" + + "project" + + "1" + - "<parent>" + - " junit" + - " junit" + - ""); + "<parent>" + + " junit" + + " junit" + + ""); + importProjectWithErrors(true); checkHighlighting(); } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPropertyResolverTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPropertyResolverTest.java index 2eb46e181ac9..5cd3d9cb8535 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPropertyResolverTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenPropertyResolverTest.java @@ -163,7 +163,7 @@ public class MavenPropertyResolverTest extends MavenImportingTestCase { ""); - importProject(); + importProjectWithErrors(true); assertEquals("${prop1}", resolve("${prop1}", myProjectPom)); assertEquals("${prop3}", resolve("${prop3}", myProjectPom)); assertEquals("${prop5}", resolve("${prop5}", myProjectPom)); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenSurefirePluginTest.groovy b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenSurefirePluginTest.groovy index 9e0df7cb812a..91ea522feb2e 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenSurefirePluginTest.groovy +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/dom/MavenSurefirePluginTest.groovy @@ -29,7 +29,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase { } void testCompletion() { - importProject(""" + configureProjectPom(""" simpleMaven simpleMaven jar @@ -48,6 +48,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase { """) + importProject() createProjectSubFile("src/main/A.txt", "") createProjectSubFile("src/test/A.txt", "") @@ -57,7 +58,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase { } void testCompletionSurefireProperties() { - importProject(""" + configureProjectPom(""" simpleMaven simpleMaven 1.0 @@ -76,12 +77,13 @@ class MavenSurefirePluginTest extends MavenDomTestCase { """) + importProject() assertCompletionVariants(myProjectPom, "surefire.forkNumber", "surefire.threadNumber") } void testCompletionSurefirePropertiesOutsideConfiguration() { - importProject(""" + configureProjectPom(""" simpleMaven simpleMaven 1.0 @@ -101,6 +103,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase { """) + importProject() assertCompletionVariants(myProjectPom) } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java index 3b332a7b7db9..3b64c126343c 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java @@ -120,18 +120,19 @@ public class DependenciesImportingTest extends MavenImportingTestCase { } public void testSystemDependencyWithoutPath() { - importProject("test" + - "project" + - "1" + + createProjectPom("test" + + "project" + + "1" + - "" + - " " + - " junit" + - " junit" + - " 4.0" + - " system" + - " " + - ""); + "" + + " " + + " junit" + + " junit" + + " 4.0" + + " system" + + " " + + ""); + importProjectWithErrors(true); assertModules("project"); assertModuleLibDeps("project"); // dependency was not added due to reported pom model problem. @@ -187,7 +188,7 @@ public class DependenciesImportingTest extends MavenImportingTestCase { " " + ""); - importProject(); + importProjectWithErrors(true); assertModuleLibDeps("project", "Maven: group:lib:1"); } @@ -1315,7 +1316,7 @@ public class DependenciesImportingTest extends MavenImportingTestCase { " " + ""); - importProject(); + importProjectWithErrors(true); assertModules("project", "m"); assertModuleLibDeps("m"); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesManagementTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesManagementTest.java index e7a135848e8a..1607cda24762 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesManagementTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesManagementTest.java @@ -117,7 +117,7 @@ public class DependenciesManagementTest extends MavenImportingTestCase { " junit" + " " + ""); - importProjects(bom, project); + importProjectsWithErrors(bom, project); assertModules("bom", "project"); // reset embedders and try to resolve project from scratch in specific order - imported one goes first diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java index 9304c93705bb..dc8a38af726b 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/FoldersImportingTest.java @@ -56,9 +56,10 @@ public class FoldersImportingTest extends MavenImportingTestCase { } public void testInvalidProjectHasContentRoot() { - importProject("test" + - "project" + - "1"); + createProjectPom("test" + + "project" + + "1"); + importProjectWithErrors(true); assertModules("project"); assertContentRoots("project", getProjectPath()); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/InvalidProjectImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/InvalidProjectImportingTest.java index 6b529a962c25..a795090d1119 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/InvalidProjectImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/InvalidProjectImportingTest.java @@ -17,6 +17,7 @@ package org.jetbrains.idea.maven.importing; import com.intellij.idea.Bombed; import com.intellij.openapi.application.WriteAction; +import org.intellij.lang.annotations.Language; import org.jetbrains.idea.maven.MavenCustomRepositoryHelper; import org.jetbrains.idea.maven.MavenImportingTestCase; import org.jetbrains.idea.maven.model.MavenProjectProblem; @@ -29,7 +30,7 @@ import java.util.List; public class InvalidProjectImportingTest extends MavenImportingTestCase { public void testUnknownProblem() { - importProject(""); + importProjectWithErrors(""); assertModules("project"); MavenProject root = getRootProjects().get(0); @@ -40,7 +41,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { createProjectPom(""); WriteAction.runAndWait(() -> myProjectPom.setBinaryContent(new byte[0])); - importProject(); + importProjectWithErrors(); assertModules("project"); @@ -49,9 +50,9 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testUndefinedPropertyInHeader() { - importProject("test" + - "${undefined}" + - "1"); + importProjectWithErrors("test" + + "${undefined}" + + "1"); assertModules("project"); MavenProject root = getRootProjects().get(0); @@ -59,15 +60,15 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testUnresolvedParent() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " test" + - " parent" + - " 1" + - ""); + "" + + " test" + + " parent" + + " 1" + + ""); assertModules("project"); @@ -76,20 +77,20 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testUnresolvedParentForInvalidProject() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " test" + - " parent" + - " 1" + - "" + + "" + + " test" + + " parent" + + " 1" + + "" + - // not of the 'pom' type - "" + - " foo" + - ""); + // not of the 'pom' type + "" + + " foo" + + ""); MavenProject root = getRootProjects().get(0); assertProblems(root, @@ -99,14 +100,14 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testMissingModules() { - importProject("test" + - "project" + - "1" + - "pom" + + importProjectWithErrors("test" + + "project" + + "1" + + "pom" + - "" + - " foo" + - ""); + "" + + " foo" + + ""); assertModules("project"); @@ -128,7 +129,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { createModulePom("foo", "test" + "foo" + "1"); - importProject(); + importProjectWithErrors(); assertModules("project", "foo"); MavenProject root = getRootProjects().get(0); @@ -149,7 +150,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { "foo" + "1"); // invalid tag - importProject(); + importProjectWithErrors(); assertModules("project", "foo"); MavenProject root = getRootProjects().get(0); @@ -187,7 +188,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { "bar" + "1"); // invalid tag - importProject(); + importProjectWithErrors(); assertModules("project", "foo", "bar (1)", "bar (2)", "bar (3) (org.test)"); } @@ -204,7 +205,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { "foo" + "1"); - importProject(); + importProjectWithErrors(); assertModules("project", "foo"); } @@ -222,23 +223,23 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { "foo" + "1"); - importProject(); + importProjectWithErrors(); assertModules("project", "foo"); } public void testInvalidRepositoryLayout() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " test" + - " http://www.google.com" + - " nothing" + // invalid layout - " " + - ""); + "" + + " " + + " test" + + " http://www.google.com" + + " nothing" + // invalid layout + " " + + ""); assertModules("project"); @@ -247,41 +248,41 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testDoNotFailIfRepositoryHasEmptyLayout() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " foo1" + - " bar1" + - " " + - " " + - "" + - "" + - " " + - " foo2" + - " bar2" + - " " + - " " + - ""); + "" + + " " + + " foo1" + + " bar1" + + " " + + " " + + "" + + "" + + " " + + " foo2" + + " bar2" + + " " + + " " + + ""); MavenProject root = getRootProjects().get(0); assertProblems(root); } public void testDoNotFailIfDistributionRepositoryHasEmptyValues() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " " + - " " + - " " + - " " + - ""); + "" + + " " + + " " + + " " + + " " + + " " + + ""); MavenProject root = getRootProjects().get(0); assertProblems(root); @@ -328,7 +329,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { " " + ""); - importProject(); + importProjectWithErrors(); MavenProject root = getRootProjects().get(0); @@ -355,7 +356,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { " " + ""); - importProject(); + importProjectWithErrors(); assertModuleLibDeps("project"); @@ -390,7 +391,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { "m2" + "1"); - importProject(); + importProjectWithErrors(); MavenProject root = getRootProjects().get(0); assertProblems(root); @@ -448,7 +449,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { " " + ""); - importProject(); + importProjectWithErrors(); MavenProject root = getRootProjects().get(0); assertProblems(root); @@ -459,19 +460,19 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { @Bombed(user = "Vladislav.Soroka", year=2020, month = Calendar.APRIL, day = 1, description = "temporary disabled") public void testUnresolvedExtensionsAfterImport() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " " + - " xxx" + - " yyy" + - " 1" + - " " + - " " + - ""); + "" + + " " + + " " + + " xxx" + + " yyy" + + " 1" + + " " + + " " + + ""); MavenProject root = getRootProjects().get(0); assertProblems(root, "Unresolved build extension: 'xxx:yyy:1'"); @@ -479,19 +480,19 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { @Bombed(user = "Vladislav.Soroka", year=2020, month = Calendar.APRIL, day = 1, description = "temporary disabled") public void testUnresolvedExtensionsAfterResolve() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " " + - " xxx" + - " yyy" + - " 1" + - " " + - " " + - ""); + "" + + " " + + " " + + " xxx" + + " yyy" + + " 1" + + " " + + " " + + ""); resolveDependenciesAndImport(); MavenProject root = getRootProjects().get(0); @@ -499,21 +500,21 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testDoesNotReportExtensionsThatWereNotTriedToBeResolved() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - // for some reasons this plugins is not rtied to be resolved by embedder. - // we shouldn't report it as unresolved. - "" + - " " + - " " + - " org.apache.maven.wagon" + - " wagon-ssh-external" + - " 1.0-alpha-6" + - " " + - " " + - ""); + // for some reasons this plugins is not rtied to be resolved by embedder. + // we shouldn't report it as unresolved. + "" + + " " + + " " + + " org.apache.maven.wagon" + + " wagon-ssh-external" + + " 1.0-alpha-6" + + " " + + " " + + ""); assertProblems(getRootProjects().get(0)); @@ -522,21 +523,21 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { } public void testDoesNotReportExtensionsThatDoNotHaveJarFiles() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - // for some reasons this plugins is not rtied to be resolved by embedder. - // we shouldn't report it as unresolved. - "" + - " " + - " " + - " org.apache.maven.wagon" + - " wagon" + - " 1.0-alpha-6" + - " " + - " " + - ""); + // for some reasons this plugins is not rtied to be resolved by embedder. + // we shouldn't report it as unresolved. + "" + + " " + + " " + + " org.apache.maven.wagon" + + " wagon" + + " 1.0-alpha-6" + + " " + + " " + + ""); assertProblems(getRootProjects().get(0)); @@ -591,7 +592,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { " " + ""); - importProject(); + importProjectWithErrors(); MavenProject root = getRootProjects().get(0); @@ -605,19 +606,19 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { @Bombed(user = "Vladislav.Soroka", year=2020, month = Calendar.APRIL, day = 1, description = "temporary disabled") public void testUnresolvedPlugins() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " " + - " xxx" + - " yyy" + - " 1" + - " " + - " " + - ""); + "" + + " " + + " " + + " xxx" + + " yyy" + + " 1" + + " " + + " " + + ""); MavenProject root = getRootProjects().get(0); assertProblems(root, "Unresolved plugin: 'xxx:yyy:1'"); @@ -628,39 +629,39 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { setRepositoryPath(helper.getTestDataPath("plugins")); - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " " + - " org.apache.maven.plugins" + - " maven-compiler-plugin" + - " 2.0.2" + - " " + - " " + - ""); + "" + + " " + + " " + + " org.apache.maven.plugins" + + " maven-compiler-plugin" + + " 2.0.2" + + " " + + " " + + ""); assertProblems(getRootProjects().get(0)); } @Bombed(user = "Vladislav.Soroka", year=2020, month = Calendar.APRIL, day = 1, description = "temporary disabled") public void testUnresolvedPluginsAsExtensions() { - importProject("test" + - "project" + - "1" + + importProjectWithErrors("test" + + "project" + + "1" + - "" + - " " + - " " + - " xxx" + - " yyy" + - " 1" + - " true" + - " " + - " " + - ""); + "" + + " " + + " " + + " xxx" + + " yyy" + + " 1" + + " true" + + " " + + " " + + ""); assertModules("project"); @@ -671,9 +672,9 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { public void testInvalidSettingsXml() throws Exception { updateSettingsXml("test" + - "project" + - "1"); + importProjectWithErrors("test" + + "project" + + "1"); assertModules("project"); MavenProject root = getRootProjects().get(0); @@ -683,15 +684,24 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase { public void testInvalidProfilesXml() { createProfilesXml("test" + - "project" + - "1"); + importProjectWithErrors("test" + + "project" + + "1"); assertModules("project"); MavenProject root = getRootProjects().get(0); assertProblems(root, "'profiles.xml' has syntax errors"); } + private void importProjectWithErrors(@Language(value = "XML", prefix = "", suffix = "") String s) { + createProjectPom(s); + importProjectWithErrors(true); + } + + private void importProjectWithErrors() { + importProjectWithErrors(true); + } + private static void assertProblems(MavenProject project, String... expectedProblems) { List actualProblems = new ArrayList<>(); for (MavenProjectProblem each : project.getProblems()) { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/MiscImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/MiscImportingTest.java index 3a5c5b26e534..ffff66609021 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/MiscImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/MiscImportingTest.java @@ -263,17 +263,18 @@ public class MiscImportingTest extends MavenImportingTestCase { File repo = new File(myDir, "repo"); setRepositoryPath(repo.getPath()); - importProject("test" + - "project" + - "1" + - "" + - "" + - " " + - " " + - " maven-surefire-plugin" + - " " + - " " + - ""); + createProjectPom("test" + + "project" + + "1" + + "" + + "" + + " " + + " " + + " maven-surefire-plugin" + + " " + + " " + + ""); + importProjectWithErrors(true); List problems = myProjectsTree.getRootProjects().get(0).getProblems(); assertTrue(problems.size() > 0); @@ -330,20 +331,21 @@ public class MiscImportingTest extends MavenImportingTestCase { setRepositoryPath(helper.getTestDataPath("plugins")); getMavenGeneralSettings().setWorkOffline(true); - importProjectWithMaven3("test" + - "project" + - "1" + - "throw!" + - "" + - "" + - " " + - " " + - " intellij.test" + - " maven-extension" + - " 1.0" + - " " + - " " + - ""); + createProjectPom("test" + + "project" + + "1" + + "throw!" + + "" + + "" + + " " + + " " + + " intellij.test" + + " maven-extension" + + " 1.0" + + " " + + " " + + ""); + importProjectWithErrors(false); List projects = myProjectsTree.getProjects(); assertEquals(1, projects.size()); diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/StructureImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/StructureImportingTest.java index 0bc6b534f340..0b2fbd42a3ce 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/StructureImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/StructureImportingTest.java @@ -262,15 +262,16 @@ public class StructureImportingTest extends MavenImportingTestCase { } public void testRecursiveParent() { - importProject("" + - " org.apache.maven.archetype.test" + - " test-create-2" + - " 1.0-SNAPSHOT" + - "" + + createProjectPom("" + + " org.apache.maven.archetype.test" + + " test-create-2" + + " 1.0-SNAPSHOT" + + "" + - "test-create-2" + - "Maven archetype Test create-2-subModule" + - "pom"); + "test-create-2" + + "Maven archetype Test create-2-subModule" + + "pom"); + importProjectWithErrors(true); } public void testParentWithoutARelativePath() { diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenDuplicatedDependencyInspectionTest.groovy b/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenDuplicatedDependencyInspectionTest.groovy index 162654c975c4..1de191b53211 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenDuplicatedDependencyInspectionTest.groovy +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/inspections/dom/MavenDuplicatedDependencyInspectionTest.groovy @@ -166,7 +166,7 @@ class MavenDuplicatedDependencyInspectionTest extends MavenDomTestCase { """) - importProject() + importProjectWithErrors(true) checkHighlighting(myProjectPom, true, false, true) } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java index 0277ee8587aa..c8950fb0faf5 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.java @@ -851,7 +851,7 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase { createProjectPom("test" + "project" + "1"); - importProject(); + importProjectWithErrors(true); assertModules("project"); assertFalse(called[0]); // on import