com.htm.ManageTest.java Source code

Java tutorial

Introduction

Here is the source code for com.htm.ManageTest.java

Source

    /*
     * Numenta Platform for Intelligent Computing (NuPIC)
     * Copyright (C) 2015, Numenta, Inc.  Unless you have purchased from
     * Numenta, Inc. a separate commercial license for this software code, the
     * following terms and conditions apply:
     *
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU Affero Public License version 3 as
     * published by the Free Software Foundation.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     * See the GNU Affero Public License for more details.
     *
     * You should have received a copy of the GNU Affero Public License
     * along with this program.  If not, see http://www.gnu.org/licenses.
     *
     * http://numenta.org/licenses/
     *
     */

package com.htm-it.tests;

import com.htm-it.utils.ReusableTests;
import com.htm-it.utils.TestUtilities;

    import java.util.List;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.support.ui.Select;
    import org.testng.Assert;

    public class ManageTest {
        static By MANAGE_PAGE_TITLE = By.xpath("//*[@id='content']/div/div/h1");
        static By MANAGE_PAGE_SUBTITLE = By.xpath("//div[@id='instance-list']/div/h3");
        static By MANAGE_PAGE_BUTTON = By.xpath("//button[@data-toggle='dropdown']");
        static By MANAGE_PAGE_WEB_PAGE_SECTION_TITLE = By
                .xpath("//div[@class='htm-it-embed-form htm-it-panel well']/h3");
        static By MANAGE_PAGE_WIDTH_INPUT = By.xpath("//input[@id='domain']");
        static By MONITORED_ADDITIONAL_INSTANCES_BUTTON = By.xpath("//button[@data-toggle='dropdown']");
    static By MANAGE_ADD_HTM-IT_TITLE=By.xpath("//div[@class='htm-it-embed-form htm-it-panel well']/h3");
    static By MANAGE_ADD_HTM-IT_HELP_TEXT_TITLE=By.xpath("//div[@class='htm-it-embed-form htm-it-panel well']/p");
        /*
         * Each of MANAGE_ADD_HTM-IT_HELP_TEXT_# / is one of the help text bullet
         * points present under "Add HTM-IT to Any Web Page" section in the /htm-it
         * page.
         */
    static By MANAGE_ADD_HTM-IT_HELP_TEXT_1=By.xpath("//div[@class='htm-it-embed-form htm-it-panel well']/ul/li[1]");
    static By MANAGE_ADD_HTM-IT_HELP_TEXT_2=By.xpath("//div[@class='htm-it-embed-form htm-it-panel well']/ul/li[2]");
        static By MANAGE_HOST_NAME = By.xpath("//form[@id='form']/fieldset/div[1]/label");
        static By MANAGE_WIDTH = By.xpath("//form[@id='form']/fieldset/div[2]/label");
        static By MANAGE_HEIGHT = By.xpath("//form[@id='form']/fieldset/div[3]/label");
        static By MANAGE_EMBEDCODE = By.xpath("id('form')/x:div[1]/x:div/x:label");
        static By MANAGE_HOST_NAME_TEXT_BOX = By.xpath("//input[@id='domain']");
        static By MANAGE_WIDTH_TEXT_BOX = By.xpath("//input[@id='width']");
        static By MANAGE_HEIGHT_TEXT_BOX = By.xpath("//input[@id='height']");
        static By MANAGE_EMBEDCODE_TEXT_BOX = By.xpath("//textarea[@id='code']");
        static By OPEN_MANAGE_DROPDOWN = By.xpath("//li[@class='setup dropdown']/a/span[2]");
        static By ALLOW_TECH_SUPPORT_ACCESS = By.xpath(".//*[@id='support-access-enable']");
        static By REVOKE_TECH_SUPPORT_ACCESS = By.xpath(".//*[@id='support-access-disable']");
        static By NAVIGATE_TO_AUTOSTACK_PAGE = By.xpath("//a[@href='/htm-it/instances/autostack']");
        static By NAVIGATE_TO_SBNT_PAGE = By.xpath("//a[@href='/htm-it/instances/auto']");
        static By FIND_MEMBERS_BUTTON = By.id("begin");
        static By OK_BUTTON = By.xpath("html/body/div[3]/div/div/div[3]/button[2]");
        static int WAIT_TIME = 20;

        public static void manageTitleVerification(WebDriver driver) {
            String managePagetitle = TestUtilities.waitGetText(MANAGE_PAGE_TITLE, driver, WAIT_TIME);
            Assert.assertEquals(managePagetitle, "Manage Monitored Instances");
        }

        public static void allowTechSupportAccess(WebDriver driver) {
            TestUtilities.waitClick(OPEN_MANAGE_DROPDOWN, driver, WAIT_TIME);
            String allowTechSupportAccessText = TestUtilities.waitGetText(ALLOW_TECH_SUPPORT_ACCESS, driver, WAIT_TIME);
            Assert.assertEquals(allowTechSupportAccessText, "Allow Tech Support Access");
            TestUtilities.waitClick(ALLOW_TECH_SUPPORT_ACCESS, driver, WAIT_TIME);
        }

        public static void revokeTechSupportAccess(WebDriver driver) {
            TestUtilities.waitClick(OPEN_MANAGE_DROPDOWN, driver, WAIT_TIME);
            String revokeTechSupportAccessText = TestUtilities.waitGetText(REVOKE_TECH_SUPPORT_ACCESS, driver,
                    WAIT_TIME);
            Assert.assertEquals(revokeTechSupportAccessText, "Revoke Tech Support Access");
            TestUtilities.waitClick(REVOKE_TECH_SUPPORT_ACCESS, driver, WAIT_TIME);
        }

    public static void manageInstancesCurrentlyMonitoredByHTM-ITSectionVerification(
            WebDriver driver) {
        ReusableTests
                .testInstancesCurrentlyMonitoredByHTM-ITTitleVerification(driver);
        ReusableTests
                .testInstancesCurrentlyMonitoredByHTM-ITColumnNamesVerification(driver);
    }

        public static void monitorAdditionalInstancesDropDownVerification(WebDriver driver) {
            String managePageDropDown = TestUtilities.waitGetText(MONITORED_ADDITIONAL_INSTANCES_BUTTON, driver,
                    WAIT_TIME);
            Assert.assertEquals(managePageDropDown, "Monitor Additional Instances");
        }

    public static void addhtm-itToWebPageTitleVerification(WebDriver driver) {
        String managePageHTM-ITToWebPageTitle = TestUtilities.waitGetText(
                MANAGE_ADD_HTM-IT_TITLE, driver, WAIT_TIME);
        Assert.assertEquals(managePageHTM-ITToWebPageTitle,
                "Add HTM-IT to Any Web Page");
    }

    public static void htm-itToWebPageHelpTextVerification(WebDriver driver) {
        String managePageHTM-ITToWebPageTitle = TestUtilities.waitGetText(
                MANAGE_ADD_HTM-IT_HELP_TEXT_TITLE, driver, WAIT_TIME);
        /*
         * 1st bullet point Add HTM-IT to Any Web Page section
         * "i.e. Enter the hostname where you will embed the widget, and the width and height."
         */
        String managePageHTM-ITToWebPageHelpText1 = TestUtilities.waitGetText(
                MANAGE_ADD_HTM-IT_HELP_TEXT_1, driver, WAIT_TIME);
        /*
         * 2st bullet point Add HTM-IT to Any Web Page section
         * "i.e. Copy the Embed Code, and place it in the HTML source code of your website."
         */
        String managePageHTM-ITToWebPageHelpText2 = TestUtilities.waitGetText(
                MANAGE_ADD_HTM-IT_HELP_TEXT_2, driver, WAIT_TIME);
        Assert.assertEquals(managePageHTM-ITToWebPageHelpText1,
                "Enter the hostname where you will embed the widget, "
                        + "and the width and height.");
        Assert.assertEquals(managePageHTM-ITToWebPageTitle,
                "To place a HTM-IT Charts dashboard widget on your web page:");
        Assert.assertEquals(managePageHTM-ITToWebPageHelpText2,
                "Copy the Embed Code, and place it in the HTML "
                        + "source code of your website.");
    }

    public static void htm-itToWebPageLabelVerification(WebDriver driver) {
        String managePageHostnameLabel = TestUtilities.waitGetText(
                MANAGE_HOST_NAME, driver, WAIT_TIME);
        String managePageWidthLabel = TestUtilities.waitGetText(MANAGE_WIDTH,
                driver, WAIT_TIME);
        String managePageHeightLabel = TestUtilities.waitGetText(MANAGE_HEIGHT,
                driver, WAIT_TIME);
        String managePageEmbedcodeLabel = TestUtilities.waitGetText(
                MANAGE_EMBEDCODE, driver, WAIT_TIME);
        Assert.assertEquals(managePageHostnameLabel, "Destination Hostname");
        Assert.assertEquals(managePageWidthLabel, "Width");
        Assert.assertEquals(managePageHeightLabel, "Height");
        Assert.assertEquals(managePageEmbedcodeLabel, "Embed Code");
    }

        public static void manageTextBoxesVerification(WebDriver driver) {
            Assert.assertTrue(driver.findElement(MANAGE_HOST_NAME_TEXT_BOX).isDisplayed(),
                    "hostnameTextbox not present");
            Assert.assertTrue(driver.findElement(MANAGE_WIDTH_TEXT_BOX).isDisplayed(), "widthtextBox not present");
            Assert.assertTrue(driver.findElement(MANAGE_HEIGHT_TEXT_BOX).isDisplayed(), "heightTexBox not present");
            Assert.assertTrue(driver.findElement(MANAGE_EMBEDCODE_TEXT_BOX).isDisplayed(),
                    "embedCodeTextBox not present");
        }

        public static void manageHeader(WebDriver driver) throws InterruptedException {
            ReusableTests.testHeaderAfterSetup(driver);
        }

        public static void manageFooter(WebDriver driver) throws Exception {
            ReusableTests.testFooter(driver);
        }

        public static void testDropDown(WebDriver driver) {
            String[] hrefArray = { "manual", "auto", "import", "autostack", "custom" };
            List<WebElement> anchors = driver.findElements(By.cssSelector("div div ul li a"));
            Assert.assertTrue(hrefArray.length == anchors.size());
            for (int i = 0; i < anchors.size(); i++) {
                String hrefString = anchors.get(i).getAttribute("href").toString();
                Assert.assertTrue(hrefString.contains(hrefArray[i]), String.format("%s not present", hrefString));
            }
        }

        public static void manageExportRemoveCheckAfterAddingInstances(WebDriver driver) {
            TestUtilities.waitClick(OPEN_MANAGE_DROPDOWN, driver, WAIT_TIME);
            // Navigation and creating autostack to assert export and import button
            // after adding instances.
            TestUtilities.waitClick(NAVIGATE_TO_AUTOSTACK_PAGE, driver, WAIT_TIME);
            Select dropdown = new Select(driver.findElement(By.id("region")));
            dropdown.selectByValue("us-west-2");
            driver.findElement(By.id("name")).sendKeys("test");
            driver.findElement(By.id("tags")).sendKeys("*Jenk*");
            TestUtilities.waitClick(FIND_MEMBERS_BUTTON, driver, WAIT_TIME);
            TestUtilities.waitClick(OK_BUTTON, driver, WAIT_TIME);
            driver.navigate().back();
            ReusableTests.testRemoveButtonVerfication(driver);
            ReusableTests.testExportButtonVerfication(driver);
        }

        // We are navigating to "Search by name tag" page for further checks of the
        // respective page.
        public static void navigateSBNTPage(WebDriver driver) throws InterruptedException {
            TestUtilities.waitClick(OPEN_MANAGE_DROPDOWN, driver, WAIT_TIME);
            TestUtilities.waitClick(NAVIGATE_TO_SBNT_PAGE, driver, WAIT_TIME);
        }
    }