// Path: modules/integration/tests-common/ui-pages/src/main/java/org/wso2/es/integration/common/ui/page/LoginPage.java
// public class LoginPage {
//     private static final Log log = LogFactory.getLog(LoginPage.class);
//     private WebDriver driver;
//     private boolean isCloudEnvironment = false;
// 
//     public LoginPage(WebDriver driver) throws IOException {
//         this.driver = driver;
// 
//         // Check that we're on the right page.
//         if (!driver.getCurrentUrl().contains("login.jsp")) {
//             // Alternatively, we could navigate to the login page, perhaps logging out first
//             throw new IllegalStateException("This is not the login page");
//         }
//     }
// 
//     public LoginPage(WebDriver driver, boolean isCloudEnvironment) throws IOException {
//         this.driver = driver;
//         this.isCloudEnvironment = isCloudEnvironment;
//         // Check that we're on the right page.
//         if (this.isCloudEnvironment) {
//             if (!driver.getCurrentUrl().contains("home/index.html")) {
//                 // Alternatively, we could navigate to the login page, perhaps logging out first
//                 throw new IllegalStateException("This is not the cloud login page");
//             }
//             driver.findElement(By.xpath("//*[@id=\"content\"]/div[1]/div/a[2]/img")).click();
//         } else {
//             if (!(driver.getCurrentUrl().contains("login.jsp"))) {
//                 // Alternatively, we could navigate to the login page, perhaps logging out first
//                 throw new IllegalStateException("This is not the product login page");
//             }
//         }
//     }
// 
//     public HomePage loginAs(String userName, String password, boolean isTenant)
//             throws IOException {
//         log.info("login as " + userName + ":Tenant");
//         WebElement userNameField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.username.name")));
//         WebElement passwordField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.password")));
// 
//         userNameField.sendKeys(userName);
//         passwordField.sendKeys(password);
//         if (isCloudEnvironment) {
//             driver.findElement(
//                     By.xpath("//*[@id=\"loginForm\"]/table/tbody/tr[4]/td[2]/input"))
//                     .click();
//             return new HomePage(isTenant, driver);
//         } else {
//             driver.findElement(
//                     By.className(UIElementMapper.getInstance()
//                                          .getElement("login.sign.in.button"))).click();
//             return new HomePage(isTenant, driver);
//         }
//     }
// 
//     public HomePage loginAs(String userName, String password) throws IOException {
//         log.info("login as " + userName);
//         WebElement userNameField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.username.name")));
//         WebElement passwordField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.password")));
// 
//         userNameField.sendKeys(userName);
//         passwordField.sendKeys(password);
//         if (isCloudEnvironment) {
//             driver.findElement(By.xpath("//*[@id=\"loginForm\"]/table/tbody/tr[4]/td[2]/input")).click();
//             return new HomePage(driver, isCloudEnvironment);
//         } else {
//             driver.findElement(By.className(UIElementMapper.getInstance().getElement("login.sign.in.button"))).click();
//             return new HomePage(driver);
//         }
//     }
// 
// }


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.wso2.es.integration.common.ui.page.LoginPage;
import org.wso2.es.integration.common.ui.page.util.UIElementMapper;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
                .getText().toLowerCase().contains("home")) {
            throw new IllegalStateException("This is not the home page");
        }
    }

    public HomePage(WebDriver driver, boolean isCloudEnvironment) throws IOException {
        this.driver = driver;
        this.isCloudEnvironment = isCloudEnvironment;
        if (isCloudEnvironment) {
            if (!driver.findElement(By.className("dashboard-title")).getText().toLowerCase().contains("quick start dashboard")) {
                throw new IllegalStateException("This is not the cloud home page");
            }
        } else {
            // Check that we're on the right page.
            if (!driver.findElement(By.id(UIElementMapper.getInstance().getElement("home.dashboard.middle.text")))
                    .getText().toLowerCase().contains("home")) {
                throw new IllegalStateException("This is not the home page");
            }
        }
    }

    public HomePage(boolean isTenant, WebDriver driver) throws IOException {
        this.isTenant = isTenant;
        if (this.isTenant) {
            if (!driver.getCurrentUrl().contains("loginStatus=true")) {
                throw new IllegalStateException("This is not the home page");
            }
        }
    }

// Path: modules/integration/tests-common/ui-pages/src/main/java/org/wso2/es/integration/common/ui/page/LoginPage.java
// public class LoginPage {
//     private static final Log log = LogFactory.getLog(LoginPage.class);
//     private WebDriver driver;
//     private boolean isCloudEnvironment = false;
// 
//     public LoginPage(WebDriver driver) throws IOException {
//         this.driver = driver;
// 
//         // Check that we're on the right page.
//         if (!driver.getCurrentUrl().contains("login.jsp")) {
//             // Alternatively, we could navigate to the login page, perhaps logging out first
//             throw new IllegalStateException("This is not the login page");
//         }
//     }
// 
//     public LoginPage(WebDriver driver, boolean isCloudEnvironment) throws IOException {
//         this.driver = driver;
//         this.isCloudEnvironment = isCloudEnvironment;
//         // Check that we're on the right page.
//         if (this.isCloudEnvironment) {
//             if (!driver.getCurrentUrl().contains("home/index.html")) {
//                 // Alternatively, we could navigate to the login page, perhaps logging out first
//                 throw new IllegalStateException("This is not the cloud login page");
//             }
//             driver.findElement(By.xpath("//*[@id=\"content\"]/div[1]/div/a[2]/img")).click();
//         } else {
//             if (!(driver.getCurrentUrl().contains("login.jsp"))) {
//                 // Alternatively, we could navigate to the login page, perhaps logging out first
//                 throw new IllegalStateException("This is not the product login page");
//             }
//         }
//     }
// 
//     public HomePage loginAs(String userName, String password, boolean isTenant)
//             throws IOException {
//         log.info("login as " + userName + ":Tenant");
//         WebElement userNameField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.username.name")));
//         WebElement passwordField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.password")));
// 
//         userNameField.sendKeys(userName);
//         passwordField.sendKeys(password);
//         if (isCloudEnvironment) {
//             driver.findElement(
//                     By.xpath("//*[@id=\"loginForm\"]/table/tbody/tr[4]/td[2]/input"))
//                     .click();
//             return new HomePage(isTenant, driver);
//         } else {
//             driver.findElement(
//                     By.className(UIElementMapper.getInstance()
//                                          .getElement("login.sign.in.button"))).click();
//             return new HomePage(isTenant, driver);
//         }
//     }
// 
//     public HomePage loginAs(String userName, String password) throws IOException {
//         log.info("login as " + userName);
//         WebElement userNameField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.username.name")));
//         WebElement passwordField = driver.findElement(By.name(UIElementMapper.getInstance().getElement("login.password")));
// 
//         userNameField.sendKeys(userName);
//         passwordField.sendKeys(password);
//         if (isCloudEnvironment) {
//             driver.findElement(By.xpath("//*[@id=\"loginForm\"]/table/tbody/tr[4]/td[2]/input")).click();
//             return new HomePage(driver, isCloudEnvironment);
//         } else {
//             driver.findElement(By.className(UIElementMapper.getInstance().getElement("login.sign.in.button"))).click();
//             return new HomePage(driver);
//         }
//     }
// 
// }


// Path: modules/integration/tests-common/ui-pages/src/main/java/org/wso2/es/integration/common/ui/page/main/HomePage.java
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.wso2.es.integration.common.ui.page.LoginPage;
import org.wso2.es.integration.common.ui.page.util.UIElementMapper;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

                .getText().toLowerCase().contains("home")) {
            throw new IllegalStateException("This is not the home page");
        }
    }

    public HomePage(WebDriver driver, boolean isCloudEnvironment) throws IOException {
        this.driver = driver;
        this.isCloudEnvironment = isCloudEnvironment;
        if (isCloudEnvironment) {
            if (!driver.findElement(By.className("dashboard-title")).getText().toLowerCase().contains("quick start dashboard")) {
                throw new IllegalStateException("This is not the cloud home page");
            }
        } else {
            // Check that we're on the right page.
            if (!driver.findElement(By.id(UIElementMapper.getInstance().getElement("home.dashboard.middle.text")))
                    .getText().toLowerCase().contains("home")) {
                throw new IllegalStateException("This is not the home page");
            }
        }
    }

    public HomePage(boolean isTenant, WebDriver driver) throws IOException {
        this.isTenant = isTenant;
        if (this.isTenant) {
            if (!driver.getCurrentUrl().contains("loginStatus=true")) {
                throw new IllegalStateException("This is not the home page");
            }
        }
    }

    public LoginPage logout() throws IOException {