 -      acceptNextAlert = true;
 -    }
 -  }
--}
++
++	private static ChromeDriverService service;
++	private static WebDriver driver;
++	private static String baseUrl = null;
++	private WebElement element = null;
++	private static StringBuffer verificationErrors = new StringBuffer();
++	private Actions action = null;
++	private static Properties props = new Properties();
++
++	@BeforeClass(description = "Driver start and Server start which creates a service that manage the driver server.")
++	public static void StartDriver() throws IOException {
++		// load a properties file
++		props.loadFromXML(new FileInputStream(
++				"resources/AresTestSuite/AresConfig.xml"));
++		System.out.println(props.getProperty("AresConfig.xml file:"));
++		System.out.println("-> browserDriverPath -> "
++				+ props.getProperty("browserDriverPath"));
++		System.out.println("-> browserDriverName -> "
++				+ props.getProperty("browserDriverName"));
++		System.out.println("-> os -> " + props.getProperty("os"));
++		// TODO: review browser and platform testability
++		// IE on Windows only, Chrome tested on mac, FF tested using xml-scripts
++		if ((props.getProperty("browserDriverName").equals("IE"))) {
++			File file = new File(props.getProperty("browserDriverPath"));
++			System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
++			DesiredCapabilities capabilities = DesiredCapabilities
++					.internetExplorer();
++			capabilities
++					.setCapability(
++							InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
++							true);
++			driver = new InternetExplorerDriver(capabilities);
++
++		} else {
++			// createAndStartService
++			service = new ChromeDriverService.Builder()
++					.usingDriverExecutable(
++							new File(props.getProperty("browserDriverPath")))
++					.usingAnyFreePort().build();
++			service.start();
++			// createDriver
++			driver = new RemoteWebDriver(service.getUrl(),
++					DesiredCapabilities.chrome());
++		}
++
++		// Ares URL;
++		// http://127.0.0.1:9009/ide/ares/test.html?debug=true&norunner=true
++		baseUrl = "http://127.0.0.1:9009/";
++		driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
++		driver.get(baseUrl + "ide/ares/test.html?debug=true&norunner=true");
++		try {
++			assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
++					.matches("^[\\s\\S]*Ares[\\s\\S]*$"));
++		} catch (Error e) {
++			verificationErrors.append(e.toString());
++		}
++		assertEquals("Ares", driver.getTitle());
++	}
++
++	@AfterClass(description = "Driver quit and Server stop")
++	public static void StopDriver() throws InterruptedException {
++		driver.quit();
++		String verificationErrorString = verificationErrors.toString();
++		if (!"".equals(verificationErrorString)) {
++			fail(verificationErrorString);
++		}
++		if (props.getProperty("os").equals("mac")) {
++			service.stop();
++		}
++	}
++
++	@Test(description = "Test all File Operations like New Folder, New File, Rename, Copy and Delete")
++	public void testFileOps() throws InterruptedException {
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_projectList_importProjectButton | ]]
++		if ((element = getObject(".//*[@id='ares_projectView_projectList_importProjectButton']")) != null) {
++			element.click();
++			try {
++				assertTrue(driver
++						.findElement(By.cssSelector("BODY"))
++						.getText()
++						.matches(
++								"^[\\s\\S]*Ares Test - Home Directory[\\s\\S]*$"));
++			} catch (Error e) {
++				verificationErrors.append(e.toString());
++			}
++			Thread.sleep(1000);
++		}
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_projectWizardScan_providerList_item | ]]
++		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_providerList_item']")) != null) {
++			element.click();
++			for (int second = 0;; second++) {
++				if (second >= 60)
++					fail("timeout");
++				try {
++					if ("root"
++							.equals(driver
++									.findElement(
++											By.id("ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption"))
++									.getText()))
++						break;
++				} catch (Exception e) {
++				}
++				Thread.sleep(1000);
++			}
++
++			assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
++					.matches("^[\\s\\S]*root[\\s\\S]*$"));
++			assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
++					.matches("^[\\s\\S]*FileOps[\\s\\S]*$"));
++		}
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_projectWizardScan_hermesFileTree_serverNode_$FileOps_caption
++		// | ]]
++		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_$FileOps_caption']")) != null) {
++			element.click();
++			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++			// id=ares_projectView_projectWizardScan_confirm | ]]
++			if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_confirm']")) != null) {
++				element.click();
++				for (int second = 0;; second++) {
++					if (second >= 60)
++						fail("timeout");
++					try {
++						if ("FileOps"
++								.equals(driver
++										.findElement(
++												By.id("ares_projectView_projectList_projectList_ownerProxy_item"))
++										.getText()))
++							break;
++					} catch (Exception e) {
++					}
++					Thread.sleep(1000);
++				}
++			}
++
++			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++			// id=ares_projectView_projectList_projectList_ownerProxy_item |
++			// FileOps]]
++			if ((element = getObject(".//*[@id='ares_projectView_projectList_projectList_ownerProxy_item']")) != null) {
++				element.click();
++				for (int second = 0;; second++) {
++					if (second >= 60)
++						fail("timeout");
++					try {
++						if ("FileOps"
++								.equals(driver
++										.findElement(
++												By.id("ares_projectView_harmonia_hermesFileTree_serverNode_caption"))
++										.getText()))
++							break;
++					} catch (Exception e) {
++					}
++					Thread.sleep(1000);
++				}
++			}
++
++		}
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_harmonia_hermesFileTree_serverNode_caption |
++		// FileOps]]
++		if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_caption']")) != null) {
++			element.click();
++			for (int second = 0;; second++) {
++				if (second >= 60)
++					fail("timeout");
++				try {
++					if ("".equals(driver
++							.findElement(
++									By.id("ares_projectView_harmonia_hermesFileTree_newFolderButton"))
++							.getText()))
++						break;
++				} catch (Exception e) {
++				}
++				Thread.sleep(1000);
++			}
++		}
++
++		if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_caption']")) != null) {
++			element.click();
++
++			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++			// id=ares_projectView_harmonia_hermesFileTree_newFolderButton | ]]
++			if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_newFolderButton']")) != null) {
++				element.click();
++				for (int second = 0;; second++) {
++					if (second >= 60)
++						fail("timeout");
++					try {
++						if ("".equals(driver
++								.findElement(
++										By.id("ares_projectView_harmonia_hermesFileTree_nameFolderPopup_fileName"))
++								.getText()))
++							break;
++					} catch (Exception e) {
++					}
++					Thread.sleep(1000);
++				}
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_nameFolderPopup_fileName"))
++						.clear();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_nameFolderPopup_fileName"))
++						.sendKeys("Source");
++				// ERROR: Caught exception [ERROR: Unsupported command [keyPress
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_nameFolderPopup_fileName
++				// | e]]
++				// ERROR: Caught exception [ERROR: Unsupported command [keyUp |
++				// id=ares_projectView_harmonia_hermesFileTree_nameFolderPopup_fileName
++				// | e]]
++				action = new Actions(driver);
++				if (props.getProperty("os").equals("windows")) {
++					action.keyDown(Keys.CONTROL).keyUp(Keys.CONTROL).perform();
++				} else {
++					action.keyDown(Keys.CONTROL).sendKeys("e")
++							.keyUp(Keys.CONTROL).perform();
++				}
++				// ERROR: Caught exception [ERROR: Unsupported command [clickAt
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_nameFolderPopup_confirmButton
++				// | ]]
++				if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_nameFolderPopup_confirmButton']")) != null) {
++					element.click();
++					try {
++						assertTrue(isElementPresent(By
++								.id("ares_projectView_harmonia_hermesFileTree_serverNode_$Source_caption")));
++					} catch (Error e) {
++						verificationErrors.append(e.toString());
++					}
++				}
++			}
++		}
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_harmonia_hermesFileTree_serverNode_$Source_caption
++		// | Source]]
++		if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_$Source_caption']")) != null) {
++			element.click();
++			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++			// ares_projectView_harmonia_hermesFileTree_deleteFileButton | ]]
++			if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_deleteFileButton']")) != null) {
++				element.click();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_deletePopup_deleteDeleteButton"))
++						.click();
++			}
++		}
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_harmonia_hermesFileTree_serverNode_caption | ]]
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_harmonia_hermesFileTree_newFileButton | ]]
++		// WA: need to refresh somehow the hermeFileTree
++		if ((element = getObject(".//*[@id='ares_projectView_projectList_projectList_ownerProxy_item']")) != null) {
++			element.click();
++			for (int second = 0;; second++) {
++				if (second >= 60)
++					fail("timeout");
++				try {
++					if ("FileOps"
++							.equals(driver
++									.findElement(
++											By.id("ares_projectView_harmonia_hermesFileTree_serverNode_caption"))
++									.getText()))
++						break;
++				} catch (Exception e) {
++				}
++				Thread.sleep(1000);
++			}
++
++			if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_caption']")) != null) {
++				Thread.sleep(1000);
++				element.click();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_newFileButton"))
++						.click();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_nameFilePopup_fileName"))
++						.clear();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_nameFilePopup_fileName"))
++						.sendKeys("App3.js");
++				// ERROR: Caught exception [ERROR: Unsupported command [keyPress
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_nameFilePopup_fileName
++				// | s]]
++				// ERROR: Caught exception [ERROR: Unsupported command [keyUp |
++				// id=ares_projectView_harmonia_hermesFileTree_nameFilePopup_fileName
++				// | s]]
++				action = new Actions(driver);
++				if (props.getProperty("os").equals("windows")) {
++					action.keyDown(Keys.CONTROL).keyUp(Keys.CONTROL).perform();
++				} else {
++					action.keyDown(Keys.CONTROL).sendKeys("s")
++							.keyUp(Keys.CONTROL).perform();
++				}
++				// ERROR: Caught exception [ERROR: Unsupported command [clickAt
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_nameFilePopup_confirmButton
++				// | ]]
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_nameFilePopup_confirmButton"))
++						.click();
++			}
++		}
++
++		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++		// id=ares_projectView_harmonia_hermesFileTree_serverNode_caption | ]]
++		if ((element = getObject(".//*[@id='ares_projectView_projectList_projectList_ownerProxy_item']")) != null) {
++			element.click();
++			for (int second = 0;; second++) {
++				if (second >= 60)
++					fail("timeout");
++				try {
++					if ("FileOps"
++							.equals(driver
++									.findElement(
++											By.id("ares_projectView_harmonia_hermesFileTree_serverNode_caption"))
++									.getText()))
++						break;
++				} catch (Exception e) {
++				}
++				Thread.sleep(1000);
++			}
++
++			if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_caption']")) != null) {
++				element.click();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_serverNode_$App1.js_caption"))
++						.click();
++				// ERROR: Caught exception [ERROR: Unsupported command [clickAt
++				// | id=ares_projectView_harmonia_hermesFileTree_copyFileButton
++				// | ]]
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_copyFileButton"))
++						.click();
++				// ERROR: Caught exception [ERROR: Unsupported command [keyPress
++				// | id=ares_projectView_harmonia_hermesFileTree_copyFileButton
++				// | s]]
++				// ERROR: Caught exception [ERROR: Unsupported command [keyUp |
++				// id=ares_projectView_harmonia_hermesFileTree_copyFileButton |
++				// s]]
++				action = new Actions(driver);
++				if (props.getProperty("os").equals("windows")) {
++					action.keyDown(Keys.CONTROL).keyUp(Keys.CONTROL).perform();
++				} else {
++					action.keyDown(Keys.CONTROL).sendKeys("s")
++							.keyUp(Keys.CONTROL).perform();
++				}
++				// ERROR: Caught exception [ERROR: Unsupported command [clickAt
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_nameCopyPopup_confirmButton
++				// | ]]
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_nameCopyPopup_confirmButton"))
++						.click();
++			}
++
++			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
++			// id=ares_projectView_harmonia_hermesFileTree_serverNode_$Copy of
++			// App1.js_caption | ]]
++			if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_$Copy of App1.js_caption']")) != null) {
++				element.click();
++				// ERROR: Caught exception [ERROR: Unsupported command [clickAt
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_renameFileButton
++				// | ]]
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_renameFileButton"))
++						.click();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_renamePopup_fileName"))
++						.clear();
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_renamePopup_fileName"))
++						.sendKeys("App4.js");
++				// ERROR: Caught exception [ERROR: Unsupported command [keyPress
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_renamePopup_fileName
++				// | s]]
++				// ERROR: Caught exception [ERROR: Unsupported command [keyUp |
++				// id=ares_projectView_harmonia_hermesFileTree_renamePopup_fileName
++				// | s]]
++				action = new Actions(driver);
++				if (props.getProperty("os").equals("windows")) {
++					action.keyDown(Keys.CONTROL).keyUp(Keys.CONTROL).perform();
++				} else {
++					action.keyDown(Keys.CONTROL).sendKeys("s")
++							.keyUp(Keys.CONTROL).perform();
++				}
++				// ERROR: Caught exception [ERROR: Unsupported command [clickAt
++				// |
++				// id=ares_projectView_harmonia_hermesFileTree_renamePopup_confirmButton
++				// | ]]
++				driver.findElement(
++						By.id("ares_projectView_harmonia_hermesFileTree_renamePopup_confirmButton"))
++						.click();
++			}
++		}
++	}
++
++	private boolean isElementPresent(By by) {
++		try {
++			driver.findElement(by);
++			return true;
++		} catch (NoSuchElementException e) {
++			System.out.println("No Such Element:" + by);
++			return false;
++		}
++	}
++
++	public WebElement getObject(String xpathKey) {
++		WebElement elt = null;
++		try {
++			elt = driver.findElement(By.xpath(xpathKey));
++			return elt;
++		} catch (Throwable t) {
++			System.out.println("Cannot find object with key--" + xpathKey);
++			return null;
++		}
++	}
+ }
 diff -Naur -x '.*' -x '*.sha1' -x '*.md5' java-ref/HelloWorldPhoneGapSettings.java java-modif/HelloWorldPhoneGapSettings.java
 --- java-ref/HelloWorldPhoneGapSettings.java	2013-04-05 17:09:22.000000000 +0200
-+++ java-modif/HelloWorldPhoneGapSettings.java	1970-01-01 01:00:00.000000000 +0100
-@@ -1,97 +0,0 @@
++++ java-modif/HelloWorldPhoneGapSettings.java	2013-04-08 13:52:01.000000000 +0200
+@@ -1,97 +1,298 @@
 -package com.example.tests;
--
++package AresTestSuite;
+ 
 -import java.util.regex.Pattern;
--import java.util.concurrent.TimeUnit;
++import static org.junit.Assert.assertEquals;
++import static org.junit.Assert.assertTrue;
++import static org.junit.Assert.fail;
++
++import java.io.File;
++import java.io.FileInputStream;
++import java.io.IOException;
++import java.util.Properties;
+ import java.util.concurrent.TimeUnit;
 -import org.junit.*;
 -import static org.junit.Assert.*;
 -import static org.hamcrest.CoreMatchers.*;
 -import org.openqa.selenium.*;
 -import org.openqa.selenium.firefox.FirefoxDriver;
 -import org.openqa.selenium.support.ui.Select;
--
--public class HelloWorldPhoneGapSettings {
++
++import org.openqa.selenium.By;
++import org.openqa.selenium.Keys;
++import org.openqa.selenium.WebDriver;
++import org.openqa.selenium.WebElement;
++import org.openqa.selenium.chrome.ChromeDriverService;
++import org.openqa.selenium.ie.InternetExplorerDriver;
++import org.openqa.selenium.interactions.Actions;
++import org.openqa.selenium.remote.DesiredCapabilities;
++import org.openqa.selenium.remote.RemoteWebDriver;
++import org.testng.annotations.AfterClass;
++import org.testng.annotations.BeforeClass;
++import org.testng.annotations.Test;
+ 
+ public class HelloWorldPhoneGapSettings {
 -  private WebDriver driver;
 -  private String baseUrl;
 -  private boolean acceptNextAlert = true;

-      acceptNextAlert = true;
-    }
-  }
-}
diff -Naur -x '.*' -x '*.sha1' -x '*.md5' java-ref/PhobosEditorSettings.java java-modif/PhobosEditorSettings.java
--- java-ref/PhobosEditorSettings.java	2013-04-05 17:15:13.000000000 +0200
+++ java-modif/PhobosEditorSettings.java	1970-01-01 01:00:00.000000000 +0100
@@ -1,108 +0,0 @@
-package com.example.tests;
-
-import java.util.regex.Pattern;
-import java.util.concurrent.TimeUnit;
-import org.junit.*;
-import static org.junit.Assert.*;
-import static org.hamcrest.CoreMatchers.*;
-import org.openqa.selenium.*;
-import org.openqa.selenium.firefox.FirefoxDriver;
-import org.openqa.selenium.support.ui.Select;
-
-public class PhobosEditorSettings {
-  private WebDriver driver;
-  private String baseUrl;
-  private boolean acceptNextAlert = true;

-      acceptNextAlert = true;
-    }
-  }
+	private static ChromeDriverService service;
+	private static WebDriver driver;
+	private static String baseUrl = null;
+	private WebElement element = null;
+	private static StringBuffer verificationErrors = new StringBuffer();
+	private Actions action = null;
+	private static Properties props = new Properties();
+
+	@BeforeClass(description = "Driver start and Server start which creates a service that manage the driver server.")
+	public static void StartDriver() throws FileNotFoundException, IOException {
+		// load a properties file
+		props.loadFromXML(new FileInputStream(
+				"resources/AresTestSuite/AresConfig.xml"));
+		System.out.println(props.getProperty("AresConfig.xml file:"));
+		System.out.println("-> browserDriverPath -> "
+				+ props.getProperty("browserDriverPath"));
+		System.out.println("-> browserDriverName -> "
+				+ props.getProperty("browserDriverName"));
+		System.out.println("-> os -> " + props.getProperty("os"));
+		// TODO: review browser and platform testability
+		// IE on Windows only, Chrome tested on mac, FF tested using xml-scripts
+		if ((props.getProperty("browserDriverName").equals("IE"))) {
+			File file = new File(props.getProperty("browserDriverPath"));
+			System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
+			DesiredCapabilities capabilities = DesiredCapabilities
+					.internetExplorer();
+			capabilities
+					.setCapability(
+							InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
+							true);
+			driver = new InternetExplorerDriver(capabilities);
+
+		} else {
+			// createAndStartService
+			service = new ChromeDriverService.Builder()
+					.usingDriverExecutable(
+							new File(props.getProperty("browserDriverPath")))
+					.usingAnyFreePort().build();
+			service.start();
+			// createDriver
+			driver = new RemoteWebDriver(service.getUrl(),
+					DesiredCapabilities.chrome());
+		}
+	}
+
+	@AfterClass(description = "Driver quit and Server stop")
+	public static void StopDriver() throws InterruptedException {
+		driver.quit();
+		String verificationErrorString = verificationErrors.toString();
+		if (!"".equals(verificationErrorString)) {
+			fail(verificationErrorString);
+		}
+		if (props.getProperty("os").equals("mac")) {
+			service.stop();
+		}
+	}
+
+	@Test(description = "Get Ares URL; http://127.0.0.1:9009/ide/ares/test.html?debug=true&norunner=true")
+	public static void testGetAresUrl() throws IOException {
+		baseUrl = "http://127.0.0.1:9009/";
+		driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+		driver.get(baseUrl + "ide/ares/test.html?debug=true&norunner=true");
+		try {
+			assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
+					.matches("^[\\s\\S]*Ares[\\s\\S]*$"));
+		} catch (Error e) {
+			verificationErrors.append(e.toString());
+		}
+		assertEquals("Ares", driver.getTitle());
+	}
+
+	@Test(description = "Select a file from the `helloWorld` under hermesFileTree, Switch from hermesFileTree to Phobos and verify that phobos document label contains the filename selected.")
+	public void testSwitchFromHarmoniaToPhobos() throws Exception {
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_projectView_projectList_importProjectButton | ]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectList_importProjectButton']")) != null) {
+			element.click();
+			try {
+				// Assert Text is Present - Ares Test - Home Directory
+				assertTrue(driver
+						.findElement(By.cssSelector("BODY"))
+						.getText()
+						.matches(
+								"^[\\s\\S]*Ares Test - Home Directory[\\s\\S]*$"));
+			} catch (Error e) {
+				verificationErrors.append(e.toString());
+			}
+			Thread.sleep(1000);
+		}
+
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_projectView_projectWizardScan_providerList_item | Ares Test -
+		// Home Directory]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_providerList_item']")) != null) {
+			element.click();
+			for (int second = 0;; second++) {
+				if (second >= 60)
+					fail("timeout");
+				try {
+					if ("root"
+							.equals(driver
+									.findElement(
+											By.id("ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption"))
+									.getText()))
+						break;
+				} catch (Exception e) {
+				}
+				Thread.sleep(1000);
+			}
+		}
+
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption
+		// | root]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption']")) != null) {
+			element.click();
+			getObject(
+					".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption']")
+					.getAttribute("root");
+			getObject(
+					".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption']")
+					.click();
+			try {
+				assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
+						.matches("^[\\s\\S]*HelloWorld[\\s\\S]*$"));
+			} catch (Error e) {
+				verificationErrors.append(e.toString());
+			}
+			Thread.sleep(1000);
+		}
+
+		
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption
+		// | ]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption']")) != null) {
+			element.click();
+			getObject(
+					".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption']")
+					.getAttribute("root");
+			getObject(
+					".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_caption']")
+					.click();
+			try {
+				assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
+						.matches("^[\\s\\S]*HelloWorld[\\s\\S]*$"));
+			} catch (Error e) {
+				verificationErrors.append(e.toString());
+			}
+			Thread.sleep(1000);
+		}
+		
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// ares_projectView_projectWizardScan_hermesFileTree_serverNode_$HelloWorld_caption
+		// | HelloWorld]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_hermesFileTree_serverNode_$HelloWorld_caption']")) != null) {
+			element.click();
+			for (int second = 0;; second++) {
+				if (second >= 60)
+					fail("timeout");
+				try {
+					if ("OK".equals(driver
+							.findElement(
+									By.id("ares_projectView_projectWizardScan_confirm"))
+							.getText()))
+						break;
+				} catch (Exception e) {
+				}
+				Thread.sleep(1000);
+			}
+		}
+
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_projectView_projectWizardScan_confirm | OK]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectWizardScan_confirm']")) != null) {
+			element.click();
+			for (int second = 0;; second++) {
+				if (second >= 60)
+					fail("timeout");
+				try {
+					if ("HelloWorld"
+							.equals(driver
+									.findElement(
+											By.id("ares_projectView_projectList_projectList_ownerProxy_item"))
+									.getText()))
+						break;
+				} catch (Exception e) {
+				}
+				Thread.sleep(1000);
+			}
+		}
+
+		assertTrue(isElementPresent(By.id("ares_projectView_projectList")));
+		
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_projectView_projectList_projectList_ownerProxy_item | ]]
+		if ((element = getObject(".//*[@id='ares_projectView_projectList_projectList_ownerProxy_item']")) != null) {
+			element.click();
+			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+			// id=ares_projectView_harmonia_hermesFileTree_serverNode_$source_caption
+			// | ]]
+			if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_$source_caption']")) != null) {
+				if (props.getProperty("browserDriverName").equals("Chrome")) {
+					// Issue 2766:	https://code.google.com/p/selenium/issues/detail?id=2766; Chrome - Element is not clickable at point
+					// with Chrome...clicking the element works fine in firefox but not in Chrome...
+					// WA: scroll the element into view before clicking it
+					((JavascriptExecutor) driver).executeScript("window.scrollTo(0,"+element.getLocation().y+")");
+				}
+				element.click();
+				Thread.sleep(1000);
+				// ERROR: Caught exception [ERROR: Unsupported command [doubleClick |
+				// id=ares_projectView_harmonia_hermesFileTree_serverNode_$source_$App.js_caption
+				// | ]]
+				driver.findElement(
+						By.id("ares_projectView_harmonia_hermesFileTree_serverNode_$source_$App.js_caption"))
+						.click();
+			}
+		}
+	
+		Thread.sleep(1000);
+		if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_$source_$App.js_caption']")) != null) {
+			element.click();
+			// ERROR: Caught exception [ERROR: Unsupported command [doubleClick
+			// |
+			// id=ares_projectView_harmonia_hermesFileTree_serverNode_$source_$App.js_caption
+			// | ]]
+			action = new Actions(driver);
+			action.doubleClick(element);
+			action.perform();
+			try {
+				assertTrue(isElementPresent(By.cssSelector("div.ace_content")));
+				System.out.println("ares_phobos_document_label replace by ares_phobos_button");
+				// old assertion: assertText | id=ares_phobos_documentLabel | App.js
+				assertEquals("File", 
+						driver.findElement(By.id("ares_phobos_button"))
+							.getText());
+			} catch (Error e) {
+				verificationErrors.append(e.toString());
+			}
+		}
+	}
+	
+	private boolean isElementPresent(By by) {
+		try {
+			driver.findElement(by);
+			return true;
+		} catch (NoSuchElementException e) {
+			return false;
+		}
+	}
+
+	public WebElement getObject(String xpathKey) {
+		WebElement elt = null;
+		try {
+			elt = driver.findElement(By.xpath(xpathKey));
+			System.out.println(elt);
+			return elt;
+		} catch (Throwable t) {
+			System.out.println("Cannot find object with key--" + xpathKey);
+			return null;
+		}
+	}
 }
diff -Naur -x '.*' -x '*.sha1' -x '*.md5' java-ref/PhobosNewKind.java java-modif/PhobosNewKind.java
--- java-ref/PhobosNewKind.java	2013-04-05 17:15:47.000000000 +0200
+++ java-modif/PhobosNewKind.java	2013-04-08 13:52:01.000000000 +0200
@@ -1,84 +1,305 @@
-package com.example.tests;
+package AresTestSuite;
 
-import java.util.regex.Pattern;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.NoSuchElementException;
+import java.util.Properties;
 import java.util.concurrent.TimeUnit;
-import org.junit.*;
-import static org.junit.Assert.*;
-import static org.hamcrest.CoreMatchers.*;
-import org.openqa.selenium.*;
-import org.openqa.selenium.firefox.FirefoxDriver;
-import org.openqa.selenium.support.ui.Select;
+
+import org.openqa.selenium.By;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.chrome.ChromeDriverService;
+import org.openqa.selenium.ie.InternetExplorerDriver;
+import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.remote.DesiredCapabilities;
+import org.openqa.selenium.remote.RemoteWebDriver;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
 
 public class PhobosNewKind {
-  private WebDriver driver;
-  private String baseUrl;
-  private boolean acceptNextAlert = true;
