<?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>javax.portlet</groupId>
		<artifactId>portlet-tck</artifactId>
		<version>3.0.3</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>tck-driver</artifactId>
	<packaging>jar</packaging>
	<description>
   This project builds the Junit / Selenium driver for the portlet API tck.
   </description>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.portals.pluto</groupId>
			<artifactId>test-base</artifactId>
			<version>${pluto.test.version}</version>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>htmlunit-driver</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.codeborne</groupId>
			<artifactId>phantomjsdriver</artifactId>
			<scope>compile</scope>
		</dependency>
		<!-- Dependency on common module for element ID suffixes -->
		<dependency>
			<groupId>javax.portlet</groupId>
			<artifactId>tck-common</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>
		<!-- List the modules containing test cases in order to aggregate the output -->
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-TestModule1</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-TestModule2</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-TestModule3</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2AnnotationTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2EnvironmentTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2ExceptionTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2FilterTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2PortletTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2RequestTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2ResponseTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2URLTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2WrapperTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2AddlEnvironmentTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2AddlFilterTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2AddlPortletTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2AddlRequestTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2AddlResponseTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2PortletTagLibraryTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2PortletTagLibraryTests2</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2PortletTagLibraryTests3</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherTests2</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherTests3S</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherTests4</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherTests5</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherTests6</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherReqRespTests1</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherReqRespTests2</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherReqRespTests3</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherReqRespTests4</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2DispatcherReqRespTests5S</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsAction</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsEnv</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsEvent</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsException</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsFilter</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsRender</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsResource</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsURL</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V2SigTestsWrapper</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3PortletContextTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3PortletConfigTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3URLTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3RenderStateTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3HeaderPortletTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3PortletParametersTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3AnnotationPortletArtifactValidityTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3AnnotationPortletApplicationConfigTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3AnnotationPortletAppConfigOverrideTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3AnnotationPortletConfigTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3PortletHubTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-V3ResourceAsyncTests</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
	</dependencies>
	<properties>
		<additional.testcases.only>true</additional.testcases.only>
		<additional.pagefile.only>true</additional.pagefile.only>
	</properties>
	<build>
		<finalName>${project.artifactId}</finalName>
		<resources>
			<resource>
				<directory>src/main/resources/xml-resources</directory>
				<targetPath>../${test.file.dir}</targetPath>
				<includes>
					<include>*</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources/xml-resources</directory>
				<targetPath>${test.list.dir}</targetPath>
				<includes>
					<include>ignoredTestCases.xml</include>
					<include>nonExclusiveTestCases.xml</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<!-- get the phantomjs executable -->
			<plugin>
				<groupId>com.github.klieber</groupId>
				<artifactId>phantomjs-maven-plugin</artifactId>
				<version>0.7</version>
				<executions>
					<execution>
						<goals>
							<goal>install</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<version>1.9.7</version>
					<checkSystemPath>false</checkSystemPath>
				</configuration>
			</plugin>
			<!-- For extracting the XML transformation stylesheets from common module -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>xml-resource-dependencies</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>unpack-dependencies</goal>
						</goals>
						<configuration>
							<includeArtifactIds>
                        tck-TestModule1,
                        tck-TestModule2,
                        tck-TestModule3,
                        tck-V2AnnotationTests,
                        tck-V2EnvironmentTests,
                        tck-V2ExceptionTests,
                        tck-V2FilterTests,
                        tck-V2PortletTests,
                        tck-V2RequestTests,
                        tck-V2ResponseTests,
                        tck-V2URLTests,
                        tck-V2WrapperTests,
                        tck-V2AddlEnvironmentTests,
                        tck-V2AddlFilterTests,
                        tck-V2AddlPortletTests,
                        tck-V2AddlRequestTests,
                        tck-V2AddlResponseTests,
                        tck-V2SigTestsAction,
                        tck-V2SigTestsEnv,
                        tck-V2SigTestsEvent,
                        tck-V2SigTestsException,
                        tck-V2SigTestsFilter,
                        tck-V2SigTestsRender,
                        tck-V2SigTestsResource,
                        tck-V2SigTestsURL,
                        tck-V2SigTestsWrapper,
                        tck-V2PortletTagLibraryTests,
                        tck-V2PortletTagLibraryTests2,
                        tck-V2PortletTagLibraryTests3,
                        tck-V2DispatcherReqRespTests1,
                        tck-V2DispatcherReqRespTests2,
                        tck-V2DispatcherReqRespTests3,
                        tck-V2DispatcherReqRespTests4,
                        tck-V2DispatcherReqRespTests5S,
                        tck-V2DispatcherTests,
                        tck-V2DispatcherTests2,
                        tck-V2DispatcherTests4,
                        tck-V2DispatcherTests5,
                        tck-V2DispatcherTests6,
                        tck-V2DispatcherTests3S,
                        
                        tck-V3PortletContextTests,
                        tck-V3PortletConfigTests,
						      tck-V3URLTests,
						      tck-V3RenderStateTests
                        ,tck-V3HeaderPortletTests
                        ,tck-V3PortletParametersTests
                        ,tck-V3AnnotationPortletArtifactValidityTests
                        ,tck-V3AnnotationPortletApplicationConfigTests
                        ,tck-V3AnnotationPortletAppConfigOverrideTests
                        ,tck-V3AnnotationPortletConfigTests
                        ,tck-V3PortletHubTests
                        ,tck-V3ResourceAsyncTests
                     </includeArtifactIds>
							<includes>${test.file.dir}/*.xml</includes>
							<outputDirectory>${project.build.directory}</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- For Performing xml translations to create test.xml files -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>xml-maven-plugin</artifactId>
				<version>1.0</version>
				<executions>
					<execution>
						<phase>process-resources</phase>
						<goals>
							<goal>transform</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<transformationSets>
						<!-- Combine several test list files into a single module -->
						<transformationSet>
							<dir>${project.build.directory}/${test.file.dir}</dir>
							<includes>
								<include>testFiles.xml</include>
							</includes>
							<outputDir>${project.build.directory}/classes/${test.list.dir}</outputDir>
							<fileMappers>
								<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
									<targetName>${test.list.name}</targetName>
								</fileMapper>
							</fileMappers>
							<stylesheet>${project.build.directory}/${test.file.dir}/${test.list.xsl}</stylesheet>
						</transformationSet>
						<!-- Combine several page files into a single page file containing 
                     all test portal pages -->
						<transformationSet>
							<dir>${project.build.directory}/${test.file.dir}</dir>
							<includes>
								<include>pageFiles.xml</include>
							</includes>
							<outputDir>${project.build.directory}/classes/${test.list.dir}</outputDir>
							<fileMappers>
								<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
									<targetName>${page.file.final.name}</targetName>
								</fileMapper>
							</fileMappers>
							<stylesheet>${project.build.directory}/${test.file.dir}/${page.file.final.xsl}</stylesheet>
						</transformationSet>
					</transformationSets>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>example.Selenium2Example</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>.externalToolBuilders/Maven_Ant_Builder.launch</exclude>
						<exclude>maven-eclipse.xml</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<!-- To build the tests, use "mvn clean install" from the parent directory. -->
	<!-- To run all of the tests, use "mvn test -Prun-tck" from the driver directory. -->
	<!-- To a subset of the tests, use "mvn test -Prun-tck -Dtest.module=<match string>" from the driver directory. -->
	<!-- the driver will then execute all tests whose test case name contains the specified string. -->
	<!-- Example: "mvn test -Prun-tck -Dtest.module=PortletRequest" will execute all PortletRequest TCs. -->
	<profiles>
		<profile>
			<id>run-tck</id>
			<build>
				<plugins>
					<!-- For running the test driver -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<version>2.17</version>
						<configuration>
							<testClassesDirectory>${project.build.directory}/classes</testClassesDirectory>
							<includes>
								<include>${test.tck.driver}</include>
							</includes>
							<useFile>true</useFile>
							<argLine>-Xms512m -Xmx512m</argLine>
							<systemProperties>
								<property>
									<name>test.server.login.url</name>
									<value>${test.server.login.url}</value>
								</property>
								<property>
									<name>test.context.base</name>
									<value>${test.context.base}</value>
								</property>
								<property>
									<name>test.url.strategy</name>
									<value>${test.url.strategy}</value>
								</property>
								<property>
									<name>test.server.host</name>
									<value>${test.server.host}</value>
								</property>
								<property>
									<name>test.server.port</name>
									<value>${test.server.port}</value>
								</property>
								<property>
									<name>test.server.username.id</name>
									<value>${test.server.username.id}</value>
								</property>
								<property>
									<name>test.server.username</name>
									<value>${test.server.username}</value>
								</property>
								<property>
									<name>test.server.password.id</name>
									<value>${test.server.password.id}</value>
								</property>
								<property>
									<name>test.server.password</name>
									<value>${test.server.password}</value>
								</property>
								<property>
									<name>test.list.file</name>
									<value>${test.list.file}</value>
								</property>
								<property>
									<name>test.ignore.list.file</name>
									<value>${test.ignore.list.file}</value>
								</property>
								<property>
									<name>test.non.exclusive.file</name>
									<value>${test.non.exclusive.file}</value>
								</property>
								<property>
									<name>test.ignore</name>
									<value>true</value>
								</property>
								<property>
									<name>test.browser</name>
									<value>${test.browser}</value>
								</property>
								<property>
									<name>test.browser.webDriver</name>
									<value>${test.browser.webDriver}</value>
								</property>
								<property>
									<name>test.browser.binary</name>
									<value>${test.browser.binary}</value>
								</property>
								<property>
									<name>test.browser.headless</name>
									<value>${test.browser.headless}</value>
								</property>
								<property>
									<name>test.module</name>
									<value>${test.module}</value>
								</property>
								<property>
									<name>test.debug</name>
									<value>false</value>
								</property>
								<property>
									<name>test.timeout</name>
									<value>${test.timeout}</value>
								</property>
							</systemProperties>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
