com.francetelecom.clara.cloud.webapp.acceptancetest.pages.PopulatePage.java Source code

Java tutorial

Introduction

Here is the source code for com.francetelecom.clara.cloud.webapp.acceptancetest.pages.PopulatePage.java

Source

/**
 * Copyright (C) 2015 Orange
 * Licensed 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 com.francetelecom.clara.cloud.webapp.acceptancetest.pages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PopulatePage extends BasePage {

    @FindBy(name = "appPopulationCreationsubmit")
    private WebElement submitButton;

    Logger logger = LoggerFactory.getLogger(PopulatePage.class);

    public PopulatePage(WebDriver wd) {
        super(wd);
        logger.debug("current url is : " + wd.getCurrentUrl());
        logger.debug("page title : " + wd.getTitle());
        // assert that we are on the right page
        if (!"orange paas - populate data".equals(wd.getTitle())) {
            throw new IllegalStateException("this is not the populate data page, title page = " + wd.getTitle());
        }
        logger.debug("you are in populate data page");
    }

    public HomePage createJeeProbeAppAndItsRelease() {
        return createAppAndItsReleaseFor("jeeProbeLogicalModelCatalog");
    }

    public HomePage createSimpleProbeAppAndItsRelease() {
        return createAppAndItsReleaseFor("simpleProbeLogicalModelCatalog");
    }

    public HomePage createAppAndItsReleaseFor(String populateApplicationName) {
        logger.debug("Looking for app {}", populateApplicationName);
        WebElement checkbox = getWd().findElement(By.id(populateApplicationName));
        click(checkbox);
        return submitAndGetHomePage();
    }

    private void click(WebElement checkbox) {
        checkbox.click();
        logger.debug("{} checkbox has been checked", checkbox.getAttribute("id"));
    }

    private HomePage submitAndGetHomePage() {
        // click on "populate datas" button
        submitButton.click();
        logger.debug("populate datas button has been clicked");
        return PageFactory.initElements(getWd(), HomePage.class);
    }
}