upload a few automated test
[pub/Android/ownCloud.git] / automationTest / src / test / java / androidtest / tests / CommonTest.java
1 package androidtest.tests;
2
3 import java.io.File;
4 import java.net.URL;
5
6 import org.openqa.selenium.By;
7 import org.openqa.selenium.NoSuchElementException;
8 import org.openqa.selenium.remote.DesiredCapabilities;
9
10 import androidtest.models.LoginForm;
11 import androidtest.models.MainView;
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 CommonTest extends TestCase{
17 AndroidDriver driver;
18 final int waitingTime = 30;
19
20 protected void setUpCommonDriver () throws Exception {
21 File rootPath = new File(System.getProperty("user.dir"));
22 File appDir = new File(rootPath,"src/test/resources");
23 File app = new File(appDir,"ownCloud.apk");
24 DesiredCapabilities capabilities = new DesiredCapabilities();
25 capabilities.setCapability("platformName", "Android");
26 capabilities.setCapability("deviceName", "Device");
27 capabilities.setCapability("app", app.getAbsolutePath());
28 capabilities.setCapability("app-package", "com.owncloud.android");
29 capabilities.setCapability("app-activity", ".ui.activity.FileDisplayActivity");
30 capabilities.setCapability("appWaitActivity", ".authentication.AuthenticatorActivity");
31 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
32 }
33
34 protected boolean waitForTextPresent(String text, AndroidElement element) throws InterruptedException{
35 for (int second = 0;;second++){
36 if (second >= waitingTime)
37 return false;
38 try{
39 if (text.equals(element.getText()))
40 break;
41 } catch (Exception e){
42
43 }
44 Thread.sleep(1000);
45 }
46 return true;
47 }
48
49 protected boolean isElementPresent(AndroidElement element, By by) {
50 try {
51 element.findElement(by);
52 return true;
53 } catch (NoSuchElementException e) {
54 return false;
55 }
56 }
57
58 protected MainView login(String url, String user, String password) throws InterruptedException {
59 LoginForm loginForm = new LoginForm(driver);
60 loginForm.typeHostUrl(url);
61 loginForm.clickOnUserName();
62 waitForTextPresent("Secure connection established", loginForm.getServerStatusTextElement());
63 assertTrue(waitForTextPresent("Secure connection established", loginForm.getServerStatusTextElement()));
64 loginForm.typeUserName(user);
65 loginForm.typePassword(password);
66 return loginForm.clickOnConnectButton();
67 }
68
69 }