<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App 	= new App();
$Nav	= new Nav();
$Menu 	= new Menu();
include($App->getProjectCommon());

	$pageTitle 		= "SWTBot &ndash; UI Testing for SWT and Eclipse";

	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# Paste your HTML content between the ob_start/ob_end_clean markers!
	ob_start();
?>

	<div id="midcolumn">
		<h1>What is SWTBot?</h1>
		<p>SWTBot is an open-source Java based UI/functional testing tool for testing <a href="http://eclipse.org/swt">SWT</a> and <a href="http://eclipse.org">Eclipse</a> based applications.</p>

		<p>SWTBot provides APIs that are simple to read and write. The APIs also hide the complexities involved with SWT and Eclipse. This makes it suitable for UI/functional testing by everyone, not just developers. SWTBot also provides its own set of assertions that are useful for SWT. You can also use your own assertion framework with SWTBot.</p>

		<p>SWTBot integrates with Eclipse PDE, <a href="advanced/ant-integration.html">Ant</a> and <a href="http://eclipse.org/tycho">Tycho</a>, so it's easy to use in your IDE and Headless Builds (as part of a CI job for example).</p>

		<p>SWTBot can run on all platforms that SWT runs on. Very few other testing tools provide such a wide variety of platforms.</p>

		<p>Starting from version 2.1.0, SWTBot also provide a <a href="http://wiki.eclipse.org/SWTBot/Generator">Test Recorder and Generator</a> that you can use to generate your test case simply by recording the UI actions as an end-user would perform them. This is really helpful to get quickly a first sketch of your SWTBot scenario and reduce costs of writing tests.</p>

	</div>

<?php
$html = ob_get_contents();
ob_end_clean();

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
