<?php 
/*******************************************************************************
 * Copyright (c) 2010 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Wayne Beaton (Eclipse Foundation)- initial API and implementation
 *******************************************************************************/

require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
$App = new App();

require_once '../classes/SimultaneousReleaseInfo.class.php';
require_once '../classes/TestRunner.class.php';

class SimultaneousReleaseInfoTests extends TestCase {
	function testGetSimultaneousReleaseNames() {
		print_r(getSimultaneousReleaseNames());
	}
}

$App = new App();

$runner = new TestRunner("SimultaneousReleaseInfoTests");
$runner->run_tests();

?>