package it.com.atlassian.labs.speakeasy;
import com.atlassian.pageobjects.PageBinder;
import com.atlassian.pageobjects.ProductInstance;
import com.atlassian.pageobjects.binder.WaitUntil;
import com.atlassian.webdriver.AtlassianWebDriver;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import javax.inject.Inject;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import static it.com.atlassian.labs.speakeasy.ProductUtils.flushMailQueue;
/**
*
*/
public class ForkDialog
{
@Inject
private AtlassianWebDriver driver;
@Inject
private PageBinder binder;
@FindBy(id="fork-dialog")
private WebElement dialogElement;
@FindBy(className="fork-submit")
private WebElement forkSubmit;
@FindBy(id="fork-description")
private WebElement forkDescription;
private final String pluginKey;
@Inject
private ProductInstance productInstance;
public ForkDialog(String pluginKey)
{
this.pluginKey = pluginKey;
}
@WaitUntil
public void waitUntilOpen()
{
driver.waitUntilElementIsVisibleAt(By.className("fork-submit"), dialogElement);
}
public ForkDialog setDescription(String text)
{
forkDescription.clear();
forkDescription.sendKeys(text);
return this;
}
public SpeakeasyUserPage fork() throws IOException
{
forkSubmit.click();
driver.waitUntilElementIsNotLocated(By.id("fork-dialog"));
driver.waitUntilElementIsNotLocated(By.className("waiting"));
SpeakeasyUserPage page = binder.bind(SpeakeasyUserPage.class);
page.waitForMessages();
flushMailQueue(productInstance);
return page;
}
}