package zacksolutions.SeleniumPractice;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

import java.time.Duration;

public class RadioButtonTest {
    public WebDriver driver;

    @BeforeTest
    @Parameters("Browser")
    public void Setup(String browser) {
        if (browser.equalsIgnoreCase("Chrome")) {
/*
            ChromeOptions options = new ChromeOptions();
            try {
                driver = new RemoteWebDriver(new URL("http://192.168.1.215:4444/wd/hub"), options);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
*/
            System.getProperty("web-driver.chrome", "user.dir" + "/InterviewCodingQuestionsQA/Drivers/chromedriver");
            driver = new ChromeDriver();
        } if (browser.equalsIgnoreCase("FireFox")) {
/*
            FirefoxOptions options = new FirefoxOptions();
            try {
                driver = new RemoteWebDriver(new URL("http://192.168.1.215:4444/wd/hub"), options);
            } catch (MalformedURLException e) {
                // TODO: handle exception
                e.printStackTrace();
            }
*/
            System.getProperty("web-driver.gecko", ("user.dir") + "InterviewCodingQuestionsQA/Drivers/geckodriver");
            driver = new FirefoxDriver();
        }
        driver.get("https://demoqa.com/radio-button");
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30));
    }

    @Test
    public void RadioButton() throws InterruptedException {
        driver.findElement(By.xpath("//div[@class='col-12 mt-4 col-md-6']//div//div[3]")).click();
        String text = driver.findElement(By.xpath("//p[@class='mt-3']")).getText();
        Assert.assertEquals(text, "You have selected Impressive");
    }

    @AfterTest
    public void tearDown() throws InterruptedException {
        driver.close();
    }
}
