package com.intellij.flex.maven; import org.jetbrains.idea.maven.MavenImportingTestCase; import java.io.File; public class NonJarDependenciesImportingTest extends MavenImportingTestCase { public void testArtifactTypeProvidedByExtensionPlugin() throws Exception { // This test ensures that we download all necessary extension plugins. importProject("<groupId>test</groupId>" + "<artifactId>project</artifactId>" + "<version>1</version>" + "<packaging>swf</packaging>" + "<dependencies>" + " <dependency>" + " <groupId>com.adobe.flex.framework</groupId>" + " <artifactId>framework</artifactId>" + " <version>3.2.0.3958</version>" + " <type>resource-bundle</type>" + " <classifier>en_US</classifier>" + " </dependency>" + "</dependencies>" + "<build>" + " <plugins>" + " <plugin>" + " <groupId>org.sonatype.flexmojos</groupId>" + " <artifactId>flexmojos-maven-plugin</artifactId>" + " <version>3.5.0</version>" + " <extensions>true</extensions>" + " </plugin>" + " </plugins>" + "</build>"); // flex plugin handles 'resource-bundle' dependencies in a special way. // assertModuleLibDep("project", "Maven: com.adobe.flex.framework:framework:resource-bundle:en_US:3.2.0.3958", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-en_US.rb.swc!/", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-sources.jar!/", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-asdoc.zip!/"); } public void testUpdateRootEntriesWithActualPathForNonJarDependencies() throws Exception { importProject("<groupId>test</groupId>" + "<artifactId>project</artifactId>" + "<version>1</version>" + "<packaging>swf</packaging>" + "<dependencies>" + " <dependency>" + " <groupId>com.adobe.flex.framework</groupId>" + " <artifactId>framework</artifactId>" + " <version>3.2.0.3958</version>" + " <type>swc</type>" + " </dependency>" + "</dependencies>" + "<build>" + " <plugins>" + " <plugin>" + " <groupId>org.sonatype.flexmojos</groupId>" + " <artifactId>flexmojos-maven-plugin</artifactId>" + " <version>4.0-beta-3</version>" + " <extensions>true</extensions>" + " </plugin>" + " </plugins>" + "</build>" + "<repositories>" + " <repository>" + " <id>flex-mojos-repository</id>" + " <url>http://svn.sonatype.org/flexmojos/repository/</url>" + " <releases>" + " <enabled>true</enabled>" + " </releases>" + " </repository>" + "</repositories>"); assertModuleLibDeps("project", "Maven: com.adobe.flex.framework:framework:swc:3.2.0.3958"); assertModuleLibDep("project", "Maven: com.adobe.flex.framework:framework:swc:3.2.0.3958", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958.swc!/", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-sources.jar!/", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-asdoc.zip!/"); setRepositoryPath(new File(myDir, "__repo").getPath()); myProjectsManager.getEmbeddersManager().reset(); scheduleResolveAll(); resolveDependenciesAndImport(); assertModuleLibDeps("project", "Maven: com.adobe.flex.framework:framework:swc:3.2.0.3958"); assertModuleLibDep("project", "Maven: com.adobe.flex.framework:framework:swc:3.2.0.3958", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958.swc!/", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-sources.jar!/", "jar://" + getRepositoryPath() + "/com/adobe/flex/framework/framework/3.2.0.3958/framework-3.2.0.3958-asdoc.zip!/"); } public void testRemovingUnusedNonJARLibrary() throws Exception { importProject("<groupId>test</groupId>" + "<artifactId>project</artifactId>" + "<version>1</version>" + "<packaging>war</packaging>" + "<dependencies>" + " <dependency>" + " <groupId>group</groupId>" + " <artifactId>lib1</artifactId>" + " <version>1</version>" + " <type>ear</type>" + " </dependency>" + " <dependency>" + " <groupId>group</groupId>" + " <artifactId>lib2</artifactId>" + " <version>1</version>" + " <type>war</type>" + " </dependency>" + "</dependencies>"); assertProjectLibraries("Maven: group:lib1:ear:1", "Maven: group:lib2:war:1"); importProject("<groupId>test</groupId>" + "<artifactId>project</artifactId>" + "<version>1</version>" + "<packaging>war</packaging>"); assertProjectLibraries(); } }