<?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.10.0-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>
				<configuration>
					<!-- TODO remove with tycho 1.3 -->
					<bundleStartLevel>
						<bundle>
							<id>org.apache.felix.scr</id>
							<level>1</level>
							<autoStart>true</autoStart>
						</bundle>
					</bundleStartLevel>
				</configuration>
			</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>