| /* |
| * 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. |
| * |
| */ |
| /** |
| * This test class contains automated tests for Pulse application related to 1. Different grid data |
| * validations for example - Topology, Server Group, Redundancy Zone 2. Data Browser 3. |
| * |
| * @since GemFire 2014-04-02 |
| */ |
| package org.apache.geode.tools.pulse.tests.ui; |
| |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.assertMemberSortingByCpuUsage; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.assertMemberSortingByHeapUsage; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.assertMemberSortingByRzHeapUsage; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.assertMemberSortingBySgCpuUsage; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.assertMemberSortingBySgHeapUsage; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.assertMemeberSortingByRzCpuUsage; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.clickElementUsingId; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.clickElementUsingXpath; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.findElementByXpath; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.getPersistanceEnabled; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.getPropertyValue; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.getRegionsFromDataBrowser; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.getTextUsingId; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.getTextUsingXpath; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.mouseClickAndHoldOverElementById; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.mouseReleaseById; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToDataPrespectiveGridView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToRedundancyZonesGridView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToRedundancyZonesTreeView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToRegionDetailsGridView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToRegionDetailsView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToServerGroupGridView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToServerGroupTreeView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToTopologyGridView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.navigateToTopologyTreeView; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.sendKeysUsingId; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.validateDataPrespectiveGridData; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.validateRedundancyZonesGridData; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.validateRegionDetailsGridData; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.validateServerGroupGridData; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.validateTopologyGridData; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.verifyElementAttributeById; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.verifyElementPresentById; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.verifyElementPresentByLinkText; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.verifyElementPresentByXpath; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.verifyTextPresrntById; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.verifyTextPresrntByXpath; |
| import static org.apache.geode.tools.pulse.tests.ui.PulseTestUtils.waitForElementWithId; |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertFalse; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.text.DateFormat; |
| import java.text.SimpleDateFormat; |
| import java.util.List; |
| |
| import org.junit.Assert; |
| import org.junit.Before; |
| import org.junit.ClassRule; |
| import org.junit.Ignore; |
| import org.junit.Rule; |
| import org.junit.Test; |
| import org.openqa.selenium.By; |
| import org.openqa.selenium.WebDriver; |
| import org.openqa.selenium.WebElement; |
| |
| import org.apache.geode.tools.pulse.tests.DataBrowserResultLoader; |
| import org.apache.geode.tools.pulse.tests.PulseTestData; |
| import org.apache.geode.tools.pulse.tests.PulseTestLocators; |
| import org.apache.geode.tools.pulse.tests.rules.ScreenshotOnFailureRule; |
| import org.apache.geode.tools.pulse.tests.rules.ServerRule; |
| import org.apache.geode.tools.pulse.tests.rules.WebDriverRule; |
| |
| public class PulseAutomatedTest extends PulseBase { |
| |
| @ClassRule |
| public static ServerRule serverRule = new ServerRule("pulse-auth.json"); |
| |
| @Rule |
| public WebDriverRule webDriverRule = |
| new WebDriverRule("pulseUser", "12345", serverRule.getPulseURL()); |
| |
| @Rule |
| public ScreenshotOnFailureRule screenshotOnFailureRule = |
| new ScreenshotOnFailureRule(this::getWebDriver); |
| |
| @Override |
| public WebDriver getWebDriver() { |
| return webDriverRule.getDriver(); |
| } |
| |
| @Override |
| public String getPulseURL() { |
| return serverRule.getPulseURL(); |
| } |
| |
| @Before |
| public void setupPulseTestUtils() { |
| PulseTestUtils.setDriverProvider(() -> webDriverRule.getDriver()); |
| getWebDriver().get(getPulseURL() + "clusterDetail.html"); |
| } |
| |
| @Test |
| public void serverGroupGridDataValidation() { |
| navigateToServerGroupGridView(); |
| validateServerGroupGridData(); |
| } |
| |
| @Test |
| public void redundancyZonesGridDataValidation() { |
| navigateToRedundancyZonesGridView(); |
| validateRedundancyZonesGridData(); |
| } |
| |
| @Test |
| public void topologyGridDataValidation() { |
| navigateToTopologyGridView(); |
| validateTopologyGridData(); |
| } |
| |
| @Test |
| public void dataViewGridDataValidation() { |
| navigateToDataPrespectiveGridView(); |
| validateDataPrespectiveGridData(); |
| } |
| |
| @Test |
| public void regionDetailsGridDataValidation() { |
| navigateToRegionDetailsGridView(); |
| validateRegionDetailsGridData(); |
| |
| } |
| |
| @Test |
| public void regionDetailsNavigationTest() { |
| navigateToRegionDetailsView(); |
| assertEquals("/R2", getTextUsingId(PulseTestLocators.RegionDetailsView.regionNameDivId)); |
| } |
| |
| @Test |
| public void regionName() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.name"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionNameDivId)); |
| } |
| |
| @Test |
| public void regionPath() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.fullPath"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionPathId)); |
| } |
| |
| @Test |
| public void regionType() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.regionType"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionTypeId)); |
| } |
| |
| @Test |
| public void regionMembers() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.memberCount"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionMembersTextId)); |
| } |
| |
| @Test |
| public void regionEmptyNodes() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.emptyNodes"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionEmptyNodesId)); |
| } |
| |
| @Test |
| public void regionEntryCount() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.systemRegionEntryCount"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionEntryCountTextId)); |
| } |
| |
| @Test |
| public void regionDiskUsage() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.diskUsage"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionDiskUsageId)); |
| } |
| |
| @Test |
| public void regionPersistence() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPersistanceEnabled(getPropertyValue("region.R2.persistentEnabled")), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.regionPersistenceId)); |
| } |
| |
| @Ignore("WIP") |
| @Test |
| public void regionMemoryUsage() { |
| navigateToRegionDetailsView(); |
| // need to check the respective property values |
| } |
| |
| @Test |
| public void regionInMemoryRead() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.getsRate"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.inMemoryReadsId)); |
| |
| } |
| |
| @Test |
| public void regionInMemoryWrites() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.putsRate"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.inMemoryWritesId)); |
| } |
| |
| @Test |
| public void regionDiskRead() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.diskReadsRate"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.diskReadsId)); |
| } |
| |
| @Test |
| public void regionDiskWrites() { |
| navigateToRegionDetailsView(); |
| assertEquals(getPropertyValue("region.R2.diskWritesRate"), |
| getTextUsingId(PulseTestLocators.RegionDetailsView.diskWritesId)); |
| } |
| |
| @Ignore("Fails for unknown reason when run using gradle on command line") |
| @Test |
| public void clickHostShowsMemberTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| PulseTestUtils.waitForElementWithId(PulseTestLocators.TopologyView.nodeH1Id).click(); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM1Id); |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| PulseTestUtils.waitForElementWithId(PulseTestLocators.TopologyView.nodeH2Id).click(); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM2Id); |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| PulseTestUtils.waitForElementWithId(PulseTestLocators.TopologyView.nodeH3Id).click(); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM3Id); |
| } |
| |
| @Test |
| @Ignore("Issue with highlighting") |
| public void verifyHostTooltipsOfTopologyGraphTest() { |
| for (int i = 1; i <= 3; i++) { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| mouseClickAndHoldOverElementById("h" + i); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.hostNameTTXpath, |
| getPropertyValue("member.M" + i + ".host")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.cpuUsageTTXpath, "0%"); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memoryUsageTTXpath, |
| getPropertyValue("member.M" + i + ".UsedMemory")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.loadAvgTTXpath, |
| getPropertyValue("member.M" + i + ".loadAverage")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.soketsTTXpath, |
| getPropertyValue("member.M" + i + ".totalFileDescriptorOpen")); |
| mouseReleaseById("h" + i); |
| webDriverRule.getDriver().navigate().refresh(); |
| } |
| } |
| |
| @Ignore("Issues with member tooltip xpath") |
| @Test |
| public void verifyMemberTooltipsOfTopologyGraphTest() { |
| |
| verifyElementPresentById(PulseTestLocators.TopologyView.nodeH1Id); |
| clickElementUsingId(PulseTestLocators.TopologyView.nodeH1Id); |
| mouseClickAndHoldOverElementById(PulseTestLocators.TopologyView.memberM1Id); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memNameTTXpath, |
| getPropertyValue("member.M1.member")); |
| // verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memCpuUsageTTXpath, |
| // getPropertyValue("member.M1.cpuUsage") + "%"); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.jvmPausesTTXpath, |
| getPropertyValue("member.M1.JVMPauses")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.regionsTTXpath, |
| getPropertyValue("member.M1.totalRegionCount")); |
| verifyElementPresentById(PulseTestLocators.TopologyView.nodeH2Id); |
| clickElementUsingId(PulseTestLocators.TopologyView.nodeH2Id); |
| mouseClickAndHoldOverElementById(PulseTestLocators.TopologyView.memberM2Id); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memNameTTXpath, |
| getPropertyValue("member.M2.member")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memCpuUsageTTXpath, |
| getPropertyValue("member.M2.cpuUsage") + "%"); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.jvmPausesTTXpath, |
| getPropertyValue("member.M2.JVMPauses")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.regionsTTXpath, |
| getPropertyValue("member.M2.totalRegionCount")); |
| |
| verifyElementPresentById(PulseTestLocators.TopologyView.nodeH3Id); |
| clickElementUsingId(PulseTestLocators.TopologyView.nodeH3Id); |
| mouseClickAndHoldOverElementById(PulseTestLocators.TopologyView.memberM3Id); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memNameTTXpath, |
| getPropertyValue("member.M3.member")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.memCpuUsageTTXpath, |
| getPropertyValue("member.M3.cpuUsage") + "%"); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.jvmPausesTTXpath, |
| getPropertyValue("member.M3.JVMPauses")); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.regionsTTXpath, |
| getPropertyValue("member.M3.totalRegionCount")); |
| |
| } |
| |
| @Test |
| public void VerifyRGraphTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| verifyElementPresentById(PulseTestLocators.TopologyView.nodeH1Id); |
| verifyElementPresentById(PulseTestLocators.TopologyView.nodeH2Id); |
| verifyElementPresentById(PulseTestLocators.TopologyView.nodeH3Id); |
| } |
| |
| @Test |
| @Ignore("ElementNotVisible with phantomJS") |
| public void clickMembersOfTopologyGraphTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.nodeH1Id); |
| clickElementUsingId(PulseTestLocators.TopologyView.memberM1Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.nodeH2Id); |
| clickElementUsingId(PulseTestLocators.TopologyView.memberM2Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.nodeH3Id); |
| clickElementUsingId(PulseTestLocators.TopologyView.memberM3Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| } |
| |
| @Test |
| public void clickTreeMapViewShowingTreeMapTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.treeMapButtonId); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM1Id); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM2Id); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM3Id); |
| } |
| |
| @Test |
| public void verifyMembersPresentInTreeMapTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.treeMapButtonId); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM1Id); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM2Id); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM3Id); |
| verifyTextPresrntById(PulseTestLocators.TopologyView.memberM1Id, "M1"); |
| verifyTextPresrntById(PulseTestLocators.TopologyView.memberM2Id, "M2"); |
| verifyTextPresrntById(PulseTestLocators.TopologyView.memberM3Id, "M3"); |
| } |
| |
| @Test |
| public void clickMemberNavigatingToCorrespondingRegionTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.treeMapButtonId); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM1Id); |
| verifyTextPresrntById(PulseTestLocators.TopologyView.memberM1Id, "M1"); |
| clickElementUsingId(PulseTestLocators.TopologyView.memberM1Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.treeMapButtonId); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM2Id); |
| verifyTextPresrntById(PulseTestLocators.TopologyView.memberM2Id, "M2"); |
| clickElementUsingId(PulseTestLocators.TopologyView.memberM2Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.treeMapButtonId); |
| verifyElementPresentById(PulseTestLocators.TopologyView.memberM3Id); |
| verifyTextPresrntById(PulseTestLocators.TopologyView.memberM3Id, "M3"); |
| clickElementUsingId(PulseTestLocators.TopologyView.memberM3Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| } |
| |
| @Test |
| public void clickGridButtonShowsGridTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.gridButtonId); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.idM1Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.nameM1Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.hostH1Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.idM2Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.nameM2Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.hostH2Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.idM3Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.nameM3Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.hostH3Xpath); |
| } |
| |
| @Test |
| public void verifyMembersPresentInGridTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.gridButtonId); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.nameM1Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.nameM1Xpath, "M1"); |
| |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.nameM2Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.nameM2Xpath, "M2"); |
| |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.nameM3Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.nameM3Xpath, "M3"); |
| } |
| |
| @Test |
| public void verifyHostNamesInGridTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.gridButtonId); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.hostH1Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.hostH1Xpath, "h1"); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.hostH2Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.hostH2Xpath, "h2"); |
| verifyElementPresentByXpath(PulseTestLocators.TopologyView.hostH3Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.TopologyView.hostH3Xpath, "h3"); |
| } |
| |
| @Test |
| public void clickOnGridMemNameNavigatingToCorrespondingRegionTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.gridButtonId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.nameM1Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.gridButtonId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.nameM2Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.gridButtonId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.nameM3Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| } |
| |
| @Test |
| public void verifyMembersPresentInSvrGrpTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrpsRadioXpath); |
| verifyElementPresentById(PulseTestLocators.ServerGroups.serverGrp1Id); |
| verifyElementPresentById(PulseTestLocators.ServerGroups.serverGrp2Id); |
| verifyElementPresentById(PulseTestLocators.ServerGroups.serverGrp3Id); |
| |
| verifyElementPresentById(PulseTestLocators.ServerGroups.sg1M1Id); |
| verifyElementPresentById(PulseTestLocators.ServerGroups.sg1M2Id); |
| verifyElementPresentById(PulseTestLocators.ServerGroups.sg1M3Id); |
| |
| verifyElementPresentById(PulseTestLocators.ServerGroups.sg2M1Id); |
| verifyElementPresentById(PulseTestLocators.ServerGroups.sg2M2Id); |
| |
| verifyElementPresentById(PulseTestLocators.ServerGroups.sg3M3Id); |
| } |
| |
| @Test |
| @Ignore("ElementNotVisible with phantomJS") |
| public void expandAndCloseServerGroupsTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| // waitForElement(findElementByXpath(PulseTestLocators.ServerGroups.serverGrpsRadioXpath)); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrpsRadioXpath); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrp1Xpath); |
| verifyElementAttributeById(PulseTestLocators.ServerGroups.serverGrp1Id, "style", |
| "width: 720px; height: 415px;"); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrp1Xpath); |
| verifyElementAttributeById(PulseTestLocators.ServerGroups.serverGrp1Id, "style", |
| "width: 239.667px; height: 399px;"); |
| |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrp2Xpath); |
| verifyElementAttributeById(PulseTestLocators.ServerGroups.serverGrp2Id, "style", |
| "width: 720px; height: 415px;"); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrp2Xpath); |
| verifyElementAttributeById(PulseTestLocators.ServerGroups.serverGrp2Id, "style", |
| "width: 239.667px; height: 399px;"); |
| |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrp3Xpath); |
| verifyElementAttributeById(PulseTestLocators.ServerGroups.serverGrp3Id, "style", |
| "width: 720px; height: 415px;"); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrp3Xpath); |
| verifyElementAttributeById(PulseTestLocators.ServerGroups.serverGrp3Id, "style", |
| "width: 239.667px; height: 399px;"); |
| } |
| |
| @Test |
| public void verifyMembersInServGrpTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrpsRadioXpath); |
| |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.serverGrp1Id, "SG1"); |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.serverGrp2Id, "SG2"); |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.serverGrp3Id, "SG3"); |
| |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.sg1M1Id, "M1"); |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.sg1M2Id, "M2"); |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.sg1M3Id, "M3"); |
| |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.sg2M1Id, "M1"); |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.sg2M2Id, "M2"); |
| |
| verifyTextPresrntById(PulseTestLocators.ServerGroups.sg3M3Id, "M3"); |
| } |
| |
| @Test |
| public void memberNavigationFromServGrpTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.serverGrpsRadioXpath); |
| clickElementUsingId(PulseTestLocators.ServerGroups.sg1M1Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.sg1M2Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.sg1M3Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.sg2M1Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.sg2M2Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.sg3M3Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| } |
| |
| @Test |
| public void clickServGrpGridButtonShowsGridTest() { |
| navigateToServerGroupGridView(); |
| verifyElementPresentByXpath(PulseTestLocators.ServerGroups.idSG1M3Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.ServerGroups.idSG1M2Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.ServerGroups.idSG1M1Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.ServerGroups.nameM3Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.ServerGroups.nameM2Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.ServerGroups.nameM1Xpath); |
| |
| } |
| |
| @Test |
| public void memberNavigationFromServGrpGridTest() { |
| navigateToServerGroupGridView(); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.idSG1M3Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| navigateToServerGroupGridView(); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.idSG1M1Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| navigateToServerGroupGridView(); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.idSG1M2Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| } |
| |
| @Test |
| public void verifyZonePresentTest() { |
| navigateToRedundancyZonesTreeView(); |
| verifyElementPresentByXpath(PulseTestLocators.RedundancyZone.zoneRZ1RZ2Xpath); |
| verifyElementPresentById(PulseTestLocators.RedundancyZone.zoneRZ2Id); |
| } |
| |
| @Ignore("Fails for unknown reason when run using gradle on command line") |
| @Test |
| public void expandAndCloseRdncyZoneTest() { |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.zoneRZ1RZ2Xpath); |
| verifyElementAttributeById(PulseTestLocators.RedundancyZone.zoneRZ1Id, "style", |
| "width: 720px; height: 415px;"); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.zoneRZ1RZ2Xpath); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.zoneRZ2Xpath); |
| verifyElementAttributeById(PulseTestLocators.RedundancyZone.zoneRZ2Id, "style", |
| "width: 720px; height: 415px;"); |
| |
| } |
| |
| @Test |
| public void clickRZMembersNavigationTest() { |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.m1RZ1RZ2Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.m2RZ1Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.m3RZ2Id); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| } |
| |
| @Test |
| public void clickRZGridShowingGridTest() { |
| navigateToRedundancyZonesGridView(); |
| verifyElementPresentByXpath(PulseTestLocators.RedundancyZone.idM2Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.RedundancyZone.idM1Xpath); |
| verifyElementPresentByXpath(PulseTestLocators.RedundancyZone.idM3Xpath); |
| verifyTextPresrntByXpath(PulseTestLocators.RedundancyZone.idM2Xpath, "M2"); |
| verifyTextPresrntByXpath(PulseTestLocators.RedundancyZone.idM1Xpath, "M1"); |
| verifyTextPresrntByXpath(PulseTestLocators.RedundancyZone.idM3Xpath, "M3"); |
| } |
| |
| @Test |
| public void clickRZGridMembersNavigationTest() { |
| navigateToRedundancyZonesGridView(); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.idM2Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M2"); |
| navigateToRedundancyZonesGridView(); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.idM1Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M1"); |
| navigateToRedundancyZonesGridView(); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.idM3Xpath); |
| verifyTextPresrntById(PulseTestLocators.RegionDetailsView.memberNameId, "M3"); |
| } |
| |
| |
| @Test |
| public void verifySortingOptionsTest() { |
| clickElementUsingXpath(PulseTestLocators.TopNavigation.clusterViewLinkXpath); |
| clickElementUsingId(PulseTestLocators.TopologyView.treeMapButtonId); |
| verifyElementPresentById(PulseTestLocators.TopologyView.hotSpotId); |
| clickElementUsingId(PulseTestLocators.TopologyView.hotSpotId); |
| verifyElementPresentByLinkText("Heap Usage"); |
| verifyElementPresentByLinkText("CPU Usage"); |
| } |
| |
| /* |
| * HotSpot test scripts - |
| */ |
| // --- Topology view |
| |
| @Test |
| public void testHotSpotOptPrsntOnTopologyView() { |
| navigateToTopologyTreeView(); |
| Assert.assertEquals(PulseTestData.Topology.hotSpotHeapLbl, |
| getTextUsingId(PulseTestLocators.TopologyView.hotSpotId)); |
| } |
| |
| @Test |
| public void testHotSpotOptionsTopologyView() { |
| navigateToTopologyTreeView(); |
| clickElementUsingId(PulseTestLocators.TopologyView.hotSpotId); |
| assertEquals(PulseTestData.Topology.hotSpotHeapLbl, |
| getTextUsingXpath(PulseTestLocators.TopologyView.heapUsageXpath)); |
| assertEquals(PulseTestData.Topology.hotSpotCPULbl, |
| getTextUsingXpath(PulseTestLocators.TopologyView.cpuUsageXpath)); |
| } |
| |
| @Test |
| public void testCpuUsageNavigationOnTopologyView() { |
| navigateToTopologyTreeView(); |
| clickElementUsingId(PulseTestLocators.TopologyView.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.cpuUsageXpath); |
| assertEquals(PulseTestData.Topology.hotSpotCPULbl, |
| getTextUsingId(PulseTestLocators.TopologyView.hotSpotId)); |
| } |
| |
| @Test |
| public void testHeapUsageNavigationOnTopologyView() { |
| navigateToTopologyTreeView(); |
| clickElementUsingId(PulseTestLocators.TopologyView.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.heapUsageXpath); |
| assertEquals(PulseTestData.Topology.hotSpotHeapLbl, |
| getTextUsingId(PulseTestLocators.TopologyView.hotSpotId)); |
| } |
| |
| @Test |
| public void testSortingUsingCpuUsageOnTopologyView() { |
| navigateToTopologyTreeView(); |
| clickElementUsingId(PulseTestLocators.TopologyView.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.cpuUsageXpath); |
| assertMemberSortingByCpuUsage(); |
| } |
| |
| @Test |
| public void testSortingUsingHeapUsageOnTopologyView() { |
| navigateToTopologyTreeView(); |
| clickElementUsingId(PulseTestLocators.TopologyView.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.TopologyView.heapUsageXpath); |
| assertMemberSortingByHeapUsage(); |
| } |
| |
| // --- Server Group view |
| |
| @Test |
| public void testHotSpotOptPrsntOnServerGroupView() { |
| navigateToServerGroupTreeView(); |
| assertEquals(PulseTestData.ServerGroups.hotSpotHeapLbl, |
| getTextUsingId(PulseTestLocators.ServerGroups.hotSpotId)); |
| } |
| |
| @Test |
| public void testHotSpotOptionsServerGroupView() { |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.hotSpotId); |
| assertEquals(PulseTestData.ServerGroups.hotSpotHeapLbl, |
| getTextUsingXpath(PulseTestLocators.ServerGroups.heapUsageXpath)); |
| assertEquals(PulseTestData.ServerGroups.hotSpotCPULbl, |
| getTextUsingXpath(PulseTestLocators.ServerGroups.cpuUsageXpath)); |
| } |
| |
| @Test |
| public void testCpuUsageNavigationOnServerGroupView() { |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.cpuUsageXpath); |
| assertEquals(PulseTestData.ServerGroups.hotSpotCPULbl, |
| getTextUsingId(PulseTestLocators.ServerGroups.hotSpotId)); |
| } |
| |
| @Test |
| public void testHeapUsageNavigationOnServerGroupView() { |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.heapUsageXpath); |
| assertEquals(PulseTestData.ServerGroups.hotSpotHeapLbl, |
| getTextUsingId(PulseTestLocators.ServerGroups.hotSpotId)); |
| } |
| |
| @Test |
| public void testSortingUsingHeapUsageOnServerGroupView() { |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.heapUsageXpath); |
| assertMemberSortingBySgHeapUsage(); |
| } |
| |
| @Test |
| public void testSortingUsingCpuUsageOnServerGroupView() { |
| navigateToServerGroupTreeView(); |
| clickElementUsingId(PulseTestLocators.ServerGroups.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.ServerGroups.cpuUsageXpath); |
| assertMemberSortingBySgCpuUsage(); |
| } |
| |
| // --- Redundancy Zone view |
| |
| @Test |
| public void testHotSpotOptPrsntOnRedundancyZoneView() { |
| navigateToRedundancyZonesTreeView(); |
| assertEquals(PulseTestData.RedundancyZone.hotSpotHeapLbl, |
| getTextUsingId(PulseTestLocators.RedundancyZone.hotSpotId)); |
| } |
| |
| |
| @Test |
| public void testHotSpotOptionsRedundancyZoneView() { |
| // navigate to Redundancy Zones - Tree View |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.hotSpotId); |
| assertEquals(PulseTestData.RedundancyZone.hotSpotHeapLbl, |
| getTextUsingXpath(PulseTestLocators.RedundancyZone.heapUsageXpath)); |
| assertEquals(PulseTestData.RedundancyZone.hotSpotCPULbl, |
| getTextUsingXpath(PulseTestLocators.RedundancyZone.cpuUsageXpath)); |
| } |
| |
| @Test |
| public void testCpuUsageNavigationOnRedundancyZoneView() { |
| // navigate to Redundancy Zones - Tree View |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.cpuUsageXpath); |
| assertEquals(PulseTestData.RedundancyZone.hotSpotCPULbl, |
| getTextUsingId(PulseTestLocators.RedundancyZone.hotSpotId)); |
| } |
| |
| @Test |
| public void testHeapUsageNavigationOnRedundancyZoneView() { |
| // navigate to Redundancy Zones - Tree View |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.heapUsageXpath); |
| assertEquals(PulseTestData.RedundancyZone.hotSpotHeapLbl, |
| getTextUsingId(PulseTestLocators.RedundancyZone.hotSpotId)); |
| } |
| |
| @Test |
| public void testSortingUsingHeapUsageOnRedundancyView() { |
| // navigate to Redundancy Zones - Tree View |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.heapUsageXpath); |
| assertMemberSortingByRzHeapUsage(); |
| } |
| |
| @Test |
| public void testSortingUsingCpuUsageOnRedundancyView() { |
| // navigate to Redundancy Zones - Tree View |
| navigateToRedundancyZonesTreeView(); |
| clickElementUsingId(PulseTestLocators.RedundancyZone.hotSpotId); |
| clickElementUsingXpath(PulseTestLocators.RedundancyZone.cpuUsageXpath); |
| assertMemeberSortingByRzCpuUsage(); |
| } |
| |
| @Test |
| public void testDataBrowserFilterFeature() { |
| // navigate to Data browser page |
| loadDataBrowserpage(); |
| List<WebElement> regionLst = getRegionsFromDataBrowser(); |
| String[] regionNames = new String[regionLst.size()]; |
| for (int regionIndex = 0; regionIndex < regionLst.size(); regionIndex++) { |
| regionNames[regionIndex] = findElementByXpath(PulseTestLocators.DataBrowser.rgnSpanFirstPart |
| + (regionIndex + 1) + PulseTestLocators.DataBrowser.rgnSpanSecondPart).getText(); |
| } |
| // type each region name in region filter and verify respective region(s) are displayed in |
| // region list |
| for (String region : regionNames) { |
| waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).clear(); |
| waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).sendKeys(region); |
| |
| List<WebElement> regionLst1 = getRegionsFromDataBrowser(); |
| |
| for (int regionIndex = 1; regionIndex <= regionLst1.size(); regionIndex++) { |
| assertEquals(region, findElementByXpath(PulseTestLocators.DataBrowser.rgnSpanFirstPart |
| + regionIndex + PulseTestLocators.DataBrowser.rgnSpanSecondPart).getText()); |
| } |
| } |
| } |
| |
| @Test |
| public void testDataBrowserFilterPartialRegionName() { |
| // navigate to Data browser page |
| loadDataBrowserpage(); |
| waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId).clear(); |
| |
| // type partial region name in region filter and verify that all the regions that contains that |
| // text displays |
| waitForElementWithId(PulseTestLocators.DataBrowser.rgnFilterTxtBoxId) |
| .sendKeys(PulseTestData.DataBrowser.partialRgnName); |
| List<WebElement> regionLst = getRegionsFromDataBrowser(); |
| |
| for (int regionIndex = 0; regionIndex < regionLst.size(); regionIndex++) { |
| assertTrue(findElementByXpath(PulseTestLocators.DataBrowser.rgnSpanFirstPart |
| + (regionIndex + 1) + PulseTestLocators.DataBrowser.rgnSpanSecondPart).getText() |
| .contains(PulseTestData.DataBrowser.partialRgnName)); |
| } |
| } |
| |
| @Test |
| public void testDataBrowserClearButton() { |
| // navigate to Data browser page |
| loadDataBrowserpage(); |
| |
| sendKeysUsingId(PulseTestLocators.DataBrowser.queryEditorTxtBoxId, |
| PulseTestData.DataBrowser.query1Text); |
| String editorTextBeforeClear = |
| getTextUsingId(PulseTestLocators.DataBrowser.queryEditorTxtBoxId); |
| clickElementUsingXpath(PulseTestLocators.DataBrowser.btnClearXpath); |
| String editorTextAfterClear = getTextUsingId(PulseTestLocators.DataBrowser.queryEditorTxtBoxId); |
| |
| assertFalse(PulseTestData.DataBrowser.query1Text.equals(editorTextAfterClear)); |
| } |
| |
| @Ignore("WIP") // Data Browser's Query History not showing any data on button click, therefore |
| // this test is failing |
| @Test |
| public void testDataBrowserHistoryQueue() { |
| // navigate to Data browser page |
| loadDataBrowserpage(); |
| |
| 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)) { |
| searchByIdAndClick("treeDemo_" + i + "_check"); // driver.findElement(By.id("treeDemo_" + i |
| // + "_check")).click(); |
| } |
| } |
| |
| sendKeysUsingId(PulseTestLocators.DataBrowser.queryEditorTxtBoxId, |
| DataBrowserResultLoader.QUERY_TYPE_ONE); |
| clickElementUsingId(PulseTestLocators.DataBrowser.btnExecuteQueryId); |
| |
| // Get required datetime format and extract date and hours from date time. |
| DateFormat dateFormat = new SimpleDateFormat(PulseTestData.DataBrowser.datePattern); |
| String queryDateTime = dateFormat.format(System.currentTimeMillis()); |
| String[] queryTime = queryDateTime.split(":"); |
| System.out.println("Query Time from System: " + queryTime[0]); |
| |
| |
| clickElementUsingId(PulseTestLocators.DataBrowser.historyIcon); |
| List<WebElement> 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) |
| .findElement(By.cssSelector(PulseTestLocators.DataBrowser.historyDateTime)).getText(); |
| 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(DataBrowserResultLoader.QUERY_TYPE_ONE.equals(queryText)); |
| assertTrue(historyDateTime.contains(queryTime[0])); |
| |
| } |
| |
| |
| } |