 -    // Warning: assertTextPresent may require manual changes
 -    assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*25[\\s\\S]*$"));
 -    // Warning: assertTextPresent may require manual changes
--    assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*App\\.js\nSaveNew Kind\nEditor SettingsDesigner[\\s\\S]*$"));
--    assertEquals("App.js", driver.findElement(By.id("ares_phobos_documentLabel")).getText());
+-    assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*File\nNew Kind\nEditor SettingsDesigner[\\s\\S]*$"));
 -    // ERROR: Caught exception [ERROR: Unsupported command [clickAt | id=ares_phobos_newKindButton | ]]
 -    // Warning: assertTextPresent may require manual changes
 -    assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*31[\\s\\S]*$"));

-      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 = "Test the Phobs Editor Settings")
+	public void testPhobosEditorSettings() throws Exception {
+		System.out.println("import HelloWorld project");
+		// 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) {
+				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);
+		// ERROR: Caught exception [ERROR: Unsupported command [doubleClick
+		// |
+		// id=ares_projectView_harmonia_hermesFileTree_serverNode_$source_$App.js_caption
+		// | ]]
+		if ((element = getObject(".//*[@id='ares_projectView_harmonia_hermesFileTree_serverNode_$source_$App.js_caption']")) != null) {
+			element.click();
+			action = new Actions(driver);
+			action.doubleClick(element);
+			action.perform();
+			assertTrue(isElementPresent(By.cssSelector("div.ace_content")));
+			for (int second = 0;; second++) {
+				if (second >= 60)
+					fail("timeout");
+				try {
+					if ("Editor Settings".equals(driver.findElement(
+							By.id("ares_phobos_editorButton")).getText()))
+						break;
+				} catch (Exception e) {
+					verificationErrors.append(e.toString());
+				}
+				Thread.sleep(1000);
+			}
+		}
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_phobos_editorButton | Editor Settings]]
+		if ((element = getObject(".//*[@id='ares_phobos_editorButton']")) != null) {
+			Thread.sleep(1000);
+			element.click();
+			
+			// High light active line - default value OFF
+			assertEquals(
+					"High light active line",
+					driver.findElement(
+							By.id("ares_phobos_editorSettingsPopup_highLightLabel"))
+							.getText());
+			Thread.sleep(1000);
+			driver.findElement(By.cssSelector("BODY")).getText()
+					.matches("^[\\s\\S]*Off[\\s\\S]*$");
+			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+			// id=ares_phobos_editorSettingsPopup_highLightButton_control | ]]
+			if ((element = getObject(".//*[@id='ares_phobos_editorSettingsPopup_highLightButton_control']")) != null) {
+				element.click();
+				driver.findElement(By.cssSelector("BODY")).getText()
+						.matches("^[\\s\\S]*On[\\s\\S]*$");
+			}
+			
+			// Word Wrap - default balue OFF
+			assertEquals(
+					"Word Wrap",
+					driver.findElement(
+							By.id("ares_phobos_editorSettingsPopup_wordWrapLabel"))
+							.getText());
+			Thread.sleep(1000);
+			driver.findElement(By.cssSelector("BODY")).getText()
+					.matches("^[\\s\\S]*Off[\\s\\S]*$");
+			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+			// id=ares_phobos_editorSettingsPopup_wordWrapButton_control | ]]
+			if ((element = getObject(".//*[@id='ares_phobos_editorSettingsPopup_wordWrapButton_control']")) != null) {
+				element.click();
+				driver.findElement(By.cssSelector("BODY")).getText()
+						.matches("^[\\s\\S]*On[\\s\\S]*$");
+			}
+			
+			// Font Size - 
+			assertEquals(
+					"Font Size",
+					driver.findElement(
+							By.id("ares_phobos_editorSettingsPopup_fontSizeLabel"))
+							.getText());
+			Thread.sleep(1000);
+			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+			// id=ares_phobos_editorSettingsPopup_pickerButton | ]]
+			if ((element = getObject(".//*[@id='ares_phobos_editorSettingsPopup_pickerButton']")) != null) {
+				element.click();
+				// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+				// id=ares_phobos_editorSettingsPopup_fontSizePicker_menuItem2 |
+				// 10]]
+				Thread.sleep(1000);
+				if ((element = getObject(".//*[@id='ares_phobos_editorSettingsPopup_fontSizePicker_menuItem2']")) != null) {
+					element.click();
+				}
+			}
+			
+			// Editor Themes
+			assertEquals(
+					"Editor Themes",
+					driver.findElement(
+							By.id("ares_phobos_editorSettingsPopup_editorThemesLabel"))
+							.getText());
+			driver.findElement(By.cssSelector("BODY")).getText()
+					.matches("^[\\s\\S]*ambiance[\\s\\S]*$");
+			driver.findElement(
+					By.id("ares_phobos_editorSettingsPopup_pickerButton2"))
+					.click();
+			// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+			// id=ares_phobos_editorSettingsPopup_menuItem6 | cobalt]]
+			if ((element = getObject(".//*[@id='ares_phobos_editorSettingsPopup_menuItem6']")) != null) {
+				element.click();
+				assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
+						.matches("^[\\s\\S]*cobalt[\\s\\S]*$"));
+			}
+			Thread.sleep(1000);
+			System.out
+			.println("no needs to save - assertions are here to validate the settings");
+		}
+		
+		// ERROR: Caught exception [ERROR: Unsupported command [clickAt |
+		// id=ares_phobos_editorSettingsPopup_close | Close]]
+		if ((element = getObject(".//*[@id='ares_phobos_editorSettingsPopup_close']")) != null) {
+			element.click();
+		}
+	}
+
+	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-03-08 09:49:01.000000000 +0100
+++ java-modif/PhobosNewKind.java	2013-03-08 14:39:20.000000000 +0100
@@ -1,85 +1,302 @@
-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.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;

-      acceptNextAlert = true;
-    }
-  }
-}
diff -Naur -x '.*' -x '*.sha1' -x '*.md5' java-ref/PhobosFileButton.java java-modif/PhobosFileButton.java
--- java-ref/PhobosFileButton.java	2013-04-05 17:14:46.000000000 +0200
+++ java-modif/PhobosFileButton.java	1970-01-01 01:00:00.000000000 +0100
@@ -1,80 +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 PhobosFileButton {
-  private WebDriver driver;
-  private String baseUrl;
-  private boolean acceptNextAlert = true;
