You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/12/12 22:36:17 UTC

[14/46] geode git commit: GEODE-2112: Fix UITests failing due to insufficient cleanup

http://git-wip-us.apache.org/repos/asf/geode/blob/190f3a21/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
deleted file mode 100644
index 89ccb3f..0000000
--- a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAbstractTest.java
+++ /dev/null
@@ -1,1075 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- *
- */
-package org.apache.geode.tools.pulse.tests.ui;
-
-import static org.junit.Assert.*;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-import com.jayway.awaitility.Awaitility;
-import org.apache.commons.io.FileUtils;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.rules.TestWatcher;
-import org.junit.runner.Description;
-import org.openqa.selenium.By;
-import org.openqa.selenium.JavascriptExecutor;
-import org.openqa.selenium.OutputType;
-import org.openqa.selenium.TakesScreenshot;
-import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.interactions.Actions;
-import org.openqa.selenium.phantomjs.PhantomJSDriver;
-import org.openqa.selenium.remote.DesiredCapabilities;
-import org.openqa.selenium.support.ui.ExpectedCondition;
-import org.openqa.selenium.support.ui.ExpectedConditions;
-import org.openqa.selenium.support.ui.WebDriverWait;
-
-import org.apache.geode.internal.admin.SSLConfig;
-import org.apache.geode.management.internal.JettyHelper;
-import org.apache.geode.test.junit.rules.RetryRule;
-import org.apache.geode.tools.pulse.internal.data.PulseConstants;
-import org.apache.geode.tools.pulse.tests.JMXProperties;
-import org.apache.geode.tools.pulse.tests.PulseTestLocators;
-import org.apache.geode.tools.pulse.tests.Server;
-
-@SuppressWarnings("deprecated")
-public abstract class PulseAbstractTest extends PulseBaseTest {
-
-  private static String jmxPropertiesFile;
-  private static String path;
-
-  private static org.eclipse.jetty.server.Server jetty = null;
-  private static Server server = null;
-  private static String pulseURL = null;
-  public static WebDriver driver;
-
-  /* Constants for executing Data Browser queries */
-  public static final String QUERY_TYPE_ONE = "query1";
-  public static final String QUERY_TYPE_TWO = "query2";
-  public static final String QUERY_TYPE_THREE = "query3";
-  public static final String QUERY_TYPE_FOUR = "query4";
-  public static final String QUERY_TYPE_FIVE = "query5";
-  public static final String QUERY_TYPE_SIX = "query6";
-  public static final String QUERY_TYPE_SEVENE = "query7";
-
-  private static final String DATA_VIEW_LABEL = "Data View";
-  private static final String CLUSTER_VIEW_MEMBERS_ID = "clusterTotalMembersText";
-  private static final String CLUSTER_VIEW_SERVERS_ID = "clusterServersText";
-  private static final String CLUSTER_VIEW_LOCATORS_ID = "clusterLocatorsText";
-  private static final String CLUSTER_VIEW_REGIONS_ID = "clusterTotalRegionsText";
-  private static final String CLUSTER_CLIENTS_ID = "clusterClientsText";
-  private static final String CLUSTER_FUNCTIONS_ID = "clusterFunctions";
-  private static final String CLUSTER_UNIQUECQS_ID = "clusterUniqueCQs";
-  private static final String CLUSTER_SUBSCRIPTION_ID = "clusterSubscriptionsText";
-  private static final String CLUSTER_MEMORY_USAGE_ID = "currentMemoryUsage";
-  private static final String CLUSTER_THROUGHPUT_WRITES_ID = "currentThroughputWrites";
-  private static final String CLUSTER_GCPAUSES_ID = "currentGCPauses";
-  private static final String CLUSTER_WRITEPERSEC_ID = "writePerSec";
-  private static final String CLUSTER_READPERSEC_ID = "readPerSec";
-  private static final String CLUSTER_QUERIESPERSEC_ID = "queriesPerSec";
-  private static final String CLUSTER_PROCEDURE_ID = "clusterTxnCommittedText";
-  private static final String CLUSTER_TXNCOMMITTED_ID = "clusterTxnCommittedText";
-  private static final String CLUSTER_TXNROLLBACK_ID = "clusterTxnRollbackText";
-  private static final String MEMBER_VIEW_MEMBERNAME_ID = "memberName";
-  private static final String MEMBER_VIEW_REGION_ID = "memberRegionsCount";
-  private static final String MEMBER_VIEW_THREAD_ID = "threads";
-  private static final String MEMBER_VIEW_SOCKETS_ID = "sockets";
-  private static final String MEMBER_VIEW_LOADAVG_ID = "loadAverage";
-  private static final String MEMBER_VIEW_LISTENINGPORT_ID = "receiverListeningPort";
-  private static final String MEMBER_VIEW_LINKTHROUGHPUT_ID = "receiverLinkThroughput";
-  private static final String MEMBER_VIEW_AVGBATCHLATENCY_ID = "receiverAvgBatchLatency";
-  private static final String MEMBER_VIEW_HEAPUSAGE_ID = "memberHeapUsageAvg";
-  private static final String MEMBER_VIEW_JVMPAUSES_ID = "memberGcPausesAvg";
-  private static final String MEMBER_VIEW_CPUUSAGE_ID = "memberCPUUsageValue";
-  private static final String MEMBER_VIEW_READPERSEC_ID = "memberGetsPerSecValue";
-  private static final String MEMBER_VIEW_WRITEPERSEC_ID = "memberPutsPerSecValue";
-  private static final String MEMBER_VIEW_OFFHEAPFREESIZE_ID = "offHeapFreeSize";
-  private static final String MEMBER_VIEW_OFFHEAPUSEDSIZE_ID = "offHeapUsedSize";
-  private static final String MEMBER_VIEW_CLIENTS_ID = "clusterClientsText";
-
-  private static final String REGION_NAME_LABEL = "regionName";
-  private static final String REGION_PATH_LABEL = "regionPath";
-  private static final String REGION_TYPE_LABEL = "regionType";
-  private static final String DATA_VIEW_WRITEPERSEC = "regionWrites";
-  private static final String DATA_VIEW_READPERSEC = "regionReads";
-  private static final String DATA_VIEW_EMPTYNODES = "regionEmptyNodes";
-  private static final String DATA_VIEW_ENTRYCOUNT = "regionEntryCount";
-  private static final String REGION_PERSISTENCE_LABEL = "regionPersistence";
-  private static final String DATA_VIEW_USEDMEMORY = "memoryUsed";
-  private static final String DATA_VIEW_TOTALMEMORY = "totalMemory";
-
-  private static final String DATA_BROWSER_LABEL = "Data Browser";
-  private static final String DATA_BROWSER_REGIONName1 = "treeDemo_1_span";
-  private static final String DATA_BROWSER_REGIONName2 = "treeDemo_2_span";
-  private static final String DATA_BROWSER_REGIONName3 = "treeDemo_3_span";
-  private static final String DATA_BROWSER_REGION1_CHECKBOX = "treeDemo_1_check";
-  private static final String DATA_BROWSER_REGION2_CHECKBOX = "treeDemo_2_check";
-  private static final String DATA_BROWSER_REGION3_CHECKBOX = "treeDemo_3_check";
-  private static final String DATA_BROWSER_COLOCATED_REGION = "Colocated Regions";
-  private static final String DATA_BROWSER_COLOCATED_REGION_NAME1 = "treeDemo_1_span";
-  private static final String DATA_BROWSER_COLOCATED_REGION_NAME2 = "treeDemo_2_span";
-  private static final String DATA_BROWSER_COLOCATED_REGION_NAME3 = "treeDemo_3_span";
-
-  private static final String QUERY_STATISTICS_LABEL = "Query Statistics";
-  private static final String CLUSTER_VIEW_LABEL = "Cluster View";
-  private static final String CLUSTER_VIEW_GRID_ID = "default_treemap_button";
-  private static final String SERVER_GROUP_GRID_ID = "servergroups_treemap_button";
-  private static final String REDUNDANCY_GRID_ID = "redundancyzones_treemap_button";
-  private static final String MEMBER_DROPDOWN_ID = "Members";
-  private static final String DATA_DROPDOWN_ID = "Data";
-
-  private static final DecimalFormat df2 = new DecimalFormat(PulseConstants.DECIMAL_FORMAT_PATTERN);
-
-  @Rule
-  public TestRule testWatcher = new TestWatcher() {
-    @Override
-    public void failed(Throwable t, Description test) {
-      takeScreenshot(test.getDisplayName());
-    }
-  };
-
-  @Rule
-  public RetryRule retryRule = new RetryRule(5);
-
-  public void takeScreenshot(String screenshotName) {
-    if (driver instanceof TakesScreenshot) {
-      File tempFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
-      try {
-        FileUtils.copyFile(tempFile, new File("build/screenshots/" + screenshotName + ".png"));
-      } catch (IOException e) {
-        // TODO handle exception
-      }
-    }
-  }
-
-
-  public static void setUpServer(String username, String password, String jsonAuthFile)
-      throws Exception {
-    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
-    jmxPropertiesFile = classLoader.getResource("test.properties").getPath();
-    path = getPulseWarPath();
-    server = Server.createServer(9999, jmxPropertiesFile, jsonAuthFile);
-
-    String host = "localhost";
-    int port = 8080;
-    String context = "/pulse";
-
-    jetty = JettyHelper.initJetty(host, port, new SSLConfig());
-    JettyHelper.addWebApplication(jetty, context, getPulseWarPath());
-    jetty.start();
-
-    pulseURL = "http://" + host + ":" + port + context;
-
-    Awaitility.await().until(() -> jetty.isStarted());
-
-    setUpWebDriver();
-    driver.get(pulseURL);
-    WebElement userNameElement = driver.findElement(By.id("user_name"));
-    WebElement passwordElement = driver.findElement(By.id("user_password"));
-    userNameElement.sendKeys(username);
-    passwordElement.sendKeys(password);
-    passwordElement.submit();
-
-    driver.get(pulseURL + "/clusterDetail.html");
-    WebElement userNameOnPulsePage =
-        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<WebElement>() {
-          @Override
-          public WebElement apply(WebDriver d) {
-            return d.findElement(By.id("userName"));
-          }
-        });
-    assertNotNull(userNameOnPulsePage);
-    driver.navigate().refresh();
-  }
-
-  private static void setUpWebDriver() {
-    DesiredCapabilities capabilities = new DesiredCapabilities();
-    capabilities.setJavascriptEnabled(true);
-    capabilities.setCapability("takesScreenshot", true);
-    capabilities.setCapability("phantomjs.page.settings.userAgent",
-        "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:16.0) Gecko/20121026 Firefox/16.0");
-
-    driver = new PhantomJSDriver(capabilities);
-    driver.manage().window().maximize();
-    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
-    driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
-  }
-
-  @AfterClass
-  public static void tearDownAfterClass() throws Exception {
-    if (driver != null) {
-      driver.close();
-      driver = null;
-    }
-    if (jetty != null) {
-      jetty.stop();
-      jetty = null;
-    }
-    if (server != null) {
-      server.stop();
-      server = null;
-    }
-  }
-
-  @Before
-  public void setup() throws Exception {
-    driver.get(pulseURL + "/clusterDetail.html");
-    // Make sure we go to the home page first
-    searchByXPathAndClick(PulseTestLocators.TopNavigation.clusterViewLinkXpath);
-  }
-
-  public static String getPulseWarPath() throws Exception {
-    String warPath = null;
-    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-    InputStream inputStream = classLoader.getResourceAsStream("GemFireVersion.properties");
-    Properties properties = new Properties();
-    properties.load(inputStream);
-    String version = properties.getProperty("Product-Version");
-    warPath = "geode-pulse-" + version + ".war";
-    String propFilePath = classLoader.getResource("GemFireVersion.properties").getPath();
-    warPath =
-        propFilePath.substring(0, propFilePath.indexOf("generated-resources")) + "libs/" + warPath;
-    return warPath;
-  }
-
-  protected void searchByLinkAndClick(String linkText) {
-    WebElement element = By.linkText(linkText).findElement(driver);
-    assertNotNull(element);
-    element.click();
-  }
-
-  protected void searchByIdAndClick(String id) {
-    WebElement element = driver.findElement(By.id(id));
-    assertNotNull(element);
-    element.click();
-  }
-
-  protected void searchByClassAndClick(String Class) {
-    WebElement element = driver.findElement(By.className(Class));
-    assertNotNull(element);
-    element.click();
-  }
-
-  protected void searchByXPathAndClick(String xpath) {
-    WebElement element = driver.findElement(By.xpath(xpath));
-    assertNotNull(element);
-    element.click();
-  }
-
-  protected void waitForElementByClassName(final String className, int seconds) {
-    WebElement linkTextOnPulsePage1 =
-        (new WebDriverWait(driver, seconds)).until(new ExpectedCondition<WebElement>() {
-          @Override
-          public WebElement apply(WebDriver d) {
-            return d.findElement(By.className(className));
-          }
-        });
-    assertNotNull(linkTextOnPulsePage1);
-  }
-
-  protected void waitForElementById(final String id, int seconds) {
-    WebElement element = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<WebElement>() {
-      @Override
-      public WebElement apply(WebDriver d) {
-        return d.findElement(By.id(id));
-      }
-    });
-    assertNotNull(element);
-  }
-
-  protected void scrollbarVerticalDownScroll() {
-    JavascriptExecutor js = (JavascriptExecutor) driver;
-    js.executeScript("javascript:window.scrollBy(250,700)");
-    WebElement pickerScroll = driver.findElement(By.className("jspDrag"));
-    WebElement pickerScrollCorner = driver.findElement(By.className("jspCorner"));
-    Actions builder = new Actions(driver);
-    Actions movePicker = builder.dragAndDrop(pickerScroll, pickerScrollCorner);
-    // pickerscroll is the web element
-    movePicker.perform();
-  }
-
-  protected void scrollbarHorizontalRightScroll() {
-    JavascriptExecutor js = (JavascriptExecutor) driver;
-    js.executeScript("javascript:window.scrollBy(250,700)");
-    WebElement pickerScroll = driver.findElement(
-        By.xpath("//div[@id='gview_queryStatisticsList']/div[3]/div/div[3]/div[2]/div"));
-    WebElement pickerScrollCorner = driver.findElement(By.className("jspCorner"));
-    Actions builder = new Actions(driver);
-    Actions movePicker = builder.dragAndDrop(pickerScroll, pickerScrollCorner);
-    // pickerscroll is the web element
-    movePicker.perform();
-  }
-
-
-  @Test
-  public void testClusterLocatorCount() throws IOException {
-    String clusterLocators = driver.findElement(By.id(CLUSTER_VIEW_LOCATORS_ID)).getText();
-
-    String totallocators = JMXProperties.getInstance().getProperty("server.S1.locatorCount");
-    assertEquals(totallocators, clusterLocators);
-  }
-
-  @Test
-  public void testClusterRegionCount() {
-    String clusterRegions = driver.findElement(By.id(CLUSTER_VIEW_REGIONS_ID)).getText();
-    String totalregions = JMXProperties.getInstance().getProperty("server.S1.totalRegionCount");
-    assertEquals(totalregions, clusterRegions);
-  }
-
-  @Test
-  public void testClusterMemberCount() {
-    String clusterMembers = driver.findElement(By.id(CLUSTER_VIEW_MEMBERS_ID)).getText();
-    String totalMembers = JMXProperties.getInstance().getProperty("server.S1.memberCount");
-    assertEquals(clusterMembers, totalMembers);
-  }
-
-  @Test
-  public void testClusterNumClient() {
-    String clusterClients = driver.findElement(By.id(CLUSTER_CLIENTS_ID)).getText();
-    String totalclients = JMXProperties.getInstance().getProperty("server.S1.numClients");
-    assertEquals(totalclients, clusterClients);
-  }
-
-  @Test
-  public void testClusterNumRunningFunction() {
-    String clusterFunctions = driver.findElement(By.id(CLUSTER_FUNCTIONS_ID)).getText();
-    String totalfunctions =
-        JMXProperties.getInstance().getProperty("server.S1.numRunningFunctions");
-    assertEquals(totalfunctions, clusterFunctions);
-  }
-
-  @Test
-  public void testClusterRegisteredCQCount() {
-    String clusterUniqueCQs = driver.findElement(By.id(CLUSTER_UNIQUECQS_ID)).getText();
-    String totaluniqueCQs = JMXProperties.getInstance().getProperty("server.S1.registeredCQCount");
-    assertEquals(totaluniqueCQs, clusterUniqueCQs);
-  }
-
-  @Test
-  public void testClusterNumSubscriptions() {
-    String clusterSubscriptions = driver.findElement(By.id(CLUSTER_SUBSCRIPTION_ID)).getText();
-    String totalSubscriptions =
-        JMXProperties.getInstance().getProperty("server.S1.numSubscriptions");
-    assertEquals(totalSubscriptions, clusterSubscriptions);
-  }
-
-  @Test
-  public void testClusterJVMPausesWidget() {
-    String clusterJVMPauses = driver.findElement(By.id(CLUSTER_GCPAUSES_ID)).getText();
-    String totalgcpauses = JMXProperties.getInstance().getProperty("server.S1.jvmPauses");
-    assertEquals(totalgcpauses, clusterJVMPauses);
-  }
-
-  @Test
-  public void testClusterAverageWritesWidget() {
-    String clusterWritePerSec = driver.findElement(By.id(CLUSTER_WRITEPERSEC_ID)).getText();
-    String totalwritepersec = JMXProperties.getInstance().getProperty("server.S1.averageWrites");
-    assertEquals(totalwritepersec, clusterWritePerSec);
-  }
-
-  @Test
-  public void testClusterAverageReadsWidget() {
-    String clusterReadPerSec = driver.findElement(By.id(CLUSTER_READPERSEC_ID)).getText();
-    String totalreadpersec = JMXProperties.getInstance().getProperty("server.S1.averageReads");
-    assertEquals(totalreadpersec, clusterReadPerSec);
-  }
-
-  @Test
-  public void testClusterQuerRequestRateWidget() {
-    String clusterQueriesPerSec = driver.findElement(By.id(CLUSTER_QUERIESPERSEC_ID)).getText();
-    String totalqueriespersec =
-        JMXProperties.getInstance().getProperty("server.S1.queryRequestRate");
-    assertEquals(totalqueriespersec, clusterQueriesPerSec);
-  }
-
-  @Test
-  public void testClusterGridViewMemberID() throws InterruptedException {
-    searchByIdAndClick("default_grid_button");
-    List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr"));
-
-    for (int memberCount = 1; memberCount < elements.size(); memberCount++) {
-      String memberId = driver
-          .findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberCount + 1) + "]/td"))
-          .getText();
-      String propertMemeberId =
-          JMXProperties.getInstance().getProperty("member.M" + memberCount + ".id");
-      assertEquals(memberId, propertMemeberId);
-    }
-  }
-
-  @Test
-  public void testClusterGridViewMemberName() {
-    searchByIdAndClick("default_grid_button");
-    List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr"));
-    for (int memberNameCount = 1; memberNameCount < elements.size(); memberNameCount++) {
-      String gridMemberName = driver
-          .findElement(
-              By.xpath("//table[@id='memberList']/tbody/tr[" + (memberNameCount + 1) + "]/td[2]"))
-          .getText();
-      String memberName =
-          JMXProperties.getInstance().getProperty("member.M" + memberNameCount + ".member");
-      assertEquals(gridMemberName, memberName);
-    }
-  }
-
-
-  @Test
-  public void testClusterGridViewMemberHost() {
-    searchByIdAndClick("default_grid_button");
-    List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr"));
-    for (int memberHostCount = 1; memberHostCount < elements.size(); memberHostCount++) {
-      String MemberHost = driver
-          .findElement(
-              By.xpath("//table[@id='memberList']/tbody/tr[" + (memberHostCount + 1) + "]/td[3]"))
-          .getText();
-      String gridMemberHost =
-          JMXProperties.getInstance().getProperty("member.M" + memberHostCount + ".host");
-      assertEquals(gridMemberHost, MemberHost);
-    }
-  }
-
-  @Test
-  public void testClusterGridViewHeapUsage() {
-    searchByIdAndClick("default_grid_button");
-    for (int i = 1; i <= 3; i++) {
-      Float HeapUsage = Float.parseFloat(
-          driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (i + 1) + "]/td[5]"))
-              .getText());
-      Float gridHeapUsagestring =
-          Float.parseFloat(JMXProperties.getInstance().getProperty("member.M" + i + ".UsedMemory"));
-      assertEquals(gridHeapUsagestring, HeapUsage);
-    }
-  }
-
-  @Test
-  public void testClusterGridViewCPUUsage() throws Exception {
-    searchByIdAndClick("default_grid_button");
-    for (int i = 1; i <= 3; i++) {
-      String CPUUsage =
-          driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (i + 1) + "]/td[6]"))
-              .getText();
-      String gridCPUUsage = JMXProperties.getInstance().getProperty("member.M" + i + ".cpuUsage");
-      gridCPUUsage = gridCPUUsage.trim();
-      assertEquals(gridCPUUsage, CPUUsage);
-    }
-  }
-
-
-  public void testRgraphWidget() throws InterruptedException {
-    searchByIdAndClick("default_rgraph_button");
-    searchByIdAndClick("h1");
-    searchByIdAndClick("M1");
-  }
-
-  @Test
-  @Ignore("ElementNotVisible with phantomJS")
-  public void testMemberTotalRegionCount() throws InterruptedException {
-    testRgraphWidget();
-    String RegionCount = driver.findElement(By.id(MEMBER_VIEW_REGION_ID)).getText();
-    String memberRegionCount =
-        JMXProperties.getInstance().getProperty("member.M1.totalRegionCount");
-    assertEquals(memberRegionCount, RegionCount);
-  }
-
-  @Test
-  public void testMemberNumThread() throws InterruptedException {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    String ThreadCount = driver.findElement(By.id(MEMBER_VIEW_THREAD_ID)).getText();
-    String memberThreadCount = JMXProperties.getInstance().getProperty("member.M1.numThreads");
-    assertEquals(memberThreadCount, ThreadCount);
-  }
-
-  @Test
-  public void testMemberTotalFileDescriptorOpen() throws InterruptedException {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    String SocketCount = driver.findElement(By.id(MEMBER_VIEW_SOCKETS_ID)).getText();
-    String memberSocketCount =
-        JMXProperties.getInstance().getProperty("member.M1.totalFileDescriptorOpen");
-    assertEquals(memberSocketCount, SocketCount);
-  }
-
-  @Test
-  public void testMemberLoadAverage() throws InterruptedException {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    String LoadAvg = driver.findElement(By.id(MEMBER_VIEW_LOADAVG_ID)).getText();
-    String memberLoadAvg = JMXProperties.getInstance().getProperty("member.M1.loadAverage");
-    assertEquals(df2.format(Double.valueOf(memberLoadAvg)), LoadAvg);
-  }
-
-  @Ignore("WIP") // May be useful in near future
-  @Test
-  public void testOffHeapFreeSize() {
-
-    String OffHeapFreeSizeString =
-        driver.findElement(By.id(MEMBER_VIEW_OFFHEAPFREESIZE_ID)).getText();
-    String OffHeapFreeSizetemp = OffHeapFreeSizeString.replaceAll("[a-zA-Z]", "");
-    float OffHeapFreeSize = Float.parseFloat(OffHeapFreeSizetemp);
-    float memberOffHeapFreeSize =
-        Float.parseFloat(JMXProperties.getInstance().getProperty("member.M1.OffHeapFreeSize"));
-    if (memberOffHeapFreeSize < 1048576) {
-      memberOffHeapFreeSize = memberOffHeapFreeSize / 1024;
-
-    } else if (memberOffHeapFreeSize < 1073741824) {
-      memberOffHeapFreeSize = memberOffHeapFreeSize / 1024 / 1024;
-    } else {
-      memberOffHeapFreeSize = memberOffHeapFreeSize / 1024 / 1024 / 1024;
-    }
-    memberOffHeapFreeSize =
-        Float.parseFloat(new DecimalFormat("##.##").format(memberOffHeapFreeSize));
-    assertEquals(memberOffHeapFreeSize, OffHeapFreeSize);
-
-  }
-
-  @Ignore("WIP") // May be useful in near future
-  @Test
-  public void testOffHeapUsedSize() throws InterruptedException {
-
-    String OffHeapUsedSizeString =
-        driver.findElement(By.id(MEMBER_VIEW_OFFHEAPUSEDSIZE_ID)).getText();
-    String OffHeapUsedSizetemp = OffHeapUsedSizeString.replaceAll("[a-zA-Z]", "");
-    float OffHeapUsedSize = Float.parseFloat(OffHeapUsedSizetemp);
-    float memberOffHeapUsedSize =
-        Float.parseFloat(JMXProperties.getInstance().getProperty("member.M1.OffHeapUsedSize"));
-    if (memberOffHeapUsedSize < 1048576) {
-      memberOffHeapUsedSize = memberOffHeapUsedSize / 1024;
-
-    } else if (memberOffHeapUsedSize < 1073741824) {
-      memberOffHeapUsedSize = memberOffHeapUsedSize / 1024 / 1024;
-    } else {
-      memberOffHeapUsedSize = memberOffHeapUsedSize / 1024 / 1024 / 1024;
-    }
-    memberOffHeapUsedSize =
-        Float.parseFloat(new DecimalFormat("##.##").format(memberOffHeapUsedSize));
-    assertEquals(memberOffHeapUsedSize, OffHeapUsedSize);
-  }
-
-  @Test
-  public void testMemberJVMPauses() throws Exception {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    String JVMPauses = driver.findElement(By.id(MEMBER_VIEW_JVMPAUSES_ID)).getText();
-    String memberGcPausesAvg = JMXProperties.getInstance().getProperty("member.M1.JVMPauses");
-    assertEquals(memberGcPausesAvg, JVMPauses);
-  }
-
-  @Test
-  public void testMemberCPUUsage() {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    String CPUUsagevalue = driver.findElement(By.id(MEMBER_VIEW_CPUUSAGE_ID)).getText();
-    String memberCPUUsage = JMXProperties.getInstance().getProperty("member.M1.cpuUsage");
-    assertEquals(memberCPUUsage, CPUUsagevalue);
-  }
-
-  @Test // difference between UI and properties file
-  public void testMemberAverageReads() {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    float ReadPerSec =
-        Float.parseFloat(driver.findElement(By.id(MEMBER_VIEW_READPERSEC_ID)).getText());
-    float memberReadPerSec =
-        Float.parseFloat(JMXProperties.getInstance().getProperty("member.M1.averageReads"));
-    memberReadPerSec = Float.parseFloat(new DecimalFormat("##.##").format(memberReadPerSec));
-    assertEquals(memberReadPerSec, ReadPerSec, 0.001);
-  }
-
-  @Test
-  @Ignore("ElementNotVisible with phantomJS")
-  public void testMemberAverageWrites() throws InterruptedException {
-    testRgraphWidget();
-    String WritePerSec = driver.findElement(By.id(MEMBER_VIEW_WRITEPERSEC_ID)).getText();
-    String memberWritePerSec = JMXProperties.getInstance().getProperty("member.M1.averageWrites");
-    assertEquals(memberWritePerSec, WritePerSec);
-  }
-
-
-  @Test
-  @Ignore("ElementNotVisible with phantomJS")
-  public void testMemberGridViewData() throws InterruptedException {
-    testRgraphWidget();
-    searchByXPathAndClick(PulseTestLocators.MemberDetailsView.gridButtonXpath);
-    // get the number of rows on the grid
-    List<WebElement> noOfRows =
-        driver.findElements(By.xpath("//table[@id='memberRegionsList']/tbody/tr"));
-    String MemberRegionName = driver
-        .findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[1]")).getText();
-    String memberRegionName = JMXProperties.getInstance().getProperty("region.R1.name");
-    assertEquals(memberRegionName, MemberRegionName);
-
-    String MemberRegionType = driver
-        .findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[2]")).getText();
-    String memberRegionType = JMXProperties.getInstance().getProperty("region.R1.regionType");
-    assertEquals(memberRegionType, MemberRegionType);
-
-    String MemberRegionEntryCount = driver
-        .findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[3]")).getText();
-    String memberRegionEntryCount =
-        JMXProperties.getInstance().getProperty("regionOnMember./R1.M1.entryCount");
-    assertEquals(memberRegionEntryCount, MemberRegionEntryCount);
-  }
-
-  @Test
-  public void testDropDownList() throws InterruptedException {
-    searchByIdAndClick("default_grid_button");
-    searchByIdAndClick("M1&M1");
-    searchByIdAndClick("memberName");
-    searchByLinkAndClick("M3");
-    searchByIdAndClick("memberName");
-    searchByLinkAndClick("M2");
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewRegionName() throws InterruptedException {
-    searchByLinkAndClick(DATA_VIEW_LABEL);
-    Thread.sleep(7000);
-    searchByIdAndClick("default_grid_button");
-    String regionName = driver.findElement(By.id(REGION_NAME_LABEL)).getText();
-    String dataviewregionname = JMXProperties.getInstance().getProperty("region.R1.name");
-    assertEquals(dataviewregionname, regionName);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewRegionPath() {
-    String regionPath = driver.findElement(By.id(REGION_PATH_LABEL)).getText();
-    String dataviewregionpath = JMXProperties.getInstance().getProperty("region.R1.fullPath");
-    assertEquals(dataviewregionpath, regionPath);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewRegionType() {
-    String regionType = driver.findElement(By.id(REGION_TYPE_LABEL)).getText();
-    String dataviewregiontype = JMXProperties.getInstance().getProperty("region.R1.regionType");
-    assertEquals(dataviewregiontype, regionType);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewEmptyNodes() {
-    String regionEmptyNodes = driver.findElement(By.id(DATA_VIEW_EMPTYNODES)).getText();
-    String dataviewEmptyNodes = JMXProperties.getInstance().getProperty("region.R1.emptyNodes");
-    assertEquals(dataviewEmptyNodes, regionEmptyNodes);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewSystemRegionEntryCount() {
-    String regionEntryCount = driver.findElement(By.id(DATA_VIEW_ENTRYCOUNT)).getText();
-    String dataviewEntryCount =
-        JMXProperties.getInstance().getProperty("region.R1.systemRegionEntryCount");
-    assertEquals(dataviewEntryCount, regionEntryCount);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewPersistentEnabled() {
-    String regionPersistence = driver.findElement(By.id(REGION_PERSISTENCE_LABEL)).getText();
-    String dataviewregionpersistence =
-        JMXProperties.getInstance().getProperty("region.R1.persistentEnabled");
-    assertEquals(dataviewregionpersistence, regionPersistence);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewDiskWritesRate() {
-    String regionWrites = driver.findElement(By.id(DATA_VIEW_WRITEPERSEC)).getText();
-    String dataviewRegionWrites =
-        JMXProperties.getInstance().getProperty("region.R1.diskWritesRate");
-    assertEquals(dataviewRegionWrites, regionWrites);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewDiskReadsRate() {
-    String regionReads = driver.findElement(By.id(DATA_VIEW_READPERSEC)).getText();
-    String dataviewRegionReads = JMXProperties.getInstance().getProperty("region.R1.diskReadsRate");
-    assertEquals(dataviewRegionReads, regionReads);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewDiskUsage() {
-    String regionMemoryUsed = driver.findElement(By.id(DATA_VIEW_USEDMEMORY)).getText();
-    String dataviewMemoryUsed = JMXProperties.getInstance().getProperty("region.R1.diskUsage");
-    assertEquals(dataviewMemoryUsed, regionMemoryUsed);
-    searchByLinkAndClick(QUERY_STATISTICS_LABEL);
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataViewGridValue() {
-    String DataViewRegionName = driver.findElement(By.xpath("//*[id('6')/x:td[1]]")).getText();
-    String dataViewRegionName = JMXProperties.getInstance().getProperty("region.R1.name");
-    assertEquals(dataViewRegionName, DataViewRegionName);
-
-    String DataViewRegionType = driver.findElement(By.xpath("//*[id('6')/x:td[2]")).getText();
-    String dataViewRegionType = JMXProperties.getInstance().getProperty("region.R2.regionType");
-    assertEquals(dataViewRegionType, DataViewRegionType);
-
-    String DataViewEntryCount = driver.findElement(By.xpath("//*[id('6')/x:td[3]")).getText();
-    String dataViewEntryCount =
-        JMXProperties.getInstance().getProperty("region.R2.systemRegionEntryCount");
-    assertEquals(dataViewEntryCount, DataViewEntryCount);
-
-    String DataViewEntrySize = driver.findElement(By.xpath("//*[id('6')/x:td[4]")).getText();
-    String dataViewEntrySize = JMXProperties.getInstance().getProperty("region.R2.entrySize");
-    assertEquals(dataViewEntrySize, DataViewEntrySize);
-
-  }
-
-
-  public void loadDataBrowserpage() {
-    searchByLinkAndClick(DATA_BROWSER_LABEL);
-    // Thread.sleep(7000);
-  }
-
-  @Test
-  public void testDataBrowserRegionName() throws InterruptedException {
-    loadDataBrowserpage();
-    String DataBrowserRegionName1 = driver.findElement(By.id(DATA_BROWSER_REGIONName1)).getText();
-    String databrowserRegionNametemp1 = JMXProperties.getInstance().getProperty("region.R1.name");
-    String databrowserRegionName1 = databrowserRegionNametemp1.replaceAll("[\\/]", "");
-    assertEquals(databrowserRegionName1, DataBrowserRegionName1);
-
-    String DataBrowserRegionName2 = driver.findElement(By.id(DATA_BROWSER_REGIONName2)).getText();
-    String databrowserRegionNametemp2 = JMXProperties.getInstance().getProperty("region.R2.name");
-    String databrowserRegionName2 = databrowserRegionNametemp2.replaceAll("[\\/]", "");
-    assertEquals(databrowserRegionName2, DataBrowserRegionName2);
-
-    String DataBrowserRegionName3 = driver.findElement(By.id(DATA_BROWSER_REGIONName3)).getText();
-    String databrowserRegionNametemp3 = JMXProperties.getInstance().getProperty("region.R3.name");
-    String databrowserRegionName3 = databrowserRegionNametemp3.replaceAll("[\\/]", "");
-    assertEquals(databrowserRegionName3, DataBrowserRegionName3);
-
-  }
-
-  @Test
-  public void testDataBrowserRegionMembersVerificaition() throws InterruptedException {
-    loadDataBrowserpage();
-    searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
-    String DataBrowserMember1Name1 =
-        driver.findElement(By.xpath("//label[@for='Member0']")).getText();
-    String DataBrowserMember1Name2 =
-        driver.findElement(By.xpath("//label[@for='Member1']")).getText();
-    String DataBrowserMember1Name3 =
-        driver.findElement(By.xpath("//label[@for='Member2']")).getText();
-    String databrowserMember1Names = JMXProperties.getInstance().getProperty("region.R1.members");
-
-    String databrowserMember1Names1 = databrowserMember1Names.substring(0, 2);
-    assertEquals(databrowserMember1Names1, DataBrowserMember1Name1);
-
-    String databrowserMember1Names2 = databrowserMember1Names.substring(3, 5);
-    assertEquals(databrowserMember1Names2, DataBrowserMember1Name2);
-
-    String databrowserMember1Names3 = databrowserMember1Names.substring(6, 8);
-    assertEquals(databrowserMember1Names3, DataBrowserMember1Name3);
-    searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
-
-    searchByIdAndClick(DATA_BROWSER_REGION2_CHECKBOX);
-    String DataBrowserMember2Name1 =
-        driver.findElement(By.xpath("//label[@for='Member0']")).getText();
-    String DataBrowserMember2Name2 =
-        driver.findElement(By.xpath("//label[@for='Member1']")).getText();
-    String databrowserMember2Names = JMXProperties.getInstance().getProperty("region.R2.members");
-
-    String databrowserMember2Names1 = databrowserMember2Names.substring(0, 2);
-    assertEquals(databrowserMember2Names1, DataBrowserMember2Name1);
-
-    String databrowserMember2Names2 = databrowserMember2Names.substring(3, 5);
-    assertEquals(databrowserMember2Names2, DataBrowserMember2Name2);
-    searchByIdAndClick(DATA_BROWSER_REGION2_CHECKBOX);
-
-    searchByIdAndClick(DATA_BROWSER_REGION3_CHECKBOX);
-    String DataBrowserMember3Name1 =
-        driver.findElement(By.xpath("//label[@for='Member0']")).getText();
-    String DataBrowserMember3Name2 =
-        driver.findElement(By.xpath("//label[@for='Member1']")).getText();
-    String databrowserMember3Names = JMXProperties.getInstance().getProperty("region.R3.members");
-
-    String databrowserMember3Names1 = databrowserMember3Names.substring(0, 2);
-    assertEquals(databrowserMember3Names1, DataBrowserMember3Name1);
-
-    String databrowserMember3Names2 = databrowserMember3Names.substring(3, 5);
-    assertEquals(databrowserMember3Names2, DataBrowserMember3Name2);
-    searchByIdAndClick(DATA_BROWSER_REGION3_CHECKBOX);
-  }
-
-  @Test
-  public void testDataBrowserColocatedRegions() throws InterruptedException {
-    loadDataBrowserpage();
-    String databrowserMemberNames1 = JMXProperties.getInstance().getProperty("region.R1.members");
-    String databrowserMemberNames2 = JMXProperties.getInstance().getProperty("region.R2.members");
-    String databrowserMemberNames3 = JMXProperties.getInstance().getProperty("region.R3.members");
-
-    if ((databrowserMemberNames1.matches(databrowserMemberNames2 + "(.*)"))) {
-      if ((databrowserMemberNames1.matches(databrowserMemberNames3 + "(.*)"))) {
-        if ((databrowserMemberNames2.matches(databrowserMemberNames3 + "(.*)"))) {
-          System.out.println("R1, R2 and R3 are colocated regions");
-        }
-      }
-    }
-    searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
-    searchByLinkAndClick(DATA_BROWSER_COLOCATED_REGION);
-    String DataBrowserColocatedRegion1 =
-        driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME1)).getText();
-    String DataBrowserColocatedRegion2 =
-        driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME2)).getText();
-    String DataBrowserColocatedRegion3 =
-        driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME3)).getText();
-
-    String databrowserColocatedRegiontemp1 =
-        JMXProperties.getInstance().getProperty("region.R1.name");
-    String databrowserColocatedRegion1 = databrowserColocatedRegiontemp1.replaceAll("[\\/]", "");
-
-    String databrowserColocatedRegiontemp2 =
-        JMXProperties.getInstance().getProperty("region.R2.name");
-    String databrowserColocatedRegion2 = databrowserColocatedRegiontemp2.replaceAll("[\\/]", "");
-
-    String databrowserColocatedRegiontemp3 =
-        JMXProperties.getInstance().getProperty("region.R3.name");
-    String databrowserColocatedRegion3 = databrowserColocatedRegiontemp3.replaceAll("[\\/]", "");
-
-    assertEquals(databrowserColocatedRegion1, DataBrowserColocatedRegion1);
-    assertEquals(databrowserColocatedRegion2, DataBrowserColocatedRegion2);
-    assertEquals(databrowserColocatedRegion3, DataBrowserColocatedRegion3);
-
-  }
-
-  @Ignore("WIP") // clusterDetails element not found on Data Browser page. No assertions in test
-  @Test
-  public void testDataBrowserQueryValidation() throws IOException, InterruptedException {
-    loadDataBrowserpage();
-    WebElement textArea = driver.findElement(By.id("dataBrowserQueryText"));
-    textArea.sendKeys("query1");
-    WebElement executeButton = driver.findElement(By.id("btnExecuteQuery"));
-    executeButton.click();
-    String QueryResultHeader1 =
-        driver.findElement(By.xpath("//div[@id='clusterDetails']/div/div/span[@class='n-title']"))
-            .getText();
-    double count = 0, countBuffer = 0, countLine = 0;
-    String lineNumber = "";
-    String filePath =
-        "E:\\springsource\\springsourceWS\\Pulse-Cedar\\src\\main\\resources\\testQueryResultSmall.txt";
-    BufferedReader br;
-    String line = "";
-    br = new BufferedReader(new FileReader(filePath));
-    while ((line = br.readLine()) != null) {
-      countLine++;
-      String[] words = line.split(" ");
-
-      for (String word : words) {
-        if (word.equals(QueryResultHeader1)) {
-          count++;
-          countBuffer++;
-        }
-      }
-    }
-  }
-
-  public void testTreeMapPopUpData(String S1, String gridIcon) {
-    for (int i = 1; i <= 3; i++) {
-      searchByLinkAndClick(CLUSTER_VIEW_LABEL);
-      if (gridIcon.equals(SERVER_GROUP_GRID_ID)) {
-        WebElement ServerGroupRadio =
-            driver.findElement(By.xpath("//label[@for='radio-servergroups']"));
-        ServerGroupRadio.click();
-      }
-      if (gridIcon.equals(REDUNDANCY_GRID_ID)) {
-        WebElement ServerGroupRadio =
-            driver.findElement(By.xpath("//label[@for='radio-redundancyzones']"));
-        ServerGroupRadio.click();
-      }
-      searchByIdAndClick(gridIcon);
-      WebElement TreeMapMember =
-          driver.findElement(By.xpath("//div[@id='" + S1 + "M" + (i) + "']/div"));
-      Actions builder = new Actions(driver);
-      builder.clickAndHold(TreeMapMember).perform();
-      int j = 1;
-      String CPUUsageM1temp = driver
-          .findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div/div[2]/div")).getText();
-      String CPUUsageM1 = CPUUsageM1temp.replaceAll("[\\%]", "");
-      String cpuUsageM1 = JMXProperties.getInstance().getProperty("member.M" + (i) + ".cpuUsage");
-      assertEquals(cpuUsageM1, CPUUsageM1);
-
-      String MemoryUsageM1temp = driver
-          .findElement(
-              By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 1) + "]/div[2]/div"))
-          .getText();
-      String MemoryUsageM1 = MemoryUsageM1temp.replaceAll("MB", "");
-      String memoryUsageM1 =
-          JMXProperties.getInstance().getProperty("member.M" + (i) + ".UsedMemory");
-      assertEquals(memoryUsageM1, MemoryUsageM1);
-
-      String LoadAvgM1 = driver
-          .findElement(
-              By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 2) + "]/div[2]/div"))
-          .getText();
-      String loadAvgM1 = JMXProperties.getInstance().getProperty("member.M" + (i) + ".loadAverage");
-      assertEquals(df2.format(Double.valueOf(loadAvgM1)), LoadAvgM1);
-
-      String ThreadsM1 = driver
-          .findElement(
-              By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 3) + "]/div[2]/div"))
-          .getText();
-      String threadsM1 = JMXProperties.getInstance().getProperty("member.M" + (i) + ".numThreads");
-      assertEquals(threadsM1, ThreadsM1);
-
-      String SocketsM1 = driver
-          .findElement(
-              By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 4) + "]/div[2]/div"))
-          .getText();
-      String socketsM1 =
-          JMXProperties.getInstance().getProperty("member.M" + (i) + ".totalFileDescriptorOpen");
-      assertEquals(socketsM1, SocketsM1);
-      builder.moveToElement(TreeMapMember).release().perform();
-    }
-  }
-
-  @Test
-  public void testTopologyPopUpData() {
-    testTreeMapPopUpData("", CLUSTER_VIEW_GRID_ID);
-  }
-
-  @Test
-  public void testServerGroupTreeMapPopUpData() {
-    testTreeMapPopUpData("SG1(!)", SERVER_GROUP_GRID_ID);
-  }
-
-  @Test
-  public void testDataViewTreeMapPopUpData() {
-    searchByLinkAndClick(CLUSTER_VIEW_LABEL);
-    searchByLinkAndClick(DATA_DROPDOWN_ID);
-    WebElement TreeMapMember = driver.findElement(By.id("GraphTreeMapClusterData-canvas"));
-    Actions builder = new Actions(driver);
-    builder.clickAndHold(TreeMapMember).perform();
-    String RegionType = driver
-        .findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div/div[2]/div")).getText();
-    String regionType = JMXProperties.getInstance().getProperty("region.R2.regionType");
-    assertEquals(regionType, RegionType);
-
-    String EntryCount = driver
-        .findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[2]/div[2]/div")).getText();
-    String entryCount = JMXProperties.getInstance().getProperty("region.R2.systemRegionEntryCount");
-    assertEquals(entryCount, EntryCount);
-
-    String EntrySizetemp = driver
-        .findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[3]/div[2]/div")).getText();
-    float EntrySize = Float.parseFloat(EntrySizetemp);
-    float entrySize =
-        Float.parseFloat(JMXProperties.getInstance().getProperty("region.R2.entrySize"));
-    entrySize = entrySize / 1024 / 1024;
-    entrySize = Float.parseFloat(new DecimalFormat("##.####").format(entrySize));
-    assertEquals(entrySize, EntrySize, 0.001);
-    builder.moveToElement(TreeMapMember).release().perform();
-  }
-
-  @Test
-  public void testRegionViewTreeMapPopUpData() {
-    searchByLinkAndClick(CLUSTER_VIEW_LABEL);
-    searchByLinkAndClick(DATA_DROPDOWN_ID);
-    WebElement TreeMapMember = driver.findElement(By.id("GraphTreeMapClusterData-canvas"));
-    TreeMapMember.click();
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testNumberOfRegions() throws InterruptedException {
-
-    driver.findElement(By.xpath("//a[text()='Data Browser']")).click();
-
-    Thread.sleep(1000);
-    List<WebElement> regionList = driver.findElements(By.xpath("//ul[@id='treeDemo']/li"));
-    String regions = JMXProperties.getInstance().getProperty("regions");
-    String[] regionName = regions.split(" ");
-    for (String string : regionName) {
-    }
-    // JMXProperties.getInstance().getProperty("region.R1.regionType");
-    int i = 1;
-    for (WebElement webElement : regionList) {
-      // webElement.getAttribute(arg0)
-      i++;
-    }
-
-    driver.findElement(By.id("treeDemo_1_check")).click();
-
-    List<WebElement> memeberList = driver.findElements(By.xpath("//ul[@id='membersList']/li"));
-    int j = 0;
-    for (WebElement webElement : memeberList) {
-      j++;
-    }
-  }
-
-  @Ignore("WIP")
-  @Test
-  public void testDataBrowser() {
-
-    driver.findElement(By.linkText("Data Browser")).click();
-    // WebElement dataBrowserLabel = driver.findElement(By.xpath(""));
-    WebDriverWait wait = new WebDriverWait(driver, 20);
-    wait.until(ExpectedConditions
-        .visibilityOf(driver.findElement(By.xpath("//label[text()='Data Browser']"))));
-
-    // Verify all elements must be displayed on data browser screen
-    assertTrue(driver.findElement(By.xpath("//a[text()='Data Regions']")).isDisplayed());
-    assertTrue(driver.findElement(By.id("linkColocatedRegions")).isDisplayed());
-    assertTrue(driver.findElement(By.linkText("All Regions")).isDisplayed());
-
-    assertTrue(driver.findElement(By.xpath("//a[text()='Region Members']")).isDisplayed());
-
-    assertTrue(driver.findElement(By.xpath("//a[text()='Queries']")).isDisplayed());
-    assertTrue(driver.findElement(By.xpath("//label[text()='Query Editor']")).isDisplayed());
-    assertTrue(driver.findElement(By.xpath("//label[text()='Result']")).isDisplayed());
-    assertTrue(driver.findElement(By.xpath("//input[@value='Export Result']")).isDisplayed());
-    assertTrue(driver.findElement(By.id("btnExecuteQuery")).isDisplayed());
-    assertTrue(driver.findElement(By.xpath("//input[@value='Clear']")).isDisplayed());
-    assertTrue(driver.findElement(By.id("dataBrowserQueryText")).isDisplayed());
-
-    assertTrue(driver.findElement(By.id("historyIcon")).isDisplayed());
-
-    // Actual query execution
-
-    driver.findElement(By.id("dataBrowserQueryText")).sendKeys("Query1");
-
-    // Assert data regions are displayed
-    assertTrue(driver.findElement(By.id("treeDemo_1")).isDisplayed());
-  }
-
-  @Test
-  public void userCannotGetToPulseDetails() {
-    driver.get(pulseURL + "/pulse/pulseVersion");
-
-    assertTrue(driver.getPageSource().contains("sourceRevision"));
-  }
-}

http://git-wip-us.apache.org/repos/asf/geode/blob/190f3a21/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
index 3ac2555..4d255c8 100644
--- a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
+++ b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAnonymousUserTest.java
@@ -23,10 +23,14 @@ import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import com.jayway.awaitility.Awaitility;
+import org.apache.geode.tools.pulse.tests.rules.ServerRule;
+import org.apache.geode.tools.pulse.tests.rules.WebDriverRule;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
+import org.junit.ClassRule;
 import org.junit.FixMethodOrder;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runners.MethodSorters;
@@ -48,31 +52,25 @@ import org.apache.geode.tools.pulse.tests.Server;
 @FixMethodOrder(MethodSorters.JVM)
 public class PulseAnonymousUserTest {
 
-  private static String path;
+  @ClassRule
+  public static ServerRule serverRule = new ServerRule("pulse-auth.json");
 
-  private static org.eclipse.jetty.server.Server jetty = null;
-  private static Server server = null;
-  private static String pulseURL = null;
-  public static WebDriver driver;
-
-  @BeforeClass
-  public static void beforeClassSetup() throws Exception {
-    setUpServer("pulseUser", "12345", "pulse-auth.json");
-  }
+  @Rule
+  public WebDriverRule webDriverRule = new WebDriverRule(serverRule.getPulseURL());
 
   @Before
   public void setup() {
-    driver.get(pulseURL + "/clusterDetail.html");
+    webDriverRule.getDriver().get(serverRule.getPulseURL() + "/clusterDetail.html");
   }
 
   @Test
   public void userCanGetToPulseLoginPage() {
-    driver.get(pulseURL + "/Login.html");
-    System.err.println("Pulse url: " + pulseURL);
-    System.err.println(driver.getPageSource().toString());
+    webDriverRule.getDriver().get(serverRule.getPulseURL() + "/Login.html");
+    System.err.println("Pulse url: " + serverRule.getPulseURL());
+    System.err.println(webDriverRule.getDriver().getPageSource().toString());
 
-    WebElement userNameElement = driver.findElement(By.id("user_name"));
-    WebElement passwordElement = driver.findElement(By.id("user_password"));
+    WebElement userNameElement = webDriverRule.getDriver().findElement(By.id("user_name"));
+    WebElement passwordElement = webDriverRule.getDriver().findElement(By.id("user_password"));
 
     assertThat(userNameElement).isNotNull();
     assertThat(passwordElement).isNotNull();
@@ -80,70 +78,8 @@ public class PulseAnonymousUserTest {
 
   @Test
   public void userCannotGetToPulseDetails() {
-    driver.get(pulseURL + "/pulse/pulseVersion");
-
-    assertThat(driver.getPageSource()).doesNotContain("sourceRevision");
-  }
-
-  @AfterClass
-  public static void tearDownAfterClass() throws Exception {
-    driver.close();
-    jetty.stop();
-  }
-
-
-  public static void setUpServer(String username, String password, String jsonAuthFile)
-      throws Exception {
-    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
-    final String jmxPropertiesFile = classLoader.getResource("test.properties").getPath();
-    path = getPulseWarPath();
-    server = Server.createServer(9999, jmxPropertiesFile, jsonAuthFile);
-
-    String host = "localhost";
-    int port = 8080;
-    String context = "/pulse";
-
-    jetty = JettyHelper.initJetty(host, port, new SSLConfig());
-    JettyHelper.addWebApplication(jetty, context, getPulseWarPath());
-    jetty.start();
-
-    pulseURL = "http://" + host + ":" + port + context;
-
-    Awaitility.await().until(() -> jetty.isStarted());
-
-    setUpWebDriver();
-  }
-
-  private static void setUpWebDriver() {
-    DesiredCapabilities capabilities = new DesiredCapabilities();
-    capabilities.setJavascriptEnabled(true);
-    capabilities.setCapability("takesScreenshot", true);
-    capabilities.setCapability("phantomjs.page.settings.userAgent",
-        "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:16.0) Gecko/20121026 Firefox/16.0");
-
-    driver = new PhantomJSDriver(capabilities);
-    driver.manage().window().maximize();
-    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
-  }
-
-  public static String getPulseWarPath() throws Exception {
-    String warPath = null;
-    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-    InputStream inputStream = classLoader.getResourceAsStream("GemFireVersion.properties");
-    Properties properties = new Properties();
-    properties.load(inputStream);
-    String version = properties.getProperty("Product-Version");
-    warPath = "geode-pulse-" + version + ".war";
-    String propFilePath = classLoader.getResource("GemFireVersion.properties").getPath();
-    warPath =
-        propFilePath.substring(0, propFilePath.indexOf("generated-resources")) + "libs/" + warPath;
-    return warPath;
-  }
+    webDriverRule.getDriver().get(serverRule.getPulseURL() + "/pulse/pulseVersion");
 
-  protected void searchByXPathAndClick(String xpath) {
-    WebElement element = driver.findElement(By.xpath(xpath));
-    assertThat(element).isNotNull();
-    element.click();
+    assertThat(webDriverRule.getDriver().getPageSource()).doesNotContain("sourceRevision");
   }
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/190f3a21/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAuthTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAuthTest.java b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAuthTest.java
index 662e6cc..fc9719d 100644
--- a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAuthTest.java
+++ b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAuthTest.java
@@ -16,17 +16,41 @@
 package org.apache.geode.tools.pulse.tests.ui;
 
 import org.apache.geode.test.junit.categories.UITest;
+import org.apache.geode.tools.pulse.tests.rules.ServerRule;
+import org.apache.geode.tools.pulse.tests.rules.WebDriverRule;
+import org.junit.Before;
 import org.junit.BeforeClass;
+import org.junit.ClassRule;
 import org.junit.FixMethodOrder;
+import org.junit.Rule;
 import org.junit.experimental.categories.Category;
 import org.junit.runners.MethodSorters;
+import org.openqa.selenium.WebDriver;
 
 @Category(UITest.class)
 @FixMethodOrder(MethodSorters.JVM)
-public class PulseAuthTest extends PulseAbstractTest {
+public class PulseAuthTest extends PulseBase {
 
-  @BeforeClass
-  public static void beforeClassSetup() throws Exception {
-    setUpServer("pulseUser", "12345", "pulse-auth.json");
+  @ClassRule
+  public static ServerRule serverRule = new ServerRule("pulse-auth.json");
+
+  @Rule
+  public WebDriverRule webDriverRule =
+      new WebDriverRule("pulseUser", "12345", serverRule.getPulseURL());
+
+  @Override
+  public WebDriver getWebDriver() {
+    return webDriverRule.getDriver();
+  }
+
+  @Override
+  public String getPulseURL() {
+    return serverRule.getPulseURL();
   }
+
+  @Before
+  public void setupPulseTestUtils() {
+    PulseTestUtils.setDriverProvider(() -> webDriverRule.getDriver());
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/geode/blob/190f3a21/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAutomatedTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAutomatedTest.java b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAutomatedTest.java
index 7957f02..8df0543 100644
--- a/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAutomatedTest.java
+++ b/geode-pulse/src/test/java/org/apache/geode/tools/pulse/tests/ui/PulseAutomatedTest.java
@@ -27,24 +27,48 @@ import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.List;
 
+import org.apache.geode.tools.pulse.tests.DataBrowserResultLoader;
+import org.apache.geode.tools.pulse.tests.rules.ServerRule;
+import org.apache.geode.tools.pulse.tests.rules.WebDriverRule;
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Before;
+import org.junit.ClassRule;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 
 import org.apache.geode.test.junit.categories.UITest;
 import org.apache.geode.tools.pulse.tests.PulseTestData;
 import org.apache.geode.tools.pulse.tests.PulseTestLocators;
+import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.*;
 
 @Category(UITest.class)
-public class PulseAutomatedTest extends PulseAbstractTest {
+public class PulseAutomatedTest extends PulseBase {
 
-  @BeforeClass
-  public static void beforeClassSetup() throws Exception {
-    setUpServer("pulseUser", "12345", "pulse-auth.json");
+  @ClassRule
+  public static ServerRule serverRule = new ServerRule("pulse-auth.json");
+
+  @Rule
+  public WebDriverRule webDriverRule =
+      new WebDriverRule("pulseUser", "12345", serverRule.getPulseURL());
+
+  @Override
+  public WebDriver getWebDriver() {
+    return webDriverRule.getDriver();
+  }
+
+  @Override
+  public String getPulseURL() {
+    return serverRule.getPulseURL();
+  }
+
+  @Before
+  public void setupPulseTestUtils() {
+    PulseTestUtils.setDriverProvider(() -> webDriverRule.getDriver());
   }
 
   @Test
@@ -203,7 +227,7 @@ public class PulseAutomatedTest extends PulseAbstractTest {
       verifyTextPresrntByXpath(PulseTestLocators.TopologyView.soketsTTXpath,
           getPropertyValue("member.M" + i + ".totalFileDescriptorOpen"));
       mouseReleaseById("h" + i);
-      driver.navigate().refresh();
+      webDriverRule.getDriver().navigate().refresh();
     }
   }
 
@@ -738,8 +762,8 @@ public class PulseAutomatedTest extends PulseAbstractTest {
     // type each region name in region filter and verify respective region(s) are displayed in
     // region list
     for (String region : regionNames) {
-      findElementById(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).clear();
-      findElementById(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).sendKeys(region);
+      waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).clear();
+      waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).sendKeys(region);
 
       List<WebElement> regionLst1 = getRegionsFromDataBrowser();
 
@@ -754,11 +778,11 @@ public class PulseAutomatedTest extends PulseAbstractTest {
   public void testDataBrowserFilterPartialRegionName() {
     // navigate to Data browser page
     loadDataBrowserpage();
-    findElementById(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).clear();
+    waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).clear();
 
     // type partial region name in region filter and verify that all the regions that contains that
     // text displays
-    findElementById(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId)
+    waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId)
         .sendKeys(PulseTestData.DataBrowser.partialRgnName);
     List<WebElement> regionLst = getRegionsFromDataBrowser();
 
@@ -791,8 +815,8 @@ public class PulseAutomatedTest extends PulseAbstractTest {
     // navigate to Data browser page
     loadDataBrowserpage();
 
-    List<WebElement> numOfReg =
-        driver.findElements(By.xpath(PulseTestLocators.DataBrowser.divDataRegions));
+    List<WebElement> numOfReg = webDriverRule.getDriver()
+        .findElements(By.xpath(PulseTestLocators.DataBrowser.divDataRegions));
 
     for (int i = 1; i <= numOfReg.size(); i++) {
       if (getTextUsingId("treeDemo_" + i + "_span").equals(PulseTestData.DataBrowser.regName)) {
@@ -802,7 +826,7 @@ public class PulseAutomatedTest extends PulseAbstractTest {
     }
 
     sendKeysUsingId(PulseTestLocators.DataBrowser.queryEditorTxtBoxId,
-        PulseAbstractTest.QUERY_TYPE_ONE);
+        DataBrowserResultLoader.QUERY_TYPE_ONE);
     clickElementUsingId(PulseTestLocators.DataBrowser.btnExecuteQueryId);
 
     // Get required datetime format and extract date and hours from date time.
@@ -814,7 +838,7 @@ public class PulseAutomatedTest extends PulseAbstractTest {
 
     clickElementUsingId(PulseTestLocators.DataBrowser.historyIcon);
     List<WebElement> historyLst =
-        driver.findElements(By.xpath(PulseTestLocators.DataBrowser.historyLst));
+        webDriverRule.getDriver().findElements(By.xpath(PulseTestLocators.DataBrowser.historyLst));
     String queryText = findElementByXpath(PulseTestLocators.DataBrowser.historyLst)
         .findElement(By.cssSelector(PulseTestLocators.DataBrowser.queryText)).getText();
     String historyDateTime = findElementByXpath(PulseTestLocators.DataBrowser.historyLst)
@@ -822,8 +846,10 @@ public class PulseAutomatedTest extends PulseAbstractTest {
     System.out.println("Query Text from History Table: " + queryText);
     System.out.println("Query Time from History Table: " + historyDateTime);
     // verify the query text, query datetime in history panel
-    assertTrue(PulseAbstractTest.QUERY_TYPE_ONE.equals(queryText));
+    assertTrue(DataBrowserResultLoader.QUERY_TYPE_ONE.equals(queryText));
     assertTrue(historyDateTime.contains(queryTime[0]));
 
   }
+
+
 }