X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/3aa425a7b576c2e74672eb3a8731cf03afd8f38d..ba1470a9884507fa57b2b01fdb9c601f52587b83:/automationTest/src/test/java/androidtest/actions/Actions.java diff --git a/automationTest/src/test/java/androidtest/actions/Actions.java b/automationTest/src/test/java/androidtest/actions/Actions.java index 952b01fd..a89f5de5 100644 --- a/automationTest/src/test/java/androidtest/actions/Actions.java +++ b/automationTest/src/test/java/androidtest/actions/Actions.java @@ -1,26 +1,112 @@ package androidtest.actions; +import java.util.HashMap; + +import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.remote.RemoteWebElement; + import io.appium.java_client.android.AndroidDriver; +import io.appium.java_client.android.AndroidElement; + +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import androidtest.models.CertificatePopUp; +import androidtest.models.ElementMenuOptions; +import androidtest.models.FilesView; +import androidtest.models.LoginForm; import androidtest.models.MainView; +import androidtest.models.MenuList; +import androidtest.models.NewFolderPopUp; +import androidtest.models.RemoveConfirmationView; import androidtest.models.SettingsView; +import androidtest.models.WaitAMomentPopUp; +import androidtest.tests.Common; public class Actions { - + + public static MainView login(String url, String user, String password, Boolean isTrusted, AndroidDriver driver) throws InterruptedException { + LoginForm loginForm = new LoginForm(driver); + CertificatePopUp certificatePopUp = loginForm.typeHostUrl(url); + if(!isTrusted){ + driver.runAppInBackground(3); + WebDriverWait wait = new WebDriverWait(driver, 30); + wait.until(ExpectedConditions.visibilityOf(certificatePopUp.getOkButtonElement())); + certificatePopUp.clickOnOkButton(); + } + loginForm.typeUserName(user); + loginForm.typePassword(password); + //TODO. Assert related to check the connection? + return loginForm.clickOnConnectButton(); + } + + public static WaitAMomentPopUp createFolder(String folderName, MainView mainView){ + NewFolderPopUp newFolderPopUp = mainView.clickOnNewFolderButton(); + newFolderPopUp.typeNewFolderName(folderName); + WaitAMomentPopUp waitAMomentPopUp = newFolderPopUp.clickOnNewFolderOkButton(); + //TODO. assert here + return waitAMomentPopUp; + } + + + public static AndroidElement scrollTillFindElement (String elementName, AndroidElement element, AndroidDriver driver) { + AndroidElement fileElement; + + if(element.getAttribute("scrollable").equals("true")){ + HashMap scrollObject = new HashMap(); + scrollObject.put("text", elementName); + scrollObject.put("element", ( (RemoteWebElement) element).getId()); + driver.executeScript("mobile: scrollTo", scrollObject); + } + try { + fileElement = (AndroidElement) driver.findElementByName(elementName); + } catch (NoSuchElementException e) { + fileElement = null; + } + return fileElement; + } + + public static void deleteAccount (MainView mainView) { - mainView.clickOnMenuButton(); - SettingsView settingView = mainView.clickOnSettingsButton(); + MenuList menulist = mainView.clickOnMenuButton(); + SettingsView settingView = menulist.clickOnSettingsButton(); deleteAccount(settingView); - } - + public static void deleteAccount (SettingsView settingsView) { settingsView.tapOnAccountElement(1, 1000); settingsView.clickOnDeleteAccountElement(); } - + public static void clickOnMainLayout(AndroidDriver driver){ driver.tap(1, 0, 0, 1); } - - + + //TODO. convert deleteFodler and deleteFile in deleteElement + public static AndroidElement deleteElement(String elementName, MainView mainView, AndroidDriver driver) throws Exception{ + AndroidElement fileElement; + WaitAMomentPopUp waitAMomentPopUp; + try{ + fileElement = (AndroidElement) driver.findElementByName(elementName); + ElementMenuOptions menuOptions = mainView.longPressOnElement(elementName); + RemoveConfirmationView removeConfirmationView = menuOptions.clickOnRemove();; + waitAMomentPopUp = removeConfirmationView.clickOnRemoteAndLocalButton(); + Common.waitTillElementIsNotPresent(waitAMomentPopUp.getWaitAMomentTextElement(), 100); + }catch(NoSuchElementException e){ + fileElement=null; + } + return fileElement; + } + + public static MainView uploadFile(String elementName, MainView mainView) throws InterruptedException{ + mainView.clickOnUploadButton(); + FilesView filesView = mainView.clickOnFilesElementUploadFile(); + filesView.clickOnFileName(elementName); + MainView mainViewAfterUploadFile = filesView.clickOnUploadButton(); + //TO DO. detect when the file is successfully uploaded + Thread.sleep(15000); + return mainViewAfterUploadFile; + } + + }