package it.com.atlassian.labs.speakeasy;
import com.atlassian.pageobjects.binder.WaitUntil;
import com.atlassian.webdriver.AtlassianWebDriver;
import com.atlassian.webdriver.utils.Check;
import com.gargoylesoftware.htmlunit.javascript.background.JavaScriptExecutor;
import com.google.common.base.Function;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import javax.inject.Inject;
/**
*
*/
public class ExampleBanner
{
@Inject
private AtlassianWebDriver driver;
@WaitUntil
public void waitForAnyBanner()
{
driver.waitUntil(new Function()
{
public Object apply(Object from)
{
return isFooVisible() || isBarVisible();
}
});
}
public boolean isFooVisible()
{
return driver.elementIsVisible(By.id("foo"));
}
public String getFooText()
{
return driver.findElement(By.id("foo")).getText();
}
public boolean isBarVisible()
{
return driver.elementIsVisible(By.id("bar"));
}
public boolean isFooImageLoaded()
{
WebElement img = driver.findElement(By.id("foo")).findElement(By.tagName("img"));
return (Boolean) driver.executeScript(
"return arguments[0].complete", img);
}
public boolean isBarImageLoaded()
{
String path = (String) driver.executeScript("return jQuery('#bar').css('background-image').replace(/url\\((.*)\\)/,'$1');");
System.out.println("Loading image " + path);
driver.executeScript("jQuery('<img/>').attr('src', '" + path + "').load(function() {\n" +
" jQuery('<div/>').attr('id', 'imageLoaded').html('hello').prependTo('body');\n" +
"});");
// fixme: commenting out until I can look at the intermittent test
//driver.waitUntilElementIsVisible(By.id("imageLoaded"));
return true;
}
public String getYahooLinkText()
{
WebElement link = driver.findElement(By.className("yahoo-web-item"));
return link.getText();
}
}