add new test cases
[pub/Android/ownCloud.git] / automationTest / src / test / java / androidtest / tests / Common.java
1 package androidtest.tests;
2
3 import java.io.File;
4 import java.net.URL;
5 import java.util.concurrent.TimeUnit;
6
7 import org.openqa.selenium.By;
8 import org.openqa.selenium.NoSuchElementException;
9 import org.openqa.selenium.TimeoutException;
10 import org.openqa.selenium.remote.DesiredCapabilities;
11 import org.openqa.selenium.support.ui.WebDriverWait;
12 import io.appium.java_client.android.AndroidDriver;
13 import io.appium.java_client.android.AndroidElement;
14 import junit.framework.TestCase;
15
16 public class Common extends TestCase{
17 AndroidDriver driver;
18 static int waitingTime = 30;
19
20 WebDriverWait wait;
21
22 protected void setUpCommonDriver () throws Exception {
23 File rootPath = new File(System.getProperty("user.dir"));
24 File appDir = new File(rootPath,"src/test/resources");
25 File app = new File(appDir,"ownCloud.apk");
26 DesiredCapabilities capabilities = new DesiredCapabilities();
27 capabilities.setCapability("platformName", "Android");
28 capabilities.setCapability("deviceName", "Device");
29 capabilities.setCapability("app", app.getAbsolutePath());
30 capabilities.setCapability("app-package", "com.owncloud.android");
31 capabilities.setCapability("app-activity", ".ui.activity.FileDisplayActivity");
32 capabilities.setCapability("appWaitActivity", ".authentication.AuthenticatorActivity");
33 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
34 driver.manage().timeouts().implicitlyWait(waitingTime, TimeUnit.SECONDS);
35 wait = new WebDriverWait(driver, waitingTime, 50);
36
37 }
38
39 protected boolean waitForTextPresent(String text, AndroidElement element) throws InterruptedException{
40 for (int second = 0;;second++){
41 if (second >= waitingTime)
42 return false;
43 try{
44 if (text.equals(element.getText()))
45 break;
46 } catch (Exception e){
47
48 }
49 Thread.sleep(1000);
50 }
51 return true;
52 }
53
54 protected boolean isElementPresent(AndroidElement element, By by) {
55 try {
56 element.findElement(by);
57 return true;
58 } catch (NoSuchElementException e) {
59 return false;
60 }
61 }
62
63 protected boolean isElementPresent(AndroidElement element) {
64 try{
65 element.isDisplayed();
66 } catch (NoSuchElementException e){
67 return false;
68 }
69 return true;
70 }
71
72 //pollingTime in milliseconds
73 public static void waitTillElementIsNotPresent (AndroidElement element, int pollingTime) throws Exception {
74 for (int time = 0;;time += pollingTime){
75 if (time >= waitingTime * 1000) //convert to milliseconds
76 break;
77 try{
78 element.isDisplayed();
79 } catch (NoSuchElementException e){
80 return;
81 }
82 Thread.sleep(pollingTime);
83 }
84 throw new TimeoutException();
85 }
86
87 }