add new changes
[pub/Android/ownCloud.git] / automationTest / src / test / java / androidtest / models / MainView.java
index 66523f9..6228f0e 100644 (file)
@@ -1,6 +1,5 @@
 package androidtest.models;
 
 package androidtest.models;
 
-import java.util.HashMap;
 import java.util.List;
 
 import io.appium.java_client.android.AndroidDriver;
 import java.util.List;
 
 import io.appium.java_client.android.AndroidDriver;
@@ -8,14 +7,15 @@ import io.appium.java_client.android.AndroidElement;
 import io.appium.java_client.pagefactory.AndroidFindBy;
 import io.appium.java_client.pagefactory.AppiumFieldDecorator;
 
 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 org.openqa.selenium.support.CacheLookup;
 import org.openqa.selenium.support.PageFactory;
 
+import androidtest.actions.Actions;
+
 public class MainView {
        final AndroidDriver driver;
        
 public class MainView {
        final AndroidDriver driver;
        
-       @CacheLookup
        @AndroidFindBy(uiAutomator = "new UiSelector().description(\"More options\")")
        private AndroidElement menuButton;
        
        @AndroidFindBy(uiAutomator = "new UiSelector().description(\"More options\")")
        private AndroidElement menuButton;
        
@@ -27,8 +27,8 @@ public class MainView {
        @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"android:id/action_bar_title\")")
        private AndroidElement titleText;
        
        @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\")")
 
        @CacheLookup
        @AndroidFindBy(uiAutomator = "new UiSelector().description(\"New folder\")")
@@ -38,12 +38,6 @@ public class MainView {
        @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Upload\")")
        private AndroidElement uploadButton;
        
        @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")
        private AndroidElement waitAMomentText;
        
        @AndroidFindBy(id = "com.owncloud.android:id/ListItemLayout")
@@ -52,15 +46,6 @@ public class MainView {
        @AndroidFindBy(id = "com.owncloud.android:id/list_root")
        private AndroidElement listRootLayout;
        
        @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;
        
        @AndroidFindBy(name = "Files")
        private AndroidElement filesElementUploadFile;
        
@@ -68,27 +53,19 @@ public class MainView {
        
        private AndroidElement fileElementLayout;
        
        
        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 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();
                menuButton.click();
-       }
-       
-       public SettingsView clickOnSettingsButton () {
-               settingsButton.click();
-               SettingsView settingsView = new SettingsView(driver);
-               return settingsView;
+               MenuList menuList = new MenuList (driver);
+               return menuList;
        }
        
        public SettingsView getSettingsView () {
        }
        
        public SettingsView getSettingsView () {
@@ -96,34 +73,10 @@ public class MainView {
                return settingsView;
        }
        
                return settingsView;
        }
        
-       public void clickOnNewFolderButton () {
+       public NewFolderPopUp clickOnNewFolderButton () {
                newFolderButton.click();
                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 () {
        }
        
        public void clickOnUploadButton () {
@@ -156,24 +109,38 @@ public class MainView {
                return fileElement;
        }
        
                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;
        }
                return fileElement;
        }
        
        public AndroidElement getFileElementLayout () {
                return fileElementLayout;
        }
+       
+       public AndroidElement getProgressCircular () {
+               return progressCircular;
+       }
+       
+       public static String getLocalFileIndicator() {
+               return localFileIndicator;
+       }
+       
+       public static String getFavoriteFileIndicator() {
+               return favoriteFileIndicator;
+       }
+
+
 }
 }