<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>
  <!-- Set artifact id according to a RCPTT project name  -->
  <artifactId>productTests</artifactId>
  <!-- Set group id based on application under test name -->
  <groupId>projectName</groupId>
  <version>1.5.5-SNAPSHOT</version>
  <!-- RCPTT Maven Plugin provides this packaging type -->
  <packaging>rcpttTest</packaging>

  <!-- RCPTT Maven Plugin and RCPTT Runner are hosted in this repository -->
  <pluginRepositories>
    <pluginRepository>
      <id>xored</id>
        <name>Xored Maven repository</name>
      <url>http://maven.xored.com/nexus/content/repositories/ci4rcptt-releases/</url>
    </pluginRepository>
  </pluginRepositories>

  <!-- 
       If RCPTT tests are planned to be run on an update site, 
       RCPTT Maven Plugin can download Eclipse SDK of required version
       for current platform from repository below (to see 
       an up-to-date list of available versions visit this link:
       http://maven.xored.com/nexus/content/repositories/ci4rcptt-releases/org/eclipse/sdk/
  -->
  <properties>
    <ci4rcptt-maven-version>1.5.5</ci4rcptt-maven-version>
  </properties>

  <!-- The main part of RCPTT Maven plugin -->
  <build>
    <plugins>
      <plugin>
        <groupId>com.xored.ci4rcptt</groupId>
        <artifactId>ci4rcptt-maven-plugin</artifactId>
        <version>${ci4rcptt-maven-version}</version>
        <extensions>true</extensions>
        <configuration>

          <!-- This element describes where to get an AUT to run tests -->
          <aut>
            <!-- There are several ways to specify AUT location,
                 Uncomment an element corresponding to a most suitable way
            -->

            <!-- Use AUT from current build results. [classifier] will be
            automatically replaced according to the current platform -->
            <!--
            <explicit>${project.basedir}/../product/target/products/org.eclipse.ui.examples.rcp.browser.product-[classifier].zip</explicit>
            -->

            <!-- Or specify a path to AUT folder -->
            <!--
            <explicit>/Users/RCPTTuser/path/to/aut</explicit>
            -->

            <!-- As well AUT can be downloaded from HTTP -->
            <!--
            <explicit>http://server/path/aut-archive.zip</explicit>
            -->
            
            <!-- AUT can be downloaded automatically from Maven repository -->
            <!-- 
            <groupId>com.company.product</groupId>
            <artifactId>com.company.product.rcp</artifactId>
            <version>3.7.2</version>
            -->

            <!-- AUT Artifact classifier is based on a current platform:
                 Windows 32bit: win32.win32.x86
                 Windows 64bit: win32.win32.x86_64
                 Linux 32bit: linux.gtk.x86
                 Linux 64bit: linux.gtk.x86_64
                 Mac OS X 64bit: macosx.coca.x86_64
            -->

            <!-- Optionally it is possible to specify extra features to 
                 be installed into AUT, this is useful when RCPTT tests
                 need to be executed using a repository assembled as 
                 part of current Maven build.

                 Inside an 'injection element it is possible to specify a list of 
                 features/plugins to install, if nothing is set, all available
                 features will be installed.
                 feature.group suffix is required by p2,
                 otherwise it searches for a plugin with given id

                 Currently RCPTT Runner does not install requirements automatically,
                 so the full list of features to install must be explicitly set
            -->


                 
            <injections>
              <!-- This injection will include all available features from
                   repository assembled during current build -->
              <!--
              <injection>
                <site>${project.baseUri}../../../repository/target/repository</site>
              </injection>
              -->

              <!-- This injection will install a single feature from indigo -->
              <!-- 
              <injection>
                <site>http://download.eclipse.org/releases/indigo/</site>
                <features>
                  <feature>org.eclipse.emf.transaction.feature.group</feature>
                </features>
              </injection>
              -->
            </injections>

           <!-- additional AUT args (besides taken in its ini-file) can be set 
                Use one argument per <arg> element -->
           <!-- 
            <args>
              <arg>-ws</arg>
              <arg>$${target.ws}</arg>
            </args>
            -->
           <!-- optional VM args can be set too -->
           <!--
		   <vmArgs>
			 <vmArg>-Xmx768m</vmArg>
			 <vmArg>-XX:MaxPermSize=256m</vmArg>
		   </vmArgs>
           -->
           
           <!-- By default AUT's workspace is recreated each time AUT hangs and is 
               forcefully restarted. This is done to prevent workspace corruption from 
               blocking AUT startup (after test failures). If this is undesirable, use 
               reuseExistingWorkspace option:
           -->
           <!--
           <skipTags>
	         <reuseExistingWorkspace>true</reuseExistingWorkspace>
           </skipTags>
          -->           
           
          </aut>

          <runner>
            <!-- RCPTT Runner location can be set using the same methods 
                 as AUT location:
            -->
            <!--
            <explicit>/path/to/rcptt/runner</explicit>
            -->
            
            <!-- but the most convenient way is to just set its version,
                 RCPTT maven plugin will automatically set right groupId and
                 artifact ID and will download RCPTT Runner from Xored Maven Repo -->
            <version>${ci4rcptt-maven-version}</version>
            
            <!--
            	clientId is user or organization name to charge executions
            	clientSecret can be retrieved at http://rcptt.xored.com/settings/balance 
            -->
            <clientId>userOrOrganization</clientId> 
            <clientSecret>secret hash string</clientSecret>            
          </runner>

          <!-- Test options for RCPTT Runner, most popular options listed here.
               Full list of options is available at:
               https://ci.xored.com/doc/runner/
          -->
          <testOptions>
            <!-- Timeout for all tests, in seconds -->
            <execTimeout>3600</execTimeout>
            <!-- Timeout for a single test case, in seconds -->
            <testExecTimeout>300</testExecTimeout>

            <!-- When set to true, in case of test failure
                 AUT will be restarted. This significantly
                 slows down execution, but may be useful 
                 for some test suites -->
            <!--
            <restartAUTOnFailure>true</restartAUTOnFailure>
            -->
          </testOptions>

          <!-- By default RCPTT Runner runs tests from a project directory,
               but in some cases it might be required to import additional 
               projects into runner's workspace -->
          <!--
          <projects>
            <project>${project.basedir}/../project</project>
          </projects>
          -->

          <!-- By default RCPTT Runner runs all tests from workspace,
               but it is possible to pass test suite names, so it
               will execute only test suites from given project. -->

          <!--
		  <suites>
			<suite>FastSanityCheckTestSuite</suite>
		  </suites>
          -->

          <!-- Sometimes it might be useful to skip a test case
               (for instance because of some unresolved bug). RCPTT
               can skip tests based on its tags. By default RCPTT skips
               tests with tag 'skipExecution' (this value has been 
               chosen because on one hand it is descriptive enough,
               on another hand it is unlikely that this tag name
               will collide with some user's tag)
               -->
          <!--
          <skipTags>
            <skipTag>linuxOnly</skipTag>
          </skipTags>
          -->

          <!-- By default RCPTT generates a single HTML report file with
               all tests, but it is possible to generate one file per
               test -->
          <!--
          <splitHtmlReport>true</splitHtmlReport>
          -->
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
