package org.example.training.web.integration;

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.example.training.web.integration.utilities.BrowserFactory;
import org.example.training.web.integration.utilities.SeleniumUtilites;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

public class GoogleTest 
{
	 private static WebDriver driver;
	    private static String baseUrl = "http://www.google.com";
	            
	    @BeforeClass
	    public static void setUpBeforeClass() throws Exception
	    {
	        driver = BrowserFactory.getDriver("firefox");
	    }
	    
	    @AfterClass
	    public static void teardownAfterClass() throws Exception
	    {
	        driver.quit();
	    }

	    @Test
	    public void testMainGooglePage() throws InterruptedException
	    {
	    	 driver.get(baseUrl);
	    	 SeleniumUtilites.waitForPageLoaded(driver);
	    	 String expected = "Google";
	    	 String actual = driver.getTitle();
	    	 assertEquals(expected, actual);
	    	 
	    	 WebElement searchBox = driver.findElement(By.name("q"));
	    	 searchBox.sendKeys("Java");
	    	 searchBox.sendKeys(Keys.RETURN);
	    	 SeleniumUtilites.waitForPageLoaded(driver);
	    	    	 
	    	 expected = "Java - Google Search";
	    	 actual = driver.getTitle();
	    	 assertEquals(expected, actual);
	    	 
	    	 Thread.sleep(3000);
	    }
}
