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).
This commit is contained in:
nik
2018-04-16 14:49:00 +03:00
parent 42e56dca61
commit ab20d9e09d
14 changed files with 319 additions and 283 deletions
@@ -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<VirtualFile> files, String... profiles) {
private void doImportProjects(boolean useMaven2, final List<VirtualFile> 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());
}
}
}
@@ -309,7 +309,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi
"<artifactId>m1</artifactId>" +
"<version>1</version>");
createProjectPom("<groupId>test</groupId>" +
configureProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
@@ -320,14 +320,14 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi
" </dependency>" +
"</dependencies>");
importProjects(myProjectPom, m);
importProjectsWithErrors(myProjectPom, m);
assertCompletionVariants(myProjectPom, "m1");
createModulePom("m1", "");
importProjects(myProjectPom, m);
importProjectsWithErrors(myProjectPom, m);
createProjectPom("<groupId>test</groupId>" +
configureProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
@@ -347,7 +347,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi
"<artifactId>m1</artifactId>" +
"<version>1</version>");
createProjectPom("<groupId>test</groupId>" +
configureProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
@@ -358,7 +358,7 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi
" </dependency>" +
"</dependencies>");
importProjects(myProjectPom, m);
importProjectsWithErrors(myProjectPom, m);
assertCompletionVariants(myProjectPom, "m1");
@@ -400,26 +400,27 @@ public class MavenDependencyCompletionAndResolutionTest extends MavenDomWithIndi
}
public void testResolveManagedDependency() throws Exception {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
configureProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<dependencyManagement>" +
" <dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
" <version>4.0</version>" +
" </dependency>" +
" </dependencies>" +
"</dependencyManagement>" +
"<dependencyManagement>" +
" <dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
" <version>4.0</version>" +
" </dependency>" +
" </dependencies>" +
"</dependencyManagement>" +
"<dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit<caret></artifactId>" +
" </dependency>" +
"</dependencies>");
"<dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit<caret></artifactId>" +
" </dependency>" +
"</dependencies>");
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("<groupId>test</groupId>" +
configureProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
@@ -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 = "<project>", suffix = "</project>") 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);
@@ -272,38 +272,41 @@ public class MavenParentCompletionAndResolutionTest extends MavenDomWithIndicesT
}
public void testHighlightingAbsentGroupId() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<<error descr=\"'groupId' child tag should be defined\">parent</error>>" +
" <artifactId><error>junit</error></artifactId>" +
" <version><error>4.0</error></version>" +
"</parent>");
"<<error descr=\"'groupId' child tag should be defined\">parent</error>>" +
" <artifactId><error>junit</error></artifactId>" +
" <version><error>4.0</error></version>" +
"</parent>");
importProjectWithErrors(true);
checkHighlighting();
}
public void testHighlightingAbsentArtifactId() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<<error descr=\"'artifactId' child tag should be defined\">parent</error>>" +
" <groupId>junit</groupId>" +
" <version><error>4.0</error></version>" +
"</parent>");
"<<error descr=\"'artifactId' child tag should be defined\">parent</error>>" +
" <groupId>junit</groupId>" +
" <version><error>4.0</error></version>" +
"</parent>");
importProjectWithErrors(true);
checkHighlighting();
}
public void testHighlightingAbsentVersion() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<<error descr=\"'version' child tag should be defined\">parent</error>>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
"</parent>");
"<<error descr=\"'version' child tag should be defined\">parent</error>>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
"</parent>");
importProjectWithErrors(true);
checkHighlighting();
}
@@ -163,7 +163,7 @@ public class MavenPropertyResolverTest extends MavenImportingTestCase {
"</properties>");
importProject();
importProjectWithErrors(true);
assertEquals("${prop1}", resolve("${prop1}", myProjectPom));
assertEquals("${prop3}", resolve("${prop3}", myProjectPom));
assertEquals("${prop5}", resolve("${prop5}", myProjectPom));
@@ -29,7 +29,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase {
}
void testCompletion() {
importProject("""
configureProjectPom("""
<groupId>simpleMaven</groupId>
<artifactId>simpleMaven</artifactId>
<packaging>jar</packaging>
@@ -48,6 +48,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase {
</plugins>
</build>
""")
importProject()
createProjectSubFile("src/main/A.txt", "")
createProjectSubFile("src/test/A.txt", "")
@@ -57,7 +58,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase {
}
void testCompletionSurefireProperties() {
importProject("""
configureProjectPom("""
<groupId>simpleMaven</groupId>
<artifactId>simpleMaven</artifactId>
<version>1.0</version>
@@ -76,12 +77,13 @@ class MavenSurefirePluginTest extends MavenDomTestCase {
</plugins>
</build>
""")
importProject()
assertCompletionVariants(myProjectPom, "surefire.forkNumber", "surefire.threadNumber")
}
void testCompletionSurefirePropertiesOutsideConfiguration() {
importProject("""
configureProjectPom("""
<groupId>simpleMaven</groupId>
<artifactId>simpleMaven</artifactId>
<version>1.0</version>
@@ -101,6 +103,7 @@ class MavenSurefirePluginTest extends MavenDomTestCase {
</plugins>
</build>
""")
importProject()
assertCompletionVariants(myProjectPom)
}
@@ -120,18 +120,19 @@ public class DependenciesImportingTest extends MavenImportingTestCase {
}
public void testSystemDependencyWithoutPath() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
" <version>4.0</version>" +
" <scope>system</scope>" +
" </dependency>" +
"</dependencies>");
"<dependencies>" +
" <dependency>" +
" <groupId>junit</groupId>" +
" <artifactId>junit</artifactId>" +
" <version>4.0</version>" +
" <scope>system</scope>" +
" </dependency>" +
"</dependencies>");
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 {
" </dependency>" +
"</dependencies>");
importProject();
importProjectWithErrors(true);
assertModuleLibDeps("project", "Maven: group:lib:1");
}
@@ -1315,7 +1316,7 @@ public class DependenciesImportingTest extends MavenImportingTestCase {
" </dependency>" +
"</dependencies>");
importProject();
importProjectWithErrors(true);
assertModules("project", "m");
assertModuleLibDeps("m");
@@ -117,7 +117,7 @@ public class DependenciesManagementTest extends MavenImportingTestCase {
" <artifactId>junit</artifactId>" +
" </dependency>" +
"</dependencies>");
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
@@ -56,9 +56,10 @@ public class FoldersImportingTest extends MavenImportingTestCase {
}
public void testInvalidProjectHasContentRoot() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1");
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1");
importProjectWithErrors(true);
assertModules("project");
assertContentRoots("project", getProjectPath());
@@ -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("<groupId>test</groupId>" +
"<artifactId>${undefined}</artifactId>" +
"<version>1</version>");
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>${undefined}</artifactId>" +
"<version>1</version>");
assertModules("project");
MavenProject root = getRootProjects().get(0);
@@ -59,15 +60,15 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
}
public void testUnresolvedParent() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<parent>" +
" <groupId>test</groupId>" +
" <artifactId>parent</artifactId>" +
" <version>1</version>" +
"</parent>");
"<parent>" +
" <groupId>test</groupId>" +
" <artifactId>parent</artifactId>" +
" <version>1</version>" +
"</parent>");
assertModules("project");
@@ -76,20 +77,20 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
}
public void testUnresolvedParentForInvalidProject() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<parent>" +
" <groupId>test</groupId>" +
" <artifactId>parent</artifactId>" +
" <version>1</version>" +
"</parent>" +
"<parent>" +
" <groupId>test</groupId>" +
" <artifactId>parent</artifactId>" +
" <version>1</version>" +
"</parent>" +
// not of the 'pom' type
"<modules>" +
" <module>foo</module>" +
"</modules>");
// not of the 'pom' type
"<modules>" +
" <module>foo</module>" +
"</modules>");
MavenProject root = getRootProjects().get(0);
assertProblems(root,
@@ -99,14 +100,14 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
}
public void testMissingModules() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<packaging>pom</packaging>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<packaging>pom</packaging>" +
"<modules>" +
" <module>foo</module>" +
"</modules>");
"<modules>" +
" <module>foo</module>" +
"</modules>");
assertModules("project");
@@ -128,7 +129,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
createModulePom("foo", "<groupId>test</groupId>" +
"<artifactId>foo</artifactId>" +
"<version>1</version>");
importProject();
importProjectWithErrors();
assertModules("project", "foo");
MavenProject root = getRootProjects().get(0);
@@ -149,7 +150,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
"<artifactId>foo</artifactId>" +
"<version>1"); // invalid tag
importProject();
importProjectWithErrors();
assertModules("project", "foo");
MavenProject root = getRootProjects().get(0);
@@ -187,7 +188,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
"<artifactId>bar</artifactId>" +
"<version>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 {
"<artifactId>foo</artifactId>" +
"<version>1</version>");
importProject();
importProjectWithErrors();
assertModules("project", "foo");
}
@@ -222,23 +223,23 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
"<artifactId>foo</artifactId>" +
"<version>1</version>");
importProject();
importProjectWithErrors();
assertModules("project", "foo");
}
public void testInvalidRepositoryLayout() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<distributionManagement>" +
" <repository>" +
" <id>test</id>" +
" <url>http://www.google.com</url>" +
" <layout>nothing</layout>" + // invalid layout
" </repository>" +
"</distributionManagement>");
"<distributionManagement>" +
" <repository>" +
" <id>test</id>" +
" <url>http://www.google.com</url>" +
" <layout>nothing</layout>" + // invalid layout
" </repository>" +
"</distributionManagement>");
assertModules("project");
@@ -247,41 +248,41 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
}
public void testDoNotFailIfRepositoryHasEmptyLayout() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<repositories>" +
" <repository>" +
" <id>foo1</id>" +
" <url>bar1</url>" +
" <layout/>" +
" </repository>" +
"</repositories>" +
"<pluginRepositories>" +
" <pluginRepository>" +
" <id>foo2</id>" +
" <url>bar2</url>" +
" <layout/>" +
" </pluginRepository>" +
"</pluginRepositories>");
"<repositories>" +
" <repository>" +
" <id>foo1</id>" +
" <url>bar1</url>" +
" <layout/>" +
" </repository>" +
"</repositories>" +
"<pluginRepositories>" +
" <pluginRepository>" +
" <id>foo2</id>" +
" <url>bar2</url>" +
" <layout/>" +
" </pluginRepository>" +
"</pluginRepositories>");
MavenProject root = getRootProjects().get(0);
assertProblems(root);
}
public void testDoNotFailIfDistributionRepositoryHasEmptyValues() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<distributionManagement>" +
" <repository>" +
" <id/>" +
" <url/>" +
" <layout/>" +
" </repository>" +
"</distributionManagement>");
"<distributionManagement>" +
" <repository>" +
" <id/>" +
" <url/>" +
" <layout/>" +
" </repository>" +
"</distributionManagement>");
MavenProject root = getRootProjects().get(0);
assertProblems(root);
@@ -328,7 +329,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
" </dependency>" +
"</dependencies>");
importProject();
importProjectWithErrors();
MavenProject root = getRootProjects().get(0);
@@ -355,7 +356,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
" </dependency>" +
"</dependencies>");
importProject();
importProjectWithErrors();
assertModuleLibDeps("project");
@@ -390,7 +391,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
"<artifactId>m2</artifactId>" +
"<version>1</version>");
importProject();
importProjectWithErrors();
MavenProject root = getRootProjects().get(0);
assertProblems(root);
@@ -448,7 +449,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
" </dependency>" +
"</dependencies>");
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("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" </extension>" +
" </extensions>" +
"</build>");
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" </extension>" +
" </extensions>" +
"</build>");
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("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" </extension>" +
" </extensions>" +
"</build>");
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" </extension>" +
" </extensions>" +
"</build>");
resolveDependenciesAndImport();
MavenProject root = getRootProjects().get(0);
@@ -499,21 +500,21 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
}
public void testDoesNotReportExtensionsThatWereNotTriedToBeResolved() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
// for some reasons this plugins is not rtied to be resolved by embedder.
// we shouldn't report it as unresolved.
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>org.apache.maven.wagon</groupId>" +
" <artifactId>wagon-ssh-external</artifactId>" +
" <version>1.0-alpha-6</version>" +
" </extension>" +
" </extensions>" +
"</build>");
// for some reasons this plugins is not rtied to be resolved by embedder.
// we shouldn't report it as unresolved.
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>org.apache.maven.wagon</groupId>" +
" <artifactId>wagon-ssh-external</artifactId>" +
" <version>1.0-alpha-6</version>" +
" </extension>" +
" </extensions>" +
"</build>");
assertProblems(getRootProjects().get(0));
@@ -522,21 +523,21 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
}
public void testDoesNotReportExtensionsThatDoNotHaveJarFiles() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
// for some reasons this plugins is not rtied to be resolved by embedder.
// we shouldn't report it as unresolved.
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>org.apache.maven.wagon</groupId>" +
" <artifactId>wagon</artifactId>" +
" <version>1.0-alpha-6</version>" +
" </extension>" +
" </extensions>" +
"</build>");
// for some reasons this plugins is not rtied to be resolved by embedder.
// we shouldn't report it as unresolved.
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>org.apache.maven.wagon</groupId>" +
" <artifactId>wagon</artifactId>" +
" <version>1.0-alpha-6</version>" +
" </extension>" +
" </extensions>" +
"</build>");
assertProblems(getRootProjects().get(0));
@@ -591,7 +592,7 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
" </extensions>" +
"</build>");
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("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<build>" +
" <plugins>" +
" <plugin>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" </plugin>" +
" </plugins>" +
"</build>");
"<build>" +
" <plugins>" +
" <plugin>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" </plugin>" +
" </plugins>" +
"</build>");
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("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<build>" +
" <plugins>" +
" <plugin>" +
" <groupId>org.apache.maven.plugins</groupId>" +
" <artifactId>maven-compiler-plugin</artifactId>" +
" <version>2.0.2</version>" +
" </plugin>" +
" </plugins>" +
"</build>");
"<build>" +
" <plugins>" +
" <plugin>" +
" <groupId>org.apache.maven.plugins</groupId>" +
" <artifactId>maven-compiler-plugin</artifactId>" +
" <version>2.0.2</version>" +
" </plugin>" +
" </plugins>" +
"</build>");
assertProblems(getRootProjects().get(0));
}
@Bombed(user = "Vladislav.Soroka", year=2020, month = Calendar.APRIL, day = 1, description = "temporary disabled")
public void testUnresolvedPluginsAsExtensions() {
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<build>" +
" <plugins>" +
" <plugin>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" <extensions>true</extensions>" +
" </plugin>" +
" </plugins>" +
"</build>");
"<build>" +
" <plugins>" +
" <plugin>" +
" <groupId>xxx</groupId>" +
" <artifactId>yyy</artifactId>" +
" <version>1</version>" +
" <extensions>true</extensions>" +
" </plugin>" +
" </plugins>" +
"</build>");
assertModules("project");
@@ -671,9 +672,9 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
public void testInvalidSettingsXml() throws Exception {
updateSettingsXml("<localRepo<<");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
assertModules("project");
MavenProject root = getRootProjects().get(0);
@@ -683,15 +684,24 @@ public class InvalidProjectImportingTest extends MavenImportingTestCase {
public void testInvalidProfilesXml() {
createProfilesXml("<prof<<");
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
importProjectWithErrors("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>");
assertModules("project");
MavenProject root = getRootProjects().get(0);
assertProblems(root, "'profiles.xml' has syntax errors");
}
private void importProjectWithErrors(@Language(value = "XML", prefix = "<project>", suffix = "</project>") String s) {
createProjectPom(s);
importProjectWithErrors(true);
}
private void importProjectWithErrors() {
importProjectWithErrors(true);
}
private static void assertProblems(MavenProject project, String... expectedProblems) {
List<String> actualProblems = new ArrayList<>();
for (MavenProjectProblem each : project.getProblems()) {
@@ -263,17 +263,18 @@ public class MiscImportingTest extends MavenImportingTestCase {
File repo = new File(myDir, "repo");
setRepositoryPath(repo.getPath());
importProject("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"" +
"<build>" +
" <plugins>" +
" <plugin>" +
" <artifactId>maven-surefire-plugin</artifactId>" +
" </plugin>" +
" </plugins>" +
"</build>");
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"" +
"<build>" +
" <plugins>" +
" <plugin>" +
" <artifactId>maven-surefire-plugin</artifactId>" +
" </plugin>" +
" </plugins>" +
"</build>");
importProjectWithErrors(true);
List<MavenProjectProblem> 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("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<description>throw!</description>" +
"" +
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>intellij.test</groupId>" +
" <artifactId>maven-extension</artifactId>" +
" <version>1.0</version>" +
" </extension>" +
" </extensions>" +
"</build>");
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1</version>" +
"<description>throw!</description>" +
"" +
"<build>" +
" <extensions>" +
" <extension>" +
" <groupId>intellij.test</groupId>" +
" <artifactId>maven-extension</artifactId>" +
" <version>1.0</version>" +
" </extension>" +
" </extensions>" +
"</build>");
importProjectWithErrors(false);
List<MavenProject> projects = myProjectsTree.getProjects();
assertEquals(1, projects.size());
@@ -262,15 +262,16 @@ public class StructureImportingTest extends MavenImportingTestCase {
}
public void testRecursiveParent() {
importProject("<parent>" +
" <groupId>org.apache.maven.archetype.test</groupId>" +
" <artifactId>test-create-2</artifactId>" +
" <version>1.0-SNAPSHOT</version>" +
"</parent>" +
createProjectPom("<parent>" +
" <groupId>org.apache.maven.archetype.test</groupId>" +
" <artifactId>test-create-2</artifactId>" +
" <version>1.0-SNAPSHOT</version>" +
"</parent>" +
"<artifactId>test-create-2</artifactId>" +
"<name>Maven archetype Test create-2-subModule</name>" +
"<packaging>pom</packaging>");
"<artifactId>test-create-2</artifactId>" +
"<name>Maven archetype Test create-2-subModule</name>" +
"<packaging>pom</packaging>");
importProjectWithErrors(true);
}
public void testParentWithoutARelativePath() {
@@ -166,7 +166,7 @@ class MavenDuplicatedDependencyInspectionTest extends MavenDomTestCase {
</dependencies>
""")
importProject()
importProjectWithErrors(true)
checkHighlighting(myProjectPom, true, false, true)
}
@@ -851,7 +851,7 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
createProjectPom("<groupId>test</groupId>" +
"<artifactId>project</artifactId>" +
"<version>1");
importProject();
importProjectWithErrors(true);
assertModules("project");
assertFalse(called[0]); // on import