package com.POMFramework.tests;


import static org.testng.Assert.assertTrue;


import java.net.URL;
import java.util.concurrent.TimeUnit;


import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.LocalFileDetector;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;


public class LamdaTestUploadFileRemotely {


  private RemoteWebDriver driver;


  @BeforeClass
  public void setUp() throws Exception {


    ChromeOptions capabilities = new ChromeOptions();
    capabilities.setCapability("user","<username>");
    capabilities.setCapability("accessKey","<accesskey>");
    capabilities.setCapability("build", "Build 2");
    capabilities.setCapability("name", "Check Uploaded Image");
    capabilities.setCapability("platformName", "Windows 10");
    capabilities.setCapability("browserName", "Chrome");
    capabilities.setCapability("browserVersion","79.0");
     
        driver = new RemoteWebDriver(new URL("http://hub.lambdatest.com:80/wd/hub"), capabilities);
        driver.setFileDetector(new LocalFileDetector());
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
 
  }


  @Test
  public void lamdaTest() throws Exception {
    driver.get("https://blueimp.github.io/jQuery-File-Upload/");
    Thread.sleep(2000);
    WebElement addFile = driver.findElement(By.xpath(".//input[@type='file']"));
    addFile.sendKeys("path to your file to upload");
   
    driver.findElement(By.xpath(".//span[text()='Start upload']")).click();


    Thread.sleep(2000);
    if(driver.findElement(By.xpath(".//a[text()='c1.jpeg']")).isDisplayed()) {
      assertTrue(true, "Image Uploaded");
    }else {
      assertTrue(false, "Image not Uploaded");
    }
  }


  @AfterClass
  public void tearDown() throws Exception {
    driver.quit();
  }
}