| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| ~ Licensed to the Apache Software Foundation (ASF) under one |
| ~ or more contributor license agreements. See the NOTICE file |
| ~ distributed with this work for additional information |
| ~ regarding copyright ownership. The ASF licenses this file |
| ~ to you under the Apache License, Version 2.0 (the |
| ~ "License"); you may not use this file except in compliance |
| ~ with the License. You may obtain a copy of the License at |
| ~ |
| ~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~ |
| ~ Unless required by applicable law or agreed to in writing, |
| ~ software distributed under the License is distributed on an |
| ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~ KIND, either express or implied. See the License for the |
| ~ specific language governing permissions and limitations |
| ~ under the License. |
| --> |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>org.apache.archiva</groupId> |
| <artifactId>archiva-web</artifactId> |
| <version>1.3.9-SNAPSHOT</version> |
| </parent> |
| <artifactId>archiva-webapp-test</artifactId> |
| <packaging>pom</packaging> |
| <name>Archiva Web :: Application Tests</name> |
| |
| <properties> |
| <tomcat5x.version>5.5.27</tomcat5x.version> |
| <cargo.wait>false</cargo.wait> |
| <cargo.install.dir>cargo-installs</cargo.install.dir> |
| <seleniumPluginVersion>2.3</seleniumPluginVersion> |
| <selenium-server.version>2.35.0</selenium-server.version> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| <version>5.14.9</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>1.4</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-command-line</artifactId> |
| <version>1.0-alpha-2</version> |
| <exclusions> |
| <exclusion> |
| <artifactId>plexus-container-default</artifactId> |
| <groupId>org.codehaus.plexus</groupId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.archiva</groupId> |
| <artifactId>archiva-webapp</artifactId> |
| <type>war</type> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-utils</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-slf4j-logging</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.seleniumhq.selenium.client-drivers</groupId> |
| <artifactId>selenium-java-client-driver</artifactId> |
| <version>1.0.2</version> |
| <scope>test</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <!-- Dependency for MavenConnectionTest --> |
| <dependency> |
| <groupId>jdom</groupId> |
| <artifactId>jdom</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>jaxen</groupId> |
| <artifactId>jaxen</artifactId> |
| </dependency> |
| |
| <!-- Dependencies below are provided by the appserver --> |
| <dependency> |
| <groupId>org.apache.derby</groupId> |
| <artifactId>derby</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>javax.mail</groupId> |
| <artifactId>mail</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>javax.activation</groupId> |
| <artifactId>activation</artifactId> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <testResources> |
| <testResource> |
| <directory>src/test/resources</directory> |
| <filtering>true</filtering> |
| <includes> |
| <include>**/*</include> |
| </includes> |
| </testResource> |
| </testResources> |
| <plugins> |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <goals> |
| <goal>testResources</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <source>1.5</source> |
| <target>1.5</target> |
| <verbose>true</verbose> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>testCompile</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <systemPropertyVariables> |
| <MAX_WAIT_TIME_IN_MS>60000</MAX_WAIT_TIME_IN_MS> |
| <!-- Exclude on all browsers but Firefox, as it is the only one that Selenium supports file uploads on --> |
| <excludegroups>${excluded.groups}</excludegroups> |
| <!-- |
| Use this instead of suiteXmlFiles so that we can add the exclusion, as it is only accepted without suiteXmlFiles |
| --> |
| <listener>org.apache.archiva.web.test.listener.CaptureScreenShotsListener</listener> |
| </systemPropertyVariables> |
| </configuration> |
| <executions> |
| <execution> |
| <id>integration-tests</id> |
| <phase>integration-test</phase> |
| <goals> |
| <goal>test</goal> |
| </goals> |
| <configuration> |
| <systemPropertyVariables> |
| <browser>${selenium.browser}</browser> |
| <baseUrl>${baseUrl}</baseUrl> |
| </systemPropertyVariables> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>selenium-maven-plugin</artifactId> |
| <version>${seleniumPluginVersion}</version> |
| <dependencies> |
| <dependency> |
| <groupId>org.seleniumhq.selenium</groupId> |
| <artifactId>selenium-server</artifactId> |
| <version>${selenium-server.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.seleniumhq.selenium</groupId> |
| <artifactId>selenium-remote-driver</artifactId> |
| <version>${selenium-server.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.seleniumhq.selenium</groupId> |
| <artifactId>selenium-api</artifactId> |
| <version>${selenium-server.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| |
| <profiles> |
| <profile> |
| <id>create-container</id> |
| <activation> |
| <property> |
| <name>!container</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>dependency-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>unzip-archiva-webapp</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>${project.groupId}</groupId> |
| <artifactId>archiva-webapp</artifactId> |
| <version>${project.version}</version> |
| <type>war</type> |
| </artifactItem> |
| </artifactItems> |
| <outputDirectory>${project.build.directory}/${container.name}conf/webapps/archiva</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>prepare-provided-dependencies</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>copy-dependencies</goal> |
| </goals> |
| <configuration> |
| <includeGroupIds>org.apache.derby,javax.mail,javax.activation</includeGroupIds> |
| <overWriteReleases>false</overWriteReleases> |
| <overWriteSnapshots>true</overWriteSnapshots> |
| <excludeTransitive>false</excludeTransitive> |
| <outputDirectory>${project.build.directory}/providedDependencies</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <tasks> |
| <copy todir="${project.build.directory}/appserver-base"> |
| <fileset dir="src/test/it-resources/appserver-base" /> |
| </copy> |
| <copy todir="${project.build.directory}/repository"> |
| <fileset dir="src/test/it-resources/repository" /> |
| </copy> |
| <copy todir="${project.build.directory}/index"> |
| <fileset dir="src/test/it-resources/index" /> |
| </copy> |
| <copy todir="${project.build.directory}/snapshots"> |
| <fileset dir="src/test/it-resources/snapshots" /> |
| </copy> |
| <copy todir="${project.build.directory}/projects"> |
| <fileset dir="src/test/it-resources/projects" /> |
| </copy> |
| <copy todir="${project.build.directory}/local-repo"> |
| <fileset dir="src/test/it-resources/local-repo" /> |
| </copy> |
| </tasks> |
| </configuration> |
| </execution> |
| <execution> |
| <id>copy-container-conf</id> |
| <phase>package</phase> |
| <configuration> |
| <tasks> |
| <copy todir="${project.build.directory}/${container.name}conf"> |
| <fileset dir="src/test/${container.name}" /> |
| </copy> |
| <copy |
| todir="${cargo.install.dir}/${container.name}/apache-tomcat-${tomcat5x.version}/apache-tomcat-${tomcat5x.version}/common/lib"> |
| <fileset dir="${project.build.directory}/providedDependencies"> |
| <include name="**/*.jar" /> |
| </fileset> |
| </copy> |
| </tasks> |
| </configuration> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>check-archiva-loaded</id> |
| <phase>integration-test</phase> |
| <configuration> |
| <tasks> |
| <get src="http://localhost:9696/archiva/" dest="${project.build.directory}/index.html" /> |
| <delete file="${project.build.directory}/index.html" /> |
| </tasks> |
| </configuration> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.cargo</groupId> |
| <artifactId>cargo-maven2-plugin</artifactId> |
| <version>1.0</version> |
| <executions> |
| <execution> |
| <id>start-container</id> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>start</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>stop-container</id> |
| <phase>post-integration-test</phase> |
| <goals> |
| <goal>stop</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <wait>${cargo.wait}</wait> |
| <container> |
| <containerId>${container.name}</containerId> |
| <zipUrlInstaller> |
| <url>${container.url}</url> |
| <installDir>${project.basedir}/${cargo.install.dir}/${container.name}</installDir> |
| </zipUrlInstaller> |
| <log>${project.build.directory}/logs/${container.name}.log</log> |
| <output>${project.build.directory}/logs/${container.name}.out</output> |
| <timeout>600000</timeout> |
| <systemProperties> |
| <appserver.base>${project.build.directory}/appserver-base</appserver.base> |
| <appserver.home>${project.build.directory}/appserver-base</appserver.home> |
| </systemProperties> |
| </container> |
| <configuration> |
| <home>${project.build.directory}/${container.name}conf</home> |
| <type>existing</type> |
| <properties> |
| <cargo.servlet.port>9696</cargo.servlet.port> |
| </properties> |
| </configuration> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>existing-container</id> |
| <activation> |
| <property> |
| <name>!baseUrl</name> |
| </property> |
| </activation> |
| <properties> |
| <baseUrl>http://localhost:9696/archiva/</baseUrl> |
| </properties> |
| </profile> |
| <profile> |
| <id>start-selenium</id> |
| <activation> |
| <property> |
| <name>!seleniumHost</name> |
| </property> |
| </activation> |
| <properties> |
| <seleniumHost>localhost</seleniumHost> |
| <seleniumPort>4444</seleniumPort> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>selenium-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>start-server</goal> |
| </goals> |
| <configuration> |
| <background>true</background> |
| <port>${seleniumPort}</port> |
| <logOutput>true</logOutput> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>tomcat5x</id> |
| <activation> |
| <property> |
| <name>!container</name> |
| </property> |
| </activation> |
| <properties> |
| <container.name>tomcat5x</container.name> |
| <container.url>http://archive.apache.org/dist/tomcat/tomcat-5/v${tomcat5x.version}/bin/apache-tomcat-${tomcat5x.version}.zip</container.url> |
| </properties> |
| </profile> |
| <profile> |
| <id>firefox</id> |
| <activation> |
| <property> |
| <name>!browser</name> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*firefox</selenium.browser> |
| <excluded.groups /> |
| </properties> |
| </profile> |
| <profile> |
| <id>iexplore</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>iexplore</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*iexplore</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </properties> |
| </profile> |
| <profile> |
| <id>safari</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>safari</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*safari</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </properties> |
| </profile> |
| <profile> |
| <id>otherbrowser</id> |
| <activation> |
| <property> |
| <name>browser</name> |
| <value>other</value> |
| </property> |
| </activation> |
| <properties> |
| <selenium.browser>*custom ${browserPath}</selenium.browser> |
| <excluded.groups>requiresUpload</excluded.groups> |
| </properties> |
| </profile> |
| <profile> |
| <id>clean-cargo</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>${cargo.install.dir}</directory> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>headless</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>selenium-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>xvfb</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>xvfb</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| </project> |