import org.apache.commons.io.FileUtils;
import org.junit.*;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import org.junit.runners.MethodSorters;
import org.openqa.selenium.OutputType;
import org.slf4j.LoggerFactory;
import objects.ImageSearchResult;
import static org.junit.Assert.assertNotNull;
import java.io.File;
import java.io.IOException;
/**
* Testdroid Image Recognition Sample Test
*
* https://git@github.com/bitbar/testdroid-samples
*
* Usage:
*
* @TODO
*
* @author support@bitbar.com
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class AndroidSample extends TestdroidImageRecognition {
public AndroidSample() throws Exception {
super();
logger = LoggerFactory.getLogger(AndroidSample.class);
}
@BeforeClass
public static void setUp() throws Exception {
driver = getAndroidDriver();
}
@AfterClass
public static void tearDown() {
if (driver != null) {
log("Quitting Appium driver at tearDown");
driver.quit();
} else {
log("driver was null at tearDown");
}
}
@Rule
public TestWatcher watcher = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
String fullFileName = System.getProperty("user.dir") + "/" + System.getProperty("SCREENSHOT_FOLDER") + description.getMethodName() + "_failure.png";
try {
File scrFile = driver.getScreenshotAs(OutputType.FILE);
File testScreenshot = new File(fullFileName);
FileUtils.copyFile(scrFile, testScreenshot);
logger.info("Screenshot stored to {}", testScreenshot.getAbsolutePath());
logger.info("PAGE SOURCE:");
logger.info(driver.getPageSource());
} catch (IOException e2) {
e2.printStackTrace();
}
}
};
@Test
public void mainPageTest() throws Exception {
log("Image Recognition sample script started.");
takeScreenshot("Before hideKeyboard");
hideKeyboard();
ImageSearchResult result = findImageOnScreen("bitbar_logo.png");
assert(result.isFound());
log("Success.");
}
}