You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by er...@apache.org on 2015/08/07 06:26:58 UTC

[2/2] airavata-php-gateway git commit: Adding selenium tests to repository

Adding selenium tests to repository


Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/4df8d201
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/4df8d201
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/4df8d201

Branch: refs/heads/master
Commit: 4df8d201d038131546880e738f839d7c385d187d
Parents: 30a194c
Author: Eroma Abeysinghe <er...@apache.org>
Authored: Fri Aug 7 00:13:08 2015 -0400
Committer: Eroma Abeysinghe <er...@apache.org>
Committed: Fri Aug 7 00:13:08 2015 -0400

----------------------------------------------------------------------
 app/tests/selenium/README.txt                   |  64 +++++++
 app/tests/selenium/pom.xml                      | 143 +++++++++++++++
 .../airavata/pga/tests/AmberSanderBR2.java      | 139 +++++++++++++++
 .../airavata/pga/tests/AmberSanderComet.java    | 137 +++++++++++++++
 .../airavata/pga/tests/AmberSanderStampede.java | 139 +++++++++++++++
 .../apache/airavata/pga/tests/AutoDockBR2.java  | 139 +++++++++++++++
 .../pga/tests/CreateModifySearchProject.java    | 124 +++++++++++++
 .../airavata/pga/tests/CreateUserLogin.java     | 113 ++++++++++++
 .../org/apache/airavata/pga/tests/EchoBR2.java  | 133 ++++++++++++++
 .../apache/airavata/pga/tests/EchoComet.java    | 129 ++++++++++++++
 .../apache/airavata/pga/tests/EchoStampede.java | 133 ++++++++++++++
 .../airavata/pga/tests/EspressoStampede.java    | 136 ++++++++++++++
 .../apache/airavata/pga/tests/ExpLoadTest.java  | 176 +++++++++++++++++++
 .../apache/airavata/pga/tests/GamessGordon.java | 139 +++++++++++++++
 .../airavata/pga/tests/GaussianComet.java       | 135 ++++++++++++++
 .../airavata/pga/tests/GaussianGordon.java      | 133 ++++++++++++++
 .../airavata/pga/tests/GromacsStampede.java     | 135 ++++++++++++++
 .../apache/airavata/pga/tests/LammpsComet.java  | 136 ++++++++++++++
 .../airavata/pga/tests/LammpsStampede.java      | 133 ++++++++++++++
 .../apache/airavata/pga/tests/NwChemComet.java  | 130 ++++++++++++++
 .../airavata/pga/tests/NwChemStampede.java      | 131 ++++++++++++++
 .../airavata/pga/tests/PhastaPStampede.java     | 134 ++++++++++++++
 .../apache/airavata/pga/tests/RunAllTests.java  | 172 ++++++++++++++++++
 .../airavata/pga/tests/SearchProjectExp.java    | 111 ++++++++++++
 .../airavata/pga/tests/TinkerMonteStampede.java | 148 ++++++++++++++++
 .../airavata/pga/tests/TrinityStampede.java     | 146 +++++++++++++++
 .../apache/airavata/pga/tests/UserLogout.java   |  51 ++++++
 .../apache/airavata/pga/tests/WRFStampede.java  | 133 ++++++++++++++
 .../pga/tests/utils/CurrentDateTime.java        |  19 ++
 .../pga/tests/utils/ExpFileReadUtils.java       |  73 ++++++++
 .../airavata/pga/tests/utils/UserLogin.java     |  54 ++++++
 .../selenium/src/test/resources/exp.properties  |  37 ++++
 32 files changed, 3855 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/README.txt
----------------------------------------------------------------------
diff --git a/app/tests/selenium/README.txt b/app/tests/selenium/README.txt
new file mode 100644
index 0000000..c050ce0
--- /dev/null
+++ b/app/tests/selenium/README.txt
@@ -0,0 +1,64 @@
+###########################################################################
+################JAVA TEST SCRIPTS FOR AIRAVATA PHP REFERENCE GATEWAY################
+###########################################################################
+
+
+
+###############Prerequisites To Run The Selenium Java Scripts##############
+1. Firefox V 31.0 or 32.0 is required for the scripts.
+https://support.mozilla.org/en-US/kb/install-older-version-of-firefox
+
+2. Copy all PHP-Reference-Gateway application input files from 
+https://iu.box.com/s/9ztdby709kso8siachz16svn2y511nn7 
+4. Download the Selenium Java test project from
+
+###########################################################################
+
+
+###############Environments available for Running the Scripts##############
+Selenium test are executed through PHP-Reference-Gateway by giving the URL
+Current Production URLs
+Base URL: http://test-drive.airavata.org/PHP-Reference-Gateway
+Sub URL: index.php
+###########################################################################
+
+
+###################Script Alterations & Execution Steps###################
+1. Add the Base URL and sub URL in to exp.properties.
+
+2. Create a user login using the class; CreateUserLogin. Enter all your parameters and execute.
+
+3. Change the config file with values prefered for 
+		i.	Project Name
+		ii. Project Description
+		iii.Experiment Name Extension
+		
+2. In exp.properties file enter; 
+	i. The correct base URL and sub URL of your working PPHP-Reference-Gateway.
+	ii. Change the path of the input files (Where the files exists in your local machine) for the applications. 
+	iii. The static part of the path is in the config file and the varying part is in utils file ExpFileReadUtils.
+	
+4. Execution Steps
+		i.		CreateUserLogin.java - Already done above
+		ii.		In UserLogin class change the username and password to your own username and password
+		iii.	CreateModifySearchProject.java - Create A Project, Modify and Search for the Project
+		iV.		Run Experiment creation scripts at your prefered sequence 
+		OR
+		V. 		Use RunAllTests and run all the applications at once. 
+		VI.		If you want to do laod testing use ExpLoadTest class
+		VII.	At the end run the SearchProjectExp.java to view your experiments (For the ease you can create all your experiments under one Project)
+		VIII.	UserLogout.java
+###########################################################################
+
+
+############################Further Information############################
+1. To record new Selenium scripts use Selenium IDE. Download from http://www.seleniumhq.org/download/
+
+2. Record using IDE and export to java to modify and run
+
+3. For clarifications, comments please use dev@airavata.apache.org or project@scigap.org
+
+4. For more information on Selenium go to http://www.seleniumhq.org/docs/
+###########################################################################
+
+

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/pom.xml
----------------------------------------------------------------------
diff --git a/app/tests/selenium/pom.xml b/app/tests/selenium/pom.xml
new file mode 100755
index 0000000..ff5c5d0
--- /dev/null
+++ b/app/tests/selenium/pom.xml
@@ -0,0 +1,143 @@
+<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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.airavata.pga.tests</groupId>
+  <artifactId>PGATest</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>PGATest</name>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.3.2</version>
+        <configuration>
+          <source>1.7</source>
+          <target>1.7</target>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.12.4</version>
+        <configuration>
+            <includes>
+                <include>**/RunAllTests.java</include>
+            </includes>
+            <excludes>
+                <exclude>**/ExpLoadTest.java</exclude>
+            </excludes>
+          <!--skip>true</skip-->
+          <systemProperties>
+            <!--property>
+              <name>user</name>
+              <value>tobrien</value>
+            </property>
+            <property>
+              <name>name</name>
+              <value>Tim O'Brien</value>
+            </property -->
+          </systemProperties>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>integration-test</phase>
+            <goals>
+              <goal>test</goal>
+            </goals>
+            <configuration>
+              <!--skip>false</skip-->
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>selenium-maven-plugin</artifactId>
+        <version>2.3</version>
+        <!--executions>
+          <execution>
+            <phase>pre-integration-test</phase>
+            <goals>
+              <goal>start-server</goal>
+            </goals>
+            <configuration>
+              <background>false</background>
+            </configuration>
+          </execution>
+        </executions -->
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <!--dependency>
+      <groupId>org.testng</groupId>
+      <artifactId>testng</artifactId>
+      <version>5.10</version>
+      <classifier>jdk15</classifier>
+      <scope>test</scope>
+    </dependency-->
+    <dependency>
+      <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+      <artifactId>selenium-java-client-driver</artifactId>
+      <version>1.0.1</version>
+      <scope>test</scope>
+    </dependency>
+      <dependency>
+          <groupId>org.seleniumhq.selenium</groupId>
+          <artifactId>selenium-firefox-driver</artifactId>
+          <version>2.44.0</version>
+      </dependency>
+
+      <dependency>
+          <groupId>org.apache.httpcomponents</groupId>
+          <artifactId>httpclient</artifactId>
+          <version>4.3.5</version>
+      </dependency>
+      <dependency>
+          <groupId>org.apache.httpcomponents</groupId>
+          <artifactId>httpcore</artifactId>
+          <version>4.3.2</version>
+      </dependency>
+      <dependency>
+          <groupId>commons-io</groupId>
+          <artifactId>commons-io</artifactId>
+          <version>2.4</version>
+      </dependency>
+      <dependency>
+          <groupId>org.apache.commons</groupId>
+          <artifactId>commons-exec</artifactId>
+          <version>1.1</version>
+      </dependency>
+      <dependency>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+          <version>1.1.3</version>
+      </dependency>
+      <dependency>
+          <groupId>com.google.guava</groupId>
+          <artifactId>guava</artifactId>
+          <version>18.0</version>
+      </dependency>
+      <dependency>
+          <groupId>org.seleniumhq.selenium</groupId>
+          <artifactId>selenium-remote-driver</artifactId>
+          <version>2.44.0</version>
+      </dependency>
+
+      <dependency>
+          <groupId>org.seleniumhq.selenium</groupId>
+          <artifactId>selenium-java</artifactId>
+          <version>2.44.0</version>
+      </dependency>
+      <dependency>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+          <version>4.8.2</version>
+          <scope>test</scope>
+      </dependency>
+  </dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderBR2.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderBR2.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderBR2.java
new file mode 100755
index 0000000..906c5c3
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderBR2.java
@@ -0,0 +1,139 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Amber Application on BR2**********
+ * Created by Eroma on 9/12/14.
+ * The script generates Amber application execution on BR2
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class AmberSanderBR2 extends UserLogin {
+  private WebDriver driver;
+  private String subUrl;
+  private String baseUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+      driver = new FirefoxDriver();
+      baseUrl = ExpFileReadUtils.readProperty("base.url");
+      subUrl = ExpFileReadUtils.readProperty("sub.url");
+      expName = ExpFileReadUtils.readProperty("experiment.name");
+      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+
+  }
+
+  @Test
+  public void testAmberSanderBR2() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+      waitTime (200);
+    driver.findElement(By.id("experiment-name")).sendKeys(expName +"AmberSander-BR2");
+    driver.findElement(By.id("experiment-description")).clear();
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Amber_Sander");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+    driver.findElement(By.id("Heat-Restart-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT1);
+      waitTime (200);
+    driver.findElement(By.id("Parameter-Topology-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT2);
+      waitTime (200);
+    driver.findElement(By.id("Production-Control-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT3);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("bigred2.uits.iu.edu");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).clear();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderComet.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderComet.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderComet.java
new file mode 100755
index 0000000..f2d0d76
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderComet.java
@@ -0,0 +1,137 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Amber Application on Comet**********
+ * Created by Eroma on 9/16/14.
+ * The script generates Amber application execution on Trestles
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class AmberSanderComet extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testAmberSanderComet() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+      waitTime (200);
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "AmberSander-Comet");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Amber_Sander");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Heat-Restart-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT1);
+      waitTime (200);
+    driver.findElement(By.id("Parameter-Topology-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT2);
+      waitTime (200);
+    driver.findElement(By.id("Production-Control-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT3);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("comet.sdsc.edu");
+      waitTime (200);
+      waitTime (200);
+      driver.findElement(By.id("node-count")).clear();
+      driver.findElement(By.id("node-count")).sendKeys("1");
+      driver.findElement(By.id("cpu-count")).clear();
+      driver.findElement(By.id("cpu-count")).sendKeys("16");
+      driver.findElement(By.id("wall-time")).clear();
+      driver.findElement(By.id("wall-time")).sendKeys("30");
+      driver.findElement(By.id("memory-count")).clear();
+      driver.findElement(By.id("memory-count")).sendKeys("0");
+      driver.findElement(By.id("enableEmail")).click();
+      driver.findElement(By.id("emailAddresses")).clear();
+      driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+      driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+      driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+      driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+      driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderStampede.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderStampede.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderStampede.java
new file mode 100755
index 0000000..b670407
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AmberSanderStampede.java
@@ -0,0 +1,139 @@
+package org.apache.airavata.pga.tests;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.*;
+
+/*
+ **********Executing Amber Application on Stampede**********
+ * Created by Eroma on 9/15/14.
+ * The script generates Amber application execution on Stampede
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class AmberSanderStampede extends UserLogin {
+  private WebDriver driver;
+  private String subUrl;
+  private String baseUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+
+  }
+
+  @Test
+  public void testAmberSanderStampede() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "AmberSander-Stampede");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Amber_Sander");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Heat-Restart-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT1);
+      waitTime (200);
+    driver.findElement(By.id("Parameter-Topology-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT2);
+      waitTime (200);
+    driver.findElement(By.id("Production-Control-File")).sendKeys(ExpFileReadUtils.AMBER_INPUT3);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("stampede.tacc.xsede.org");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).clear();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AutoDockBR2.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AutoDockBR2.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AutoDockBR2.java
new file mode 100755
index 0000000..08e9578
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/AutoDockBR2.java
@@ -0,0 +1,139 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Amber Application on BR2**********
+ * Created by Eroma on 9/12/14.
+ * The script generates Amber application execution on BR2
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class AutoDockBR2 extends UserLogin {
+  private WebDriver driver;
+  private String subUrl;
+  private String baseUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+      driver = new FirefoxDriver();
+      baseUrl = ExpFileReadUtils.readProperty("base.url");
+      subUrl = ExpFileReadUtils.readProperty("sub.url");
+      expName = ExpFileReadUtils.readProperty("experiment.name");
+      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+
+  }
+
+  @Test
+  public void testAutoDockBR2() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+      waitTime (200);
+    driver.findElement(By.id("experiment-name")).sendKeys(expName +"AutoDock-BR2");
+    driver.findElement(By.id("experiment-description")).clear();
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("AutoDock");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+    driver.findElement(By.id("Autodock-Input")).sendKeys(ExpFileReadUtils.AUTODOCK_INPUT1);
+      waitTime (200);
+    driver.findElement(By.id("Autodock-Data")).sendKeys(ExpFileReadUtils.AUTODOCK_INPUT2);
+      waitTime (200);
+    driver.findElement(By.id("HSG1-Maps-FLD")).sendKeys(ExpFileReadUtils.AUTODOCK_INPUT3);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("bigred2.uits.iu.edu");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).clear();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateModifySearchProject.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateModifySearchProject.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateModifySearchProject.java
new file mode 100755
index 0000000..90945e1
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateModifySearchProject.java
@@ -0,0 +1,124 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+
+//import static org.testng.Assert.fail;
+
+/*
+ **********Create, Modify & Search Project**********
+ * Created by Airavata on 9/12/14.
+ * The script creates, modifies and searches for the created Project
+ * project-name and project-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+*/
+
+
+public class CreateModifySearchProject extends UserLogin {
+  private WebDriver driver;
+  private String subUrl;
+  private String baseUrl;
+  private String projectDescription;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    projectDescription = ExpFileReadUtils.readProperty("project.description");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testCreateModifySearchProject() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Project")).click();
+    driver.findElement(By.id("create")).click();
+    driver.findElement(By.id("project-name")).clear();
+    driver.findElement(By.id("project-name")).sendKeys(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (500);
+    driver.findElement(By.id("project-description")).clear();
+    driver.findElement(By.id("project-description")).sendKeys(projectDescription);
+      waitTime (500);
+    driver.findElement(By.name("save")).click();
+      waitTime(750);
+    driver.findElement(By.cssSelector("span.glyphicon.glyphicon-pencil")).click();
+    driver.findElement(By.id("project-description")).clear();
+    driver.findElement(By.id("project-description")).sendKeys(projectDescription + "_MODIFIED_2015");
+      waitTime(500);
+    driver.findElement(By.name("save")).click();
+      waitTime(500);
+    driver.findElement(By.linkText("Project")).click();
+    driver.findElement(By.id("browse")).click();
+      waitTime(500);
+    driver.findElement(By.id("search-value")).clear();
+    driver.findElement(By.id("search-value")).sendKeys(ExpFileReadUtils.readProperty("project.name"));
+      waitTime(500);
+    driver.findElement(By.name("search")).click();
+    driver.findElement(By.linkText("View")).click();
+      waitTime(500);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      throw new Exception(verificationErrorString);
+
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateUserLogin.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateUserLogin.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateUserLogin.java
new file mode 100755
index 0000000..62098ad
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/CreateUserLogin.java
@@ -0,0 +1,113 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+
+public class CreateUserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testCreateUserLogin() throws Exception {
+
+      String username = null;
+      String password = null;
+      try {
+          username = ExpFileReadUtils.readProperty("pga.username");
+          password = ExpFileReadUtils.readProperty("pga.password");
+
+      } catch (Exception e) {
+          throw new RuntimeException(e);
+      }
+
+      if (username == null || username.trim().equals("")
+              || password == null || password.trim().equals(""))
+          throw new RuntimeException("PGS user name or password in exp.properties file is invalid !");
+
+      username = username.trim();
+      password = password.trim();
+
+      driver.get(baseUrl);
+      driver.findElement(By.linkText("Create account")).click();
+      driver.findElement(By.id("username")).sendKeys(username);
+      waitTime(500);
+      driver.findElement(By.id("password")).sendKeys(password);
+      waitTime(500);
+      driver.findElement(By.id("confirm_password")).sendKeys(password);
+      waitTime(500);
+      driver.findElement(By.id("email")).sendKeys("pgauser@gmail.com");
+      waitTime(500);
+      driver.findElement(By.id("first_name")).sendKeys("PGA");
+      waitTime(500);
+      driver.findElement(By.id("last_name")).sendKeys("User");
+      waitTime(500);
+      driver.findElement(By.name("Submit")).click();
+      waitTime(5000);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoBR2.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoBR2.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoBR2.java
new file mode 100755
index 0000000..2f404f2
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoBR2.java
@@ -0,0 +1,133 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Echo Application on BR2**********
+ * Created by Airavata on 9/16/14.
+ * The script generates Echo application execution on BR2
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class EchoBR2 extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testEchoBR2() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Echo-BR2");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Echo");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Input_to_Echo")).clear();
+    driver.findElement(By.id("Input_to_Echo")).sendKeys("Echo Test");
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("bigred2.uits.iu.edu");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoComet.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoComet.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoComet.java
new file mode 100755
index 0000000..dc22ea2
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoComet.java
@@ -0,0 +1,129 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Echo Application on Comet**********
+ * Created by Eroma on 9/16/14.
+ * The script generates Echo application execution on Trestles
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class EchoComet extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testEchoComet() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Echo-Comet");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Echo");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Input-to-Echo")).sendKeys("Echo Test");
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("comet.sdsc.edu");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoStampede.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoStampede.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoStampede.java
new file mode 100755
index 0000000..b30ecab
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EchoStampede.java
@@ -0,0 +1,133 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Echo Application on Stampede**********
+ * Created by Eroma on 9/16/14.
+ * The script generates Echo application execution on Stampede
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/23/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class EchoStampede extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testEchoStampede() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+      waitTime (200);
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Echo-Stampede");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Echo");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Input-to-Echo")).sendKeys("Echo Test");
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("stampede.tacc.xsede.org");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EspressoStampede.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EspressoStampede.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EspressoStampede.java
new file mode 100755
index 0000000..605ab74
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/EspressoStampede.java
@@ -0,0 +1,136 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Espresso Application on Stampede**********
+ * Created by Eroma on 9/16/14.
+ * The script generates Espresso application execution on Stampede
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/27/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class EspressoStampede extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String path = null;
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    path = ExpFileReadUtils.readProperty("local.path");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testEspressoStampede() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+      waitTime (200);
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Espresso-Stampede");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Quantum Espresso");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("AI-Pseudopotential-file")).sendKeys(ExpFileReadUtils.ESPRESSO_INPUT2);
+      waitTime (200);
+    driver.findElement(By.id("AI-Primitive-Cell")).sendKeys(ExpFileReadUtils.ESPRESSO_INPUT1);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("stampede.tacc.xsede.org");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/ExpLoadTest.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/ExpLoadTest.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/ExpLoadTest.java
new file mode 100644
index 0000000..1a3ec66
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/ExpLoadTest.java
@@ -0,0 +1,176 @@
+package org.apache.airavata.pga.tests;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ **********Executing Load Tests on Airavata Applications**********
+ * Created by Eroma on 4/26/15.
+ * The script to be used in load testing using PGA gateway
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+public class ExpLoadTest extends UserLogin {
+
+    @Before
+    public void setUp() throws Exception {}
+
+    @Test
+    public void runAll() throws Exception {
+        System.out.println("============== Running all tests ==================");
+
+        long startTime = System.nanoTime();
+        int iterations1 = 1;
+        for (int i=0; i < iterations1; ++i) {
+            System.out.println("Starting AmberSanderBR2 iteration ...");
+            AmberSanderBR2 t1 = new AmberSanderBR2();
+            t1.setUp();
+            t1.testAmberSanderBR2();
+            t1.tearDown();
+            System.out.println("AmberSanderBR2 iteration - Done");
+
+            System.out.println("Starting AmberSanderStampede ...");
+            AmberSanderStampede t2 = new AmberSanderStampede();
+            t2.setUp();
+            t2.testAmberSanderStampede();
+            t2.tearDown();
+            System.out.println("AmberSanderStampede - Done");
+
+            System.out.println("Starting AmberSanderComet ...");
+            AmberSanderComet t3 = new AmberSanderComet();
+            t3.setUp();
+            t3.testAmberSanderComet();
+            t3.tearDown();
+            System.out.println("AmberSanderComet - Done");
+
+            System.out.println("Starting AutoDockBR2 ...");
+            AutoDockBR2 t4 = new AutoDockBR2();
+            t4.setUp();
+            t4.testAutoDockBR2();
+            t4.tearDown();
+            System.out.println("AutoDockBR2 - Done");
+
+            System.out.println("Starting EchoBR2 ...");
+            EchoBR2 t5 = new EchoBR2();
+            t5.setUp();
+            t5.testEchoBR2();
+            t5.tearDown();
+            System.out.println("EchoBR2 - Done");
+
+            System.out.println("Starting EchoStampede ...");
+            EchoStampede t6 = new EchoStampede();
+            t6.setUp();
+            t6.testEchoStampede();
+            t6.tearDown();
+            System.out.println("EchoStampede - Done");
+
+            System.out.println("Starting EchoComet ...");
+            EchoComet t7 = new EchoComet();
+            t7.setUp();
+            t7.testEchoComet();
+            t7.tearDown();
+            System.out.println("EchoComet - Done");
+
+            System.out.println("Starting EspressoStampede ...");
+            EspressoStampede t8 = new EspressoStampede();
+            t8.setUp();
+            t8.testEspressoStampede();
+            t8.tearDown();
+            System.out.println("EspressoStampede - Done");
+
+            System.out.println("Starting GamessGordon ...");
+            GamessGordon t9 = new GamessGordon();
+            t9.setUp();
+            t9.testGamessGordon();
+            t9.tearDown();
+            System.out.println("GamessGordon - Done");
+
+            System.out.println("Starting GaussianComet ...");
+            GaussianComet t10 = new GaussianComet();
+            t10.setUp();
+            t10.testGaussianComet();
+            t10.tearDown();
+            System.out.println("GaussianComet - Done");
+
+            System.out.println("Starting GaussianGordon ...");
+            GaussianGordon t11 = new GaussianGordon();
+            t11.setUp();
+            t11.testGaussianGordon();
+            t11.tearDown();
+            System.out.println("GaussianGordon - Done");
+
+            System.out.println("Starting GromacsStampede ...");
+            GromacsStampede t12 = new GromacsStampede();
+            t12.setUp();
+            t12.testGromacsStampede();
+            t12.tearDown();
+            System.out.println("GromacsStampede - Done");
+
+            System.out.println("Starting LammpsStampede ...");
+            LammpsStampede t13 = new LammpsStampede();
+            t13.setUp();
+            t13.testLammpsStampede();
+            t13.tearDown();
+            System.out.println("LammpsStampede - Done");
+
+            System.out.println("Starting LammpsComet ...");
+            LammpsComet t14 = new LammpsComet();
+            t14.setUp();
+            t14.testLammpsComet();
+            t14.tearDown();
+            System.out.println("LammpsComet - Done");
+
+            System.out.println("Starting NwChemStampede ...");
+            NwChemStampede t15 = new NwChemStampede();
+            t15.setUp();
+            t15.testNwChemStampede();
+            t15.tearDown();
+            System.out.println("NwChemStampede - Done");
+
+            System.out.println("Starting NwChemComet ...");
+            NwChemComet t16 = new NwChemComet();
+            t16.setUp();
+            t16.testNwChemComet();
+            t16.tearDown();
+            System.out.println("NwChemComet - Done");
+
+            System.out.println("Starting PhastaPStampede ...");
+            PhastaPStampede t17 = new PhastaPStampede();
+            t17.setUp();
+            t17.testPhastaPStampede();
+            t17.tearDown();
+            System.out.println("PhastaPStampede - Done");
+
+            System.out.println("Starting TinkerMonteStampede ...");
+            TinkerMonteStampede t18 = new TinkerMonteStampede();
+            t18.setUp();
+            t18.testTinkerMonteStampede();
+            t18.tearDown();
+            System.out.println("TinkerMonteStampede - Done");
+
+            /*System.out.println("Starting TrinityStampede ...");
+            TrinityStampede t19 = new TrinityStampede();
+            t19.setUp();
+            t19.testTrinityStampede();
+            t19.tearDown();
+            System.out.println("TrinityStampede - Done");*/
+
+            System.out.println("Starting WRFStampede ...");
+            WRFStampede t20 = new WRFStampede();
+            t20.setUp();
+            t20.testWRFStampede();
+            t20.tearDown();
+            System.out.println("WRFStampede - Done");
+        }
+
+        long endTime = System.nanoTime();
+        long duration = (endTime - startTime);
+
+        System.out.println("Time to execute All Experiments "
+                + " : " +  (duration / 1000000000)/60 + " minutes.");
+
+
+        System.out.println("==================== Done =========================");
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GamessGordon.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GamessGordon.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GamessGordon.java
new file mode 100755
index 0000000..22e2d4f
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GamessGordon.java
@@ -0,0 +1,139 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Gamess Application on Gordon**********
+ * Created by Eroma on 9/16/14.
+ * The script generates Trinity application execution on Stampede
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/27/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class GamessGordon extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String path = null;
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    path = ExpFileReadUtils.readProperty("local.path");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testGamessGordon() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Gamess-Gordon");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime(200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime(200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Gamess");
+      waitTime(200);
+    driver.findElement(By.name("continue")).click();
+      waitTime(200);
+    driver.findElement(By.id("Gamess-Input-File")).sendKeys(ExpFileReadUtils.GAMESS_INPUT1);
+      waitTime(200);
+    driver.findElement(By.id("Gamess-Version")).sendKeys("00");
+      waitTime (200);
+    driver.findElement(By.id("PPN")).clear();
+    driver.findElement(By.id("PPN")).sendKeys("4");
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("gordon.sdsc.edu");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).clear();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+      driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianComet.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianComet.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianComet.java
new file mode 100755
index 0000000..db3c5ac
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianComet.java
@@ -0,0 +1,135 @@
+package org.apache.airavata.pga.tests;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.fail;
+
+/*
+ **********Executing Gaussian Application on Comet**********
+ * Created by Eroma on 9/16/14.
+ * The script generates NwChem application execution on Stampede
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/27/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class GaussianComet extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String path = null;
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    path = ExpFileReadUtils.readProperty("local.path");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testGaussianComet() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Gaussian-Comet");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Gaussian");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Gaussian-Input-File")).sendKeys(ExpFileReadUtils.GAUSSIAN_INPUT1);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("comet.sdsc.edu");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("compute");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/4df8d201/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianGordon.java
----------------------------------------------------------------------
diff --git a/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianGordon.java b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianGordon.java
new file mode 100755
index 0000000..758f28c
--- /dev/null
+++ b/app/tests/selenium/src/test/java/org/apache/airavata/pga/tests/GaussianGordon.java
@@ -0,0 +1,133 @@
+package org.apache.airavata.pga.tests;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.airavata.pga.tests.utils.UserLogin;
+import org.apache.airavata.pga.tests.utils.ExpFileReadUtils;
+import org.junit.*;
+import static org.junit.Assert.*;
+import org.openqa.selenium.*;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.support.ui.Select;
+
+/*
+ **********Executing Gaussian Application on Gordon**********
+ * Created by Eroma on 9/16/14.
+ * The script generates NwChem application execution on Stampede
+ * experiment-name and experiment-description are read from the exp.properties file
+ * Modified by Eroma on 10/27/14. Base URL & Sub URL to be read from the exp.properties file
+ * Updated to work with Latest PGA by Eroma 08/05/2015
+*/
+
+public class GaussianGordon extends UserLogin {
+  private WebDriver driver;
+  private String baseUrl;
+  private String subUrl;
+  private boolean acceptNextAlert = true;
+  private StringBuffer verificationErrors = new StringBuffer();
+  private String path = null;
+  private String expName = null;
+
+  @Before
+  public void setUp() throws Exception {
+    driver = new FirefoxDriver();
+    baseUrl = ExpFileReadUtils.readProperty("base.url");
+    subUrl = ExpFileReadUtils.readProperty("sub.url");
+    path = ExpFileReadUtils.readProperty("local.path");
+    expName = ExpFileReadUtils.readProperty("experiment.name");
+    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
+  }
+
+  @Test
+  public void testGaussianGordon() throws Exception {
+    driver.get(baseUrl + subUrl);
+      authenticate(driver);
+    driver.findElement(By.linkText("Experiment")).click();
+    driver.findElement(By.xpath("(//a[contains(text(),'Create')])[2]")).click();
+    driver.findElement(By.id("experiment-name")).clear();
+    driver.findElement(By.id("experiment-name")).sendKeys(expName + "Gaussian-Gordon");
+      waitTime (200);
+    driver.findElement(By.id("experiment-description")).clear();
+    driver.findElement(By.id("experiment-description")).sendKeys("Test Experiment");
+      waitTime (200);
+    new Select(driver.findElement(By.id("project"))).selectByVisibleText(ExpFileReadUtils.readProperty("project.name"));
+      waitTime (200);
+    new Select(driver.findElement(By.id("application"))).selectByVisibleText("Gaussian");
+      waitTime (200);
+    driver.findElement(By.name("continue")).click();
+      waitTime (200);
+    driver.findElement(By.id("Gaussian-Input-File")).sendKeys(ExpFileReadUtils.GAUSSIAN_INPUT2);
+      waitTime (200);
+    new Select(driver.findElement(By.id("compute-resource"))).selectByVisibleText("gordon.sdsc.edu");
+      waitTime (200);
+    new Select(driver.findElement(By.id("select-queue"))).selectByVisibleText("normal");
+      waitTime (200);
+    driver.findElement(By.id("node-count")).clear();
+    driver.findElement(By.id("node-count")).sendKeys("1");
+    driver.findElement(By.id("cpu-count")).clear();
+    driver.findElement(By.id("cpu-count")).sendKeys("16");
+    driver.findElement(By.id("wall-time")).clear();
+    driver.findElement(By.id("wall-time")).sendKeys("30");
+    driver.findElement(By.id("memory-count")).clear();
+    driver.findElement(By.id("memory-count")).sendKeys("0");
+    driver.findElement(By.id("enableEmail")).click();
+    driver.findElement(By.id("emailAddresses")).clear();
+    driver.findElement(By.id("emailAddresses")).sendKeys(ExpFileReadUtils.readProperty("email1"));
+    driver.findElement(By.xpath("(//button[@type='button'])[2]")).click();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).clear();
+    driver.findElement(By.xpath("(//input[@name='emailAddresses[]'])[2]")).sendKeys(ExpFileReadUtils.readProperty("email2"));
+      waitTime (200);
+    driver.findElement(By.name("launch")).click();
+      waitTime (200);
+  }
+
+    private void waitTime(int i) {
+        try {
+            Thread.sleep(i);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+  @After
+  public void tearDown() throws Exception {
+    driver.quit();
+    String verificationErrorString = verificationErrors.toString();
+    if (!"".equals(verificationErrorString)) {
+      fail(verificationErrorString);
+    }
+  }
+
+  private boolean isElementPresent(By by) {
+    try {
+      driver.findElement(by);
+      return true;
+    } catch (NoSuchElementException e) {
+      return false;
+    }
+  }
+
+  private boolean isAlertPresent() {
+    try {
+      driver.switchTo().alert();
+      return true;
+    } catch (NoAlertPresentException e) {
+      return false;
+    }
+  }
+
+  private String closeAlertAndGetItsText() {
+    try {
+      Alert alert = driver.switchTo().alert();
+      String alertText = alert.getText();
+      if (acceptNextAlert) {
+        alert.accept();
+      } else {
+        alert.dismiss();
+      }
+      return alertText;
+    } finally {
+      acceptNextAlert = true;
+    }
+  }
+}