add new test cases
[pub/Android/ownCloud.git] / automationTest / src / test / java / androidtest / models / MainView.java
1 package androidtest.models;
2
3 import java.util.List;
4
5 import io.appium.java_client.android.AndroidDriver;
6 import io.appium.java_client.android.AndroidElement;
7 import io.appium.java_client.pagefactory.AndroidFindBy;
8 import io.appium.java_client.pagefactory.AppiumFieldDecorator;
9
10 import org.openqa.selenium.NoSuchElementException;
11 import org.openqa.selenium.support.CacheLookup;
12 import org.openqa.selenium.support.PageFactory;
13
14 import androidtest.actions.Actions;
15
16 public class MainView {
17 final AndroidDriver driver;
18
19 @AndroidFindBy(uiAutomator = "new UiSelector().description(\"More options\")")
20 private AndroidElement menuButton;
21
22 @CacheLookup
23 @AndroidFindBy(id = "com.owncloud.android:id/list_root")
24 private AndroidElement filesLayout;
25
26 @CacheLookup
27 @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"android:id/action_bar_title\")")
28 private AndroidElement titleText;
29
30 @AndroidFindBy(id = "android:id/progress_circular")
31 private AndroidElement progressCircular;
32
33 @CacheLookup
34 @AndroidFindBy(uiAutomator = "new UiSelector().description(\"New folder\")")
35 private AndroidElement newFolderButton;
36
37 @CacheLookup
38 @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Upload\")")
39 private AndroidElement uploadButton;
40
41 private AndroidElement waitAMomentText;
42
43 @AndroidFindBy(id = "com.owncloud.android:id/ListItemLayout")
44 private List<AndroidElement> listItemLayout;
45
46 @AndroidFindBy(id = "com.owncloud.android:id/list_root")
47 private AndroidElement listRootLayout;
48
49 @AndroidFindBy(name = "Files")
50 private AndroidElement filesElementUploadFile;
51
52 private AndroidElement fileElement;
53
54 private AndroidElement fileElementLayout;
55
56 private static String localFileIndicator = "com.owncloud.android:id/localFileIndicator";
57 private static String favoriteFileIndicator = "com.owncloud.android:id/favoriteIcon";
58
59
60 public MainView (AndroidDriver driver) {
61 this.driver = driver;
62 PageFactory.initElements(new AppiumFieldDecorator(driver), this);
63 }
64
65 public MenuList clickOnMenuButton () {
66 menuButton.click();
67 MenuList menuList = new MenuList (driver);
68 return menuList;
69 }
70
71 public SettingsView getSettingsView () {
72 SettingsView settingsView = new SettingsView(driver);
73 return settingsView;
74 }
75
76 public NewFolderPopUp clickOnNewFolderButton () {
77 newFolderButton.click();
78 NewFolderPopUp newFolderPopUp = new NewFolderPopUp(driver);
79 return newFolderPopUp;
80 }
81
82 public void clickOnUploadButton () {
83 uploadButton.click();
84 }
85
86 public FilesView clickOnFilesElementUploadFile () {
87 filesElementUploadFile.click();
88 FilesView filesView = new FilesView(driver);
89 return filesView;
90 }
91
92 public AndroidElement getTitleTextElement () {
93 return titleText;
94 }
95
96 public AndroidElement getWaitAMomentTextElement () {
97 return waitAMomentText;
98 }
99
100 public AndroidElement getListRootElement () {
101 return listRootLayout;
102 }
103
104 public List<AndroidElement> getListItemLayout () {
105 return listItemLayout;
106 }
107
108 public AndroidElement getFileElement () {
109 return fileElement;
110 }
111
112 public ElementMenuOptions longPressOnElement (String elementName) {
113 scrollTillFindElement(elementName).tap(1, 1000);
114 //fileElement.tap(1, 1000);
115 ElementMenuOptions menuOptions = new ElementMenuOptions(driver);
116 return menuOptions;
117 }
118
119 public AndroidElement scrollTillFindElement (String elementName) {
120 fileElement = Actions.scrollTillFindElement (elementName,filesLayout,driver);
121 try {
122 fileElementLayout = (AndroidElement) driver.findElementByAndroidUIAutomator("new UiSelector().description(\"LinearLayout-"+ elementName +"\")");
123 } catch (NoSuchElementException e) {
124 fileElementLayout = null;
125 }
126 return fileElement;
127 }
128
129 public AndroidElement getFileElementLayout () {
130 return fileElementLayout;
131 }
132
133 public AndroidElement getProgressCircular () {
134 return progressCircular;
135 }
136
137 public static String getLocalFileIndicator() {
138 return localFileIndicator;
139 }
140
141 public static String getFavoriteFileIndicator() {
142 return favoriteFileIndicator;
143 }
144
145
146 }