test.TestSubscription.java Source code

Java tutorial

Introduction

Here is the source code for test.TestSubscription.java

Source

/*
 * This file is part of the Cerebro distribution.
 * (https://github.com/voyages-sncf-technologies/cerebro)
 * Copyright (C) 2017 VSCT.
 *
 * Cerebro is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, version 3 of the License.
 *
 * Cerebro 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 General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

package test;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import utils.Utils;

public class TestSubscription {
    private static final Logger LOGGER = LoggerFactory.getLogger(TestSubscription.class);

    WebDriver driver;

    public TestSubscription(WebDriver driver) {
        this.driver = driver;
    }

    public void unsubscribe() {
        TestScenario.navigation.clickOnMyAlarms();

        Utils.clickWhenReady(driver, driver.findElements(By.name("alarm-row")).get(0));
        LOGGER.info("Click on available alarm");
        if (TestScenario.useKeycloak) {
            Utils.clickWhenReady(driver, By.id("dashboard-details-alarm"));
        } else {
            Utils.clickWhenReady(driver, By.id("alarms-details-alarm"));
        }
        LOGGER.info("Open alarm details");
        new WebDriverWait(driver, Utils.DEFAULT_WAITING_TIME)
                .until(ExpectedConditions.visibilityOf(driver.findElement(By.id("alarm-name-title"))));
        Utils.clickWhenReady(driver, driver.findElements(By.name("disable-subscription")).get(0));
        LOGGER.info("disable alarm subscription");
        new WebDriverWait(driver, Utils.DEFAULT_WAITING_TIME).until(
                ExpectedConditions.visibilityOf(driver.findElements(By.name("enabled-subscription")).get(0)));
    }

    public void subscribe() {
        TestScenario.navigation.searchAlarm();
        new WebDriverWait(driver, Utils.DEFAULT_WAITING_TIME).until(ExpectedConditions.visibilityOf(
                driver.findElement(By.xpath("//div[@name='alarm-row' and text()[contains(.,'Selenium test')]]"))));
        Utils.clickWhenReady(driver, driver.findElements(By.name("alarm-row")).get(0));
        LOGGER.info("click on alarm");
        Utils.clickWhenReady(driver, By.id("alarms-details-alarm"));
        LOGGER.info("Open alarm details");
        Utils.clickWhenReady(driver, driver.findElements(By.name("enabled-subscription")).get(0));
        TestScenario.navigation.clickOnMyAlarms();
        LOGGER.info("go on 'my alarms' tab");
        Utils.clickWhenReady(driver, driver.findElements(By.name("alarm-row")).get(0));
        if (TestScenario.useKeycloak) {
            Utils.clickWhenReady(driver, By.id("dashboard-details-alarm"));
        } else {
            Utils.clickWhenReady(driver, By.id("alarms-details-alarm"));
        }
    }
}