com.ecofactor.qa.automation.newapp.page.impl.SetAwayPageImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.ecofactor.qa.automation.newapp.page.impl.SetAwayPageImpl.java

Source

/*
 * SetAwayPageImpl.java
 * Copyright (c) 2014, EcoFactor, All Rights Reserved.
 *
 * This software is the confidential and proprietary information of EcoFactor
 * ("Confidential Information"). You shall not disclose such Confidential Information and shall use
 * it only in accordance with the terms of the license agreement you entered into with
 * EcoFactor.
 */
package com.ecofactor.qa.automation.newapp.page.impl;

import static com.ecofactor.qa.automation.platform.enums.CustomTimeout.*;
import static com.ecofactor.qa.automation.platform.util.LogUtil.*;
import static com.ecofactor.qa.automation.platform.util.Pageutil.*;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.Assert;

import com.ecofactor.qa.automation.newapp.enums.SetAwayParams;
import com.ecofactor.qa.automation.newapp.page.SetAwayPage;
import com.ecofactor.qa.automation.newapp.page.ThermostatPageUI;
import com.ecofactor.qa.automation.platform.enums.CustomLogLevel;
import com.ecofactor.qa.automation.util.DateUtil;
import com.ecofactor.qa.automation.util.WaitUtil;
import com.google.inject.Inject;

/**
 * The Class SetAwayPageImpl.
 * @author $Author:$
 * @version $Rev:$ $Date:$
 */
public class SetAwayPageImpl extends AbstractSetAwayParameters implements SetAwayPage {

    /** The Constant TSTAT_POPUP. */
    private static final String TSTAT_POPUP = "thermostatPopupContainer";

    /** The Constant TSTAT_POPUP_BTN. */
    private static final String TSTAT_POPUP_BTN = "thermostatPopupButton";

    /** The Constant TSTAT_POPUP_LABEL. */
    private static final String TSTAT_POPUP_LABEL = "thermostatPopupLabel";

    /** The Constant CLOSE_TOAST_BTN. */
    private static final String CLOSE_TOAST_BTN = "div.closeButton";

    /** The Constant CURRENT_VALUE. */
    private static final String CURRENT_VALUE = "div.dw-li.dw-v.dw-sel";

    /** The Constant DATA_VALUE. */
    private static final String DATA_VALUE = "data-val";

    /** The Constant AWAY_SETTINGS. */
    private static final String AWAY_SETTINGS = ".away_settings.clickable.item.grey_arrow";

    /** The Constant ALERT_MESSAGE. */
    @SuppressWarnings("unused")
    private static final String ALERT_MESSAGE = "Please turn off away mode to see away settings for your home.";

    @Inject
    protected ThermostatPageUI thPageUI;

    /**
     * Cleanup.
     * @see com.ecofactor.qa.automation.newapp.page.BasePage#cleanup()
     */
    @Override
    public void cleanup() {

        setLogString("Cleanup in Away Page.", true, CustomLogLevel.HIGH);
    }

    /**
     * Checks if is date picker displayed.
     * @return true, if is date picker displayed
     */
    @Override
    public boolean isDatePickerDisplayed() {

        final List<WebElement> dateTimePickers = getElements(getDriver(),
                By.cssSelector("div.setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);

        setLogString("Check if date picker is displayed.", true, CustomLogLevel.MEDIUM);
        return dateTimePickers.get(0).isDisplayed();
    }

    /**
     * Gets the end date.
     * @return the end date
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#getEndDate()
     */
    @Override
    public String getEndDate() {

        final List<WebElement> dateTimePickers = getElements(getDriver(),
                By.cssSelector("div.setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);

        setLogString("Check if date picker is displayed.", true, CustomLogLevel.MEDIUM);
        return dateTimePickers.get(0).getText();
    }

    /**
     * Checks if is time picker displayed.
     * @return true, if is time picker displayed
     */
    @Override
    public boolean isTimePickerDisplayed() {

        final List<WebElement> dateTimePickers = getElements(getDriver(),
                By.cssSelector("div.setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);

        setLogString("Check if time picker is displayed.", true, CustomLogLevel.MEDIUM);
        return dateTimePickers.get(1).isDisplayed();
    }

    /**
     * Gets the end time.
     * @return the end time
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#getEndTime()
     */
    @Override
    public String getEndTime() {

        final List<WebElement> dateTimePickers = getElements(getDriver(),
                By.cssSelector("div.setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);

        setLogString("Check if time picker is displayed.", true, CustomLogLevel.MEDIUM);
        return dateTimePickers.get(1).getText();
    }

    /**
     * Checks if is sets the point picker displayed.
     * @return true, if is sets the point picker displayed
     */
    public boolean isSetPointPickerDisplayed() {

        return isDisplayed(getDriver(), By.className("awaySetpointPicker"), ATOMIC_TIMEOUT);
    }

    /**
     * Checks if is page loaded.
     * @return true, if is page loaded
     * @see com.ecofactor.qa.automation.newapp.page.BasePage#isPageLoaded()
     */
    @Override
    public boolean isPageLoaded() {

        setLogString("Verify if Away Page is loaded.", true, CustomLogLevel.MEDIUM);
        return isDisplayedBySubElement(getDriver(), getCurrentThermostatContainer(), By.className(TSTAT_POPUP),
                ATOMIC_TIMEOUT);
    }

    /**
     * Click am back.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#clickAmBack()
     */
    @Override
    public void clickAmBack() {

        setLogString("Click I'm back button.", true, CustomLogLevel.LOW);
        final WebElement iAmBackBtnElement = getElementBySubElement(getDriver(), getCurrentThermostatContainer(),
                By.className(TSTAT_POPUP_BTN), ATOMIC_TIMEOUT);
        getAction().click(iAmBackBtnElement);
        getAction().rejectAlert();
    }

    /**
     * Display away info.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#displayActualSetAwayInfo
     */
    @Override
    public void displayActualSetAwayInfo() {

        final String[] awayInfo = getActualAwaySettings();
        setLogString("Away triggered successfully. It will be active until DATE : " + awayInfo[1] + "  " + "TIME : "
                + awayInfo[3], true, CustomLogLevel.LOW);
    }

    /**
     * Gets the away settings.
     * @return the away settings
     */
    @Override
    public String[] getActualAwaySettings() {

        final WebElement awayInfoText = getElementBySubElement(getDriver(), getCurrentThermostatContainer(),
                By.className(TSTAT_POPUP_LABEL), TINY_TIMEOUT);
        final String[] awayInfo = awayInfoText.getText().split(" ");

        return awayInfo;
    }

    /**
     * Click close toast error.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#clickCloseToastError()
     */
    @Override
    public void clickCloseToastError() {

        setLogString("Close Away Toast Error by Clicking on 'X'.", true, CustomLogLevel.MEDIUM);
        final WebElement closeToastErrBtn = getElementBySubElement(getDriver(), getCurrentThermostatContainer(),
                By.cssSelector(CLOSE_TOAST_BTN), ATOMIC_TIMEOUT);
        getAction().click(closeToastErrBtn);
    }

    /**
     * Wait for error message.
     * @param expectedMessage the expected message
     * @param timout the timout
     * @return true, if successful
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#waitForErrorMessage(java.lang.String,
     *      int)
     */
    @Override
    public boolean waitForErrorMessage(final String expectedMessage, final int timout) {

        final Calendar endTime = DateUtil.getUTCCalendar();
        int secCounter = 0;
        endTime.add(Calendar.MINUTE, timout);
        do {
            WaitUtil.oneSec();
            secCounter++;
            final String errorMessage = getToastErrorMessage();
            if ((errorMessage != null) && errorMessage.contains(expectedMessage)) {
                setLogString("'" + expectedMessage + "' Error Message Appeared after " + secCounter + " Seconds.",
                        true);
                return true;
            }
        } while (DateUtil.getUTCCalendar().before(endTime));

        return false;
    }

    /**
     * Checks whether the Away Date is valid or not.
     * @return the validity status of Away Date
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#isDateValidForAway
     */
    @Override
    public boolean isDateValidForAway() {

        Date currentDate = null;
        Date newDate = null;

        final WebElement dateTimePickerButton = getElement(getDriver(),
                By.cssSelector(".setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);

        String currentDateString = dateTimePickerButton.getText();
        currentDateString = currentDateString.substring(currentDateString.indexOf("-") + 2);

        try {
            currentDate = new SimpleDateFormat("MMM dd, yyyy").parse(currentDateString);
        } catch (Exception ex) {
            setLogString("Exception:" + ex, true);
        }

        setLogString("Value:" + currentDate, true);
        dateTimePickerButton.click();

        setLogString("Set Date Scroll Control Displayed:"
                + isDisplayed(getDriver(), By.cssSelector("a.dwb-e.dwwb.dwwbm"), TINY_TIMEOUT), true);

        setLogString("Trying to set a past date for Away", true);
        final WebElement dateScroll = getElement(getDriver(), By.cssSelector(".dwwl1 > a:nth-child(2)"),
                TINY_TIMEOUT);
        dateScroll.click();

        WaitUtil.tinyWait();

        setLogString("Set the New Date Value", true);
        final WebElement setElement = getElement(getDriver(), By.cssSelector("a.dwb.dwb0.dwb-e"), TINY_TIMEOUT);
        getAction().click(setElement);

        String newDateString = dateTimePickerButton.getText();
        newDateString = newDateString.substring(newDateString.indexOf("-") + 2);

        WaitUtil.tinyWait();

        try {
            newDate = new SimpleDateFormat("MMM dd, yyyy").parse(newDateString);
        } catch (Exception ex) {
            setLogString("Exception:" + ex, true);
        }

        setLogString("New Value:" + newDate, true);

        if (currentDate.compareTo(newDate) < 0 || currentDate.compareTo(newDate) == 0) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Set Away After waiting for 5 minutes idle.
     * @return boolean status of Set Away
     */
    @Override
    public boolean waitAndSetAway() {

        setLogString("Waiting for 5 minutes", true);
        WaitUtil.waitUntil(300000);

        setLogString("Set Away after 5 minutes wait", true);
        final WebElement setButton = getElement(getDriver(), By.cssSelector("input.ctaButton:nth-child(2)"),
                SHORT_TIMEOUT);
        getAction().click(setButton);
        getAction().rejectAlert();
        setLogString("Toast Display:"
                + isDisplayed(getDriver(), By.cssSelector("div.view_toast_container"), TINY_TIMEOUT), true);

        if (isDisplayed(getDriver(), By.cssSelector("div.view_toast_container"), TINY_TIMEOUT))
            return false;
        else
            return true;
    }

    /**
     * Close away settings popup.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#closeAwaySettingsPopup()
     */
    @Override
    public void closeAwaySettingsPopup() {

        setLogString("Click cancel button on away settings popup.", true);
        final WebElement cancelButton = getElement(getDriver(),
                By.cssSelector("input.ctaButton.setAwayCancelButton"), TINY_TIMEOUT);
        getAction().click(cancelButton);
    }

    /**
     * Click set away button.
     * @return true, if successful
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#clickSetAwayButton()
     */
    @Override
    public boolean clickSetAwayButton() {

        WaitUtil.tinyWait();
        setLogString("Click set button on away settings popup.", true);
        getAction().rejectAlert();
        final WebElement setButton = getElement(getDriver(), By.cssSelector("input.ctaButton.setAwaySubmitButton"),
                TINY_TIMEOUT);
        WaitUtil.oneSec();
        getAction().click(setButton);
        getAction().rejectAlert();

        return isDisplayed(getDriver(), By.cssSelector("div.view_toast_container"), TINY_TIMEOUT);
    }

    /**
     * Click away parameter.
     * @param param the param
     * @return true, if successful
     */
    @Override
    public boolean clickAwayParamPicker(final SetAwayParams param) {

        final List<WebElement> dateAndTimePickers = getElements(getDriver(),
                By.cssSelector("div.setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);
        WebElement awayParamElement = null;
        if (param.equals(SetAwayParams.Days)) {
            awayParamElement = dateAndTimePickers.get(0);
        } else if (param.equals(SetAwayParams.Hours)) {
            awayParamElement = dateAndTimePickers.get(1);
        } else {
            awayParamElement = getElement(getDriver(), By.cssSelector("input.awaySetpointPicker"), TINY_TIMEOUT);
        }
        getAction().click(awayParamElement);

        return isDisplayed(getDriver(), By.cssSelector("div.dw-li.dw-v.dw-sel"), TINY_TIMEOUT);
    }

    /**
     * Sets the away param picker.
     * @param setAwayParams the set away params
     * @param expectedValue the expected value
     * @return true, if successful
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#setAwayParamPicker(com.ecofactor.qa.automation.newapp.enums.SetAwayParams,
     *      int)
     */
    @Override
    public boolean setAwayParamPicker(final SetAwayParams setAwayParams, final int expectedValue) {

        setLogString("Set " + setAwayParams + " as :" + expectedValue, true);

        Assert.assertTrue(clickAwayParamPicker(setAwayParams), setAwayParams + " picker not displayed.");

        final WebElement currentReadingElement = getElement(getDriver(), By.cssSelector(CURRENT_VALUE),
                TINY_TIMEOUT);
        final int currentReadingValue = Integer.parseInt(currentReadingElement.getAttribute(DATA_VALUE));

        final int setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;

        return changeAwayParamValue(setAwayParams, setPointValue).equals(expectedValue);

    }

    /**
     * Sets the away date.
     * @param reqDateTime the new away date
     * @return true, if successful
     */
    @Override
    public boolean setAwayDate(final Calendar reqDateTime) {

        SimpleDateFormat enddateFormat = new SimpleDateFormat("E - MMM dd, YYYY");
        enddateFormat.setTimeZone(enddateFormat.getTimeZone());
        String enddate = enddateFormat.format(reqDateTime.getTime());
        setLogString("Set away date as :" + enddate, true, CustomLogLevel.MEDIUM);

        Assert.assertTrue(clickAwayParamPicker(SetAwayParams.Days), SetAwayParams.Days + " picker not displayed.");

        final WebElement dateContainerElement = getElement(getDriver(), By.cssSelector("div.dwwl.dwwl1"),
                TINY_TIMEOUT);
        final WebElement monthContainerElement = getElement(getDriver(), By.cssSelector("div.dwwl.dwwl0"),
                TINY_TIMEOUT);
        final WebElement yearContainerElement = getElement(getDriver(), By.cssSelector("div.dwwl.dwwl2"),
                TINY_TIMEOUT);

        boolean dateUpdated = true;

        final WebElement dateCurrentReadingElement = getElementBySubElement(getDriver(), dateContainerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        int currentReadingValue = Integer.parseInt(dateCurrentReadingElement.getAttribute(DATA_VALUE));
        int expectedValue = reqDateTime.get(Calendar.DATE);
        int setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;
        dateUpdated = dateUpdated
                && changeRequiredParameter(dateContainerElement, setPointValue, reqDateTime.get(Calendar.DATE));

        final WebElement monthCurrentReadingElement = getElementBySubElement(getDriver(), monthContainerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        currentReadingValue = Integer.parseInt(monthCurrentReadingElement.getAttribute(DATA_VALUE));
        expectedValue = reqDateTime.get(Calendar.MONTH);
        setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;
        dateUpdated = dateUpdated
                && changeRequiredParameter(monthContainerElement, setPointValue, reqDateTime.get(Calendar.MONTH));

        final WebElement yearCurrentReadingElement = getElementBySubElement(getDriver(), yearContainerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        currentReadingValue = Integer.parseInt(yearCurrentReadingElement.getAttribute(DATA_VALUE));
        expectedValue = reqDateTime.get(Calendar.YEAR);
        setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;
        dateUpdated = dateUpdated
                && changeRequiredParameter(yearContainerElement, setPointValue, reqDateTime.get(Calendar.YEAR));

        saveAwaySettings();

        return dateUpdated;
    }

    /**
     * Sets the away time.
     * @param reqDateTime the new away time
     * @return true, if successful
     */
    @Override
    public boolean setAwayTime(final Calendar reqDateTime) {

        SimpleDateFormat endtimeFormat = new SimpleDateFormat("HH:MM a Z");
        endtimeFormat.setTimeZone(endtimeFormat.getTimeZone());
        String endtime = endtimeFormat.format(reqDateTime.getTime());
        setLogString("Set away time as :" + endtime, true, CustomLogLevel.MEDIUM);

        boolean timeUpdated = true;
        Assert.assertTrue(clickAwayParamPicker(SetAwayParams.Hours),
                SetAwayParams.Hours + " picker not displayed.");

        final WebElement hourContainerElement = getElement(getDriver(), By.cssSelector("div.dwwl.dwwl0"),
                TINY_TIMEOUT);
        final WebElement minuteContainerElement = getElement(getDriver(), By.cssSelector("div.dwwl.dwwl1"),
                TINY_TIMEOUT);
        final WebElement ampmContainerElement = getElement(getDriver(), By.cssSelector("div.dwwl.dwwl2"),
                TINY_TIMEOUT);

        final WebElement hourCurrentReadingElement = getElementBySubElement(getDriver(), hourContainerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        int currentReadingValue = Integer.parseInt(hourCurrentReadingElement.getAttribute(DATA_VALUE));
        int expectedValue = reqDateTime.get(Calendar.HOUR);
        int setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;
        timeUpdated = timeUpdated
                && changeRequiredParameter(hourContainerElement, setPointValue, reqDateTime.get(Calendar.HOUR));

        final WebElement minuteCurrentReadingElement = getElementBySubElement(getDriver(), minuteContainerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        currentReadingValue = Integer.parseInt(minuteCurrentReadingElement.getAttribute(DATA_VALUE));
        expectedValue = reqDateTime.get(Calendar.MINUTE);
        setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;
        timeUpdated = timeUpdated
                && changeRequiredParameter(minuteContainerElement, setPointValue, reqDateTime.get(Calendar.MINUTE));

        final WebElement ampmCurrentReadingElement = getElementBySubElement(getDriver(), ampmContainerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        currentReadingValue = Integer.parseInt(ampmCurrentReadingElement.getAttribute(DATA_VALUE));
        expectedValue = reqDateTime.get(Calendar.AM_PM);
        setPointValue = currentReadingValue > expectedValue ? -(currentReadingValue - expectedValue)
                : expectedValue - currentReadingValue;
        timeUpdated = timeUpdated
                && changeRequiredParameter(ampmContainerElement, setPointValue, reqDateTime.get(Calendar.AM_PM));

        saveAwaySettings();
        return timeUpdated;
    }

    /**
     * Change required parameter.
     * @param containerElement the container element
     * @param noOfSetPoints the no of set points
     * @param expectedValue the expected value
     * @return true, if successful
     */
    private boolean changeRequiredParameter(final WebElement containerElement, final int noOfSetPoints,
            final int expectedValue) {

        final int setPoints = Math.abs(noOfSetPoints);
        final WebElement upOrDownArrow = expectedValue > 0
                ? getElementBySubElement(getDriver(), containerElement, By.cssSelector("a.dwb-e.dwwb.dwwbm"),
                        SHORT_TIMEOUT)
                : getElementBySubElement(getDriver(), containerElement, By.cssSelector("a.dwb-e.dwwb.dwwbp"),
                        SHORT_TIMEOUT);

        for (int count = 0; count < setPoints; count++) {
            getAction().click(upOrDownArrow);
        }

        final WebElement currentReadingElement = getElementBySubElement(getDriver(), containerElement,
                By.cssSelector(CURRENT_VALUE), TINY_TIMEOUT);
        final Integer currentReadingValue = Integer.parseInt(currentReadingElement.getAttribute(DATA_VALUE));

        return currentReadingValue.equals(expectedValue);
    }

    /**
     * Gets the default time to set away.
     * @return String default away time
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#getDefaultAwayTime
     */
    @Override
    public String getDefaultAwayTime() {

        final List<WebElement> dateTimePickers = getElements(getDriver(),
                By.cssSelector(".setAwayPicker.awayEndDateTimePicker"), TINY_TIMEOUT);

        final String currentTimeString = dateTimePickers.get(1).getText();

        return currentTimeString;
    }

    /**
     * Click Set button in away popup.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#clickSetButton()
     */
    @Override
    public void clickSetButton() {

        setLogString("Click Set Button", true, CustomLogLevel.MEDIUM);
        final WebElement footerElement = getElement(getDriver(), By.cssSelector(".footerAwayPicker"),
                SHORT_TIMEOUT);
        final WebElement awaySettingsPopUp = getElementBySubElement(getDriver(), footerElement,
                By.cssSelector(".ctaButton.setAwaySubmitButton"), TINY_TIMEOUT);
        getAction().click(awaySettingsPopUp);
        getAction().rejectAlert();
    }

    /**
     * Click Set Away from Settigns page.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#clickAwaySettings()
     */
    @Override
    public void clickAwaySettings() {

        WaitUtil.tinyWait();
        setLogString("Click SetAway in Settings", true, CustomLogLevel.MEDIUM);
        getAction().rejectAlert();
        final WebElement awaySettings = getElement(getDriver(), By.cssSelector(AWAY_SETTINGS), TINY_TIMEOUT);
        WaitUtil.oneSec();
        awaySettings.click();
        getAction().rejectAlert();
    }

    /**
     * verify whether set away page loaded from Settings page.
     * @return true, if set away page loaded from settings page.
     */
    @Override
    public boolean isSetAwayPageLoaded() {

        final boolean element = isDisplayed(getDriver(), By.cssSelector(AWAY_SETTINGS), TINY_TIMEOUT);
        return element;
    }

    /**
     * Alert message.
     * @return true, if successful.
     * @see com.ecofactor.qa.automation.newapp.page.SetAwayPage#alertMessage()
     */
    @Override
    public boolean alertMessage() {

        setLogString("Verify with alert Message", true, CustomLogLevel.MEDIUM);
        final boolean alertValue = isDisplayed(getDriver(), By.cssSelector(".settings_alert_label"), TINY_TIMEOUT);
        if (alertValue) {

            final WebElement alertMessage = getElement(getDriver(), By.cssSelector(".settings_alert_label"),
                    TINY_TIMEOUT);
            setLogString("Alert Message" + alertMessage.getText(), true, CustomLogLevel.MEDIUM);
        }
        return true;
    }

}