<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2014 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Paul Webster - initial implementation
     Lars Vogel <Lars.Vogel@vogella.com> - Bug 443765, 443766
-->
<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>
    <groupId>eclipse.platform.ui</groupId>
    <artifactId>eclipse.platform.ui</artifactId>
    <version>4.24.0-SNAPSHOT</version>
  </parent>
  <artifactId>eclipse.platform.ui.tests</artifactId>
  <packaging>pom</packaging>

  <modules>
    <!--

    <module>org.eclipse.e4.ui.compatibility.tests</module>
    <module>org.eclipse.e4.ui.keybinding.tests</module>
    <module>org.eclipse.e4.ui.menu.tests</module>
    <module>org.eclipse.e4.ui.menu.tests.debug</module>
    <module>org.eclipse.e4.ui.menu.tests.p1</module>
    <module>org.eclipse.e4.ui.menu.tests.p2</module>
    <module>org.eclipse.e4.ui.menu.tests.p3</module>
    <module>org.eclipse.e4.ui.menu.tests.p4</module>
    <module>org.eclipse.ui.tests.browser</module>
    -->
    <module>org.eclipse.e4.emf.xpath.test</module>
    <module>org.eclipse.jface.tests</module>
    <module>org.eclipse.jface.tests.databinding</module>
    <module>org.eclipse.jface.tests.databinding.conformance</module>
    <module>org.eclipse.jface.tests.notifications</module>
    <module>org.eclipse.ui.monitoring.tests</module>
    <module>org.eclipse.ui.tests</module>
    <module>org.eclipse.ui.tests.forms</module>
    <module>org.eclipse.ui.tests.harness</module>
    <module>org.eclipse.ui.tests.navigator</module>
    <module>org.eclipse.ui.tests.pluginchecks</module>
    <module>org.eclipse.ui.tests.performance</module>
    <module>org.eclipse.ui.tests.rcp</module>
    <module>org.eclipse.ui.tests.views.properties.tabbed</module>
    <module>org.eclipse.ui.ide.application.tests</module>
    <module>org.eclipse.e4.ui.bindings.tests</module>
    <module>org.eclipse.e4.core.commands.tests</module>
    <module>org.eclipse.e4.ui.tests</module>
    <module>org.eclipse.e4.ui.tests.css.core</module>
    <module>org.eclipse.e4.ui.tests.css.swt</module>
    <module>org.eclipse.e4.ui.workbench.addons.swt.test</module>
    <module>org.eclipse.tests.urischeme</module>
  </modules>
  <properties>
    <code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
  </properties>

   <build>
  	<pluginManagement>
  		<plugins>
  			<plugin>
	  			<groupId>org.eclipse.tycho</groupId>
	  			<artifactId>tycho-surefire-plugin</artifactId>
	  			<version>${tycho.version}</version>
	  			<configuration>
	  				<useUIHarness>true</useUIHarness>
	  				<useUIThread>true</useUIThread>
	  				<dependencies>
	  					<dependency>
	  						<type>eclipse-plugin</type>
	  						<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
	  						<version>0.0.0</version>
	  					</dependency>
	  				</dependencies>
  				</configuration>
  			</plugin>
  		</plugins>
  	</pluginManagement>
  </build>
</project>
