package androidtest.models;
-import java.util.HashMap;
import java.util.List;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
-import org.openqa.selenium.remote.RemoteWebElement;
+import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.support.CacheLookup;
import org.openqa.selenium.support.PageFactory;
+import androidtest.actions.Actions;
+
public class MainView {
final AndroidDriver driver;
- @CacheLookup
@AndroidFindBy(uiAutomator = "new UiSelector().description(\"More options\")")
private AndroidElement menuButton;
@AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"android:id/action_bar_title\")")
private AndroidElement titleText;
- @AndroidFindBy(name = "Settings")
- private AndroidElement settingsButton;
+ @AndroidFindBy(id = "android:id/progress_circular")
+ private AndroidElement progressCircular;
@CacheLookup
@AndroidFindBy(uiAutomator = "new UiSelector().description(\"New folder\")")
@AndroidFindBy(uiAutomator = "new UiSelector().description(\"Upload\")")
private AndroidElement uploadButton;
- @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"com.owncloud.android:id/user_input\")")
- private AndroidElement newFolderNameField;
-
- @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"android:id/button1\")")
- private AndroidElement newFolderOkButton;
-
private AndroidElement waitAMomentText;
@AndroidFindBy(id = "com.owncloud.android:id/ListItemLayout")
@AndroidFindBy(id = "com.owncloud.android:id/list_root")
private AndroidElement listRootLayout;
- @AndroidFindBy(name = "Remove")
- private AndroidElement removeFileElement;
-
- @AndroidFindBy(name = "Details")
- private AndroidElement detailsFileElement;
-
- @AndroidFindBy(name = "Remote and local")
- private AndroidElement remoteAndLocalButton;
-
@AndroidFindBy(name = "Files")
private AndroidElement filesElementUploadFile;
private AndroidElement fileElementLayout;
+ private static String localFileIndicator = "com.owncloud.android:id/localFileIndicator";
+ private static String favoriteFileIndicator = "com.owncloud.android:id/favoriteIcon";
+
public MainView (AndroidDriver driver) {
this.driver = driver;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
- public void clickOnMenuButton () {
- //TODO. DETECT WHEN HAPPENS WHEN THERE IS NOT BUTTON IN THE TOPBAR
- //if(menuButton.exists()){
- //menuButton.click();
- //}else{
- //Thread.sleep(10000);
- //getUiDevice().pressMenu();
- //}
+ public MenuList clickOnMenuButton () {
menuButton.click();
- }
-
- public SettingsView clickOnSettingsButton () {
- settingsButton.click();
- SettingsView settingsView = new SettingsView(driver);
- return settingsView;
+ MenuList menuList = new MenuList (driver);
+ return menuList;
}
public SettingsView getSettingsView () {
return settingsView;
}
- public void clickOnNewFolderButton () {
+ public NewFolderPopUp clickOnNewFolderButton () {
newFolderButton.click();
- }
-
- public void clickOnRemoveFileElement () {
- removeFileElement.click();
- }
-
- public AppDetailsView clickOnDetailsFileElement () {
- detailsFileElement.click();
- AppDetailsView appDetailsView = new AppDetailsView(driver);
- return appDetailsView;
- }
-
- public void typeNewFolderName (String newFolderName) {
- newFolderNameField.clear();
- newFolderNameField.sendKeys(newFolderName);
- driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK);
- }
-
- public void clickOnNewFolderOkButton () {
- newFolderOkButton.click();
- waitAMomentText = (AndroidElement) driver.findElementByName("Wait a moment");
- }
-
- public void clickOnRemoteAndLocalButton () {
- remoteAndLocalButton.click();
- waitAMomentText = (AndroidElement) driver.findElementByName("Wait a moment");
+ NewFolderPopUp newFolderPopUp = new NewFolderPopUp(driver);
+ return newFolderPopUp;
}
public void clickOnUploadButton () {
return fileElement;
}
- public void tapOnFileElement (String fileName) {
- scrollTillFindElement(fileName);
- fileElement.tap(1, 1000);
+ public ElementMenuOptions longPressOnElement (String elementName) {
+ scrollTillFindElement(elementName).tap(1, 1000);
+ //fileElement.tap(1, 1000);
+ ElementMenuOptions menuOptions = new ElementMenuOptions(driver);
+ return menuOptions;
}
- public AndroidElement scrollTillFindElement (String fileName) {
- HashMap<String, String> scrollObject = new HashMap<String, String>();
- scrollObject.put("text", fileName);
- scrollObject.put("element", ( (RemoteWebElement) filesLayout).getId());
- if(filesLayout.getAttribute("scrollable").equals("true")){
- driver.executeScript("mobile: scrollTo", scrollObject);
+ public AndroidElement scrollTillFindElement (String elementName) {
+ fileElement = Actions.scrollTillFindElement (elementName,filesLayout,driver);
+ try {
+ fileElementLayout = (AndroidElement) driver.findElementByAndroidUIAutomator("new UiSelector().description(\"LinearLayout-"+ elementName +"\")");
+ } catch (NoSuchElementException e) {
+ fileElementLayout = null;
}
- fileElement = (AndroidElement) driver.findElementByName(fileName);
- fileElementLayout = (AndroidElement) driver.findElementByAndroidUIAutomator("new UiSelector().description(\"LinearLayout-"+ fileName +"\")");
return fileElement;
}
public AndroidElement getFileElementLayout () {
return fileElementLayout;
}
+
+ public AndroidElement getProgressCircular () {
+ return progressCircular;
+ }
+
+ public static String getLocalFileIndicator() {
+ return localFileIndicator;
+ }
+
+ public static String getFavoriteFileIndicator() {
+ return favoriteFileIndicator;
+ }
+
+
}