<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2005, 2019 SAP SE
   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License 2.0
   which accompanies this distribution, and is available at
   https://www.eclipse.org/legal/epl-2.0/

   SPDX-License-Identifier: EPL-2.0
-->
<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.eclipse.graphiti</groupId>
		<artifactId>parent</artifactId>
		<version>0.19.0-SNAPSHOT</version>
		<relativePath>../../parent</relativePath>
	</parent>

	<name>SWTBot UI Tests</name>
	<artifactId>org.eclipse.graphiti.bot.tests</artifactId>
	<packaging>eclipse-test-plugin</packaging>

	<properties>
		<ui.test.vmargs>-Xmx512m -XX:MaxPermSize=256m</ui.test.vmargs>
	</properties>

	<profiles>
		<profile>
			<id>skip-ui-tests</id>
			<activation>
				<property>
					<name>skip-ui-tests</name>
				</property>
			</activation>
			<properties>
				<maven.test.skip>true</maven.test.skip>
			</properties>
		</profile>
	</profiles>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<dependency-resolution>
						<extraRequirements>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.sdk</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.graphiti.sdk.plus.feature</id>
								<versionRange>0.19.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.graphiti.feature.examples</id>
								<versionRange>0.19.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.graphiti.feature.tools</id>
								<versionRange>0.19.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<testSuite>org.eclipse.graphiti.bot.tests</testSuite>
					<testClass>org.eclipse.graphiti.bot.tests.GFTestSuite</testClass>
					<useUIHarness>true</useUIHarness>
					<!-- Set UIThread to true for UI Tests that do not use SWTBot -->
					<useUIThread>false</useUIThread>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>