<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<relativePath>../../releng/org.eclipse.emf.parsley.parent/pom.xml</relativePath>
		<groupId>org.eclipse.emf.parsley</groupId>
		<artifactId>org.eclipse.emf.parsley.parent</artifactId>
		<version>1.2.3-SNAPSHOT</version>
	</parent>

	<artifactId>org.eclipse.emf.parsley.tests.swtbot</artifactId>
	<packaging>eclipse-test-plugin</packaging>
	
	<profiles>
		<profile>
			<id>macosx-jvm-flags</id>
			<activation>
				<os>
					<family>mac</family>
				</os>
			</activation>
			<properties>
				<os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
			</properties>
		</profile>
	</profiles>

	<build>
		<plugins>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.eclipse.xtend</groupId>
				<artifactId>xtend-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>default-test</id>
						<phase>integration-test</phase>
						<configuration>
							<skip>${swtbot.tests.skip}</skip>
							<useUIHarness>true</useUIHarness>
							<useUIThread>false</useUIThread>
							<!-- tycho.testArgLine repeated to re-use the configuration for argLine 
								for jacoco agent -->
							<argLine>${tycho.testArgLine} ${swtbotTestsArgs}</argLine>
							<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
							<excludes>
								<exclude>**/org/eclipse/emf/parsley/tests/swtbot/*WizardsTest*.java</exclude>
								<exclude>**/org/eclipse/emf/parsley/tests/swtbot/*DslEditorTest*.java</exclude>
								<exclude>**/org/eclipse/emf/parsley/tests/swtbot/*DropTest*.java</exclude>
							</excludes>
							<includes>
								<include>**/org/eclipse/emf/parsley/tests/swtbot/*Test*.java</include>
							</includes>
							<!-- Disable GTK3 with Luna because it makes the test hang (bug in IcedTea 
								http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1736) -->
							<environmentVariables>
								<SWT_GTK3>0</SWT_GTK3>
							</environmentVariables>
						</configuration>
						<goals>
							<goal>test</goal>
						</goals>
					</execution>
					<execution>
						<!-- In Hudson DragAndDrop tests seem to be "disturbed" by other tests,
							so we run them in an isolated run. -->
						<id>draganddrop-test</id>
						<phase>integration-test</phase>
						<configuration>
							<skip>${swtbot.tests.skip}</skip>
							<useUIHarness>true</useUIHarness>
							<useUIThread>false</useUIThread>
							<!-- tycho.testArgLine repeated to re-use the configuration for argLine 
								for jacoco agent -->
							<argLine>${tycho.testArgLine} ${swtbotTestsArgs}</argLine>
							<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
							<excludes>
								<exclude>**/org/eclipse/emf/parsley/tests/swtbot/*WizardsTest*.java</exclude>
								<exclude>**/org/eclipse/emf/parsley/tests/swtbot/*DslEditorTest*.java</exclude>
							</excludes>
							<includes>
								<include>**/org/eclipse/emf/parsley/tests/swtbot/*DropTest*.java</include>
							</includes>
							<!-- Disable GTK3 with Luna because it makes the test hang (bug in IcedTea 
								http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1736) -->
							<environmentVariables>
								<SWT_GTK3>0</SWT_GTK3>
							</environmentVariables>
						</configuration>
						<goals>
							<goal>test</goal>
						</goals>
					</execution>
					<execution>
						<id>PDEBasedTests</id>
						<phase>integration-test</phase>
						<!-- These tests required PDE and must pass -DbuildingWithTycho=true -->
						<configuration>
							<skip>${swtbot.tests.skip}</skip>
							<useUIHarness>true</useUIHarness>
							<useUIThread>false</useUIThread>
							<!-- tycho.testArgLine repeated to re-use the configuration for argLine 
								for jacoco agent -->
							<argLine>${tycho.testArgLine} ${pdeTestsArgs} ${swtbotTestsArgs}</argLine>
							<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
							<excludes>
								<exclude>**/org/eclipse/emf/parsley/tests/swtbot/*AbstractTest*.java</exclude>
							</excludes>
							<includes>
								<include>**/org/eclipse/emf/parsley/tests/swtbot/*DslEditorTest*.java</include>
								<include>**/org/eclipse/emf/parsley/tests/swtbot/*WizardsTest*.java</include>
							</includes>
							<environmentVariables>
								<SWT_GTK3>0</SWT_GTK3>
							</environmentVariables>
						</configuration>
						<goals>
							<goal>test</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<configuration>
					<dependency-resolution>
						<extraRequirements>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.emf.parsley.tests.swtbot.feature</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.rcp</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>