1 package androidtest
.actions
;
3 import java
.util
.HashMap
;
5 import org
.openqa
.selenium
.NoSuchElementException
;
6 import org
.openqa
.selenium
.remote
.RemoteWebElement
;
8 import io
.appium
.java_client
.android
.AndroidDriver
;
9 import io
.appium
.java_client
.android
.AndroidElement
;
11 import org
.openqa
.selenium
.support
.ui
.ExpectedConditions
;
12 import org
.openqa
.selenium
.support
.ui
.WebDriverWait
;
14 import androidtest
.models
.CertificatePopUp
;
15 import androidtest
.models
.ElementMenuOptions
;
16 import androidtest
.models
.FilesView
;
17 import androidtest
.models
.LoginForm
;
18 import androidtest
.models
.MainView
;
19 import androidtest
.models
.MenuList
;
20 import androidtest
.models
.NewFolderPopUp
;
21 import androidtest
.models
.RemoveConfirmationView
;
22 import androidtest
.models
.SettingsView
;
23 import androidtest
.models
.WaitAMomentPopUp
;
24 import androidtest
.tests
.Common
;
26 public class Actions
{
28 public static MainView
login(String url
, String user
, String password
, Boolean isTrusted
, AndroidDriver driver
) throws InterruptedException
{
29 LoginForm loginForm
= new LoginForm(driver
);
30 CertificatePopUp certificatePopUp
= loginForm
.typeHostUrl(url
);
32 driver
.runAppInBackground(3);
33 WebDriverWait wait
= new WebDriverWait(driver
, 30);
34 wait
.until(ExpectedConditions
.visibilityOf(certificatePopUp
.getOkButtonElement()));
35 certificatePopUp
.clickOnOkButton();
37 loginForm
.typeUserName(user
);
38 loginForm
.typePassword(password
);
39 //TODO. Assert related to check the connection?
40 return loginForm
.clickOnConnectButton();
43 public static WaitAMomentPopUp
createFolder(String folderName
, MainView mainView
){
44 NewFolderPopUp newFolderPopUp
= mainView
.clickOnNewFolderButton();
45 newFolderPopUp
.typeNewFolderName(folderName
);
46 WaitAMomentPopUp waitAMomentPopUp
= newFolderPopUp
.clickOnNewFolderOkButton();
48 return waitAMomentPopUp
;
52 public static AndroidElement
scrollTillFindElement (String elementName
, AndroidElement element
, AndroidDriver driver
) {
53 AndroidElement fileElement
;
55 if(element
.getAttribute("scrollable").equals("true")){
56 HashMap
<String
, String
> scrollObject
= new HashMap
<String
, String
>();
57 scrollObject
.put("text", elementName
);
58 scrollObject
.put("element", ( (RemoteWebElement
) element
).getId());
59 driver
.executeScript("mobile: scrollTo", scrollObject
);
62 fileElement
= (AndroidElement
) driver
.findElementByName(elementName
);
63 } catch (NoSuchElementException e
) {
70 public static void deleteAccount (MainView mainView
) {
71 MenuList menulist
= mainView
.clickOnMenuButton();
72 SettingsView settingView
= menulist
.clickOnSettingsButton();
73 deleteAccount(settingView
);
76 public static void deleteAccount (SettingsView settingsView
) {
77 settingsView
.tapOnAccountElement(1, 1000);
78 settingsView
.clickOnDeleteAccountElement();
81 public static void clickOnMainLayout(AndroidDriver driver
){
82 driver
.tap(1, 0, 0, 1);
85 //TODO. convert deleteFodler and deleteFile in deleteElement
86 public static AndroidElement
deleteElement(String elementName
, MainView mainView
, AndroidDriver driver
) throws Exception
{
87 AndroidElement fileElement
;
88 WaitAMomentPopUp waitAMomentPopUp
;
90 fileElement
= (AndroidElement
) driver
.findElementByName(elementName
);
91 ElementMenuOptions menuOptions
= mainView
.longPressOnElement(elementName
);
92 RemoveConfirmationView removeConfirmationView
= menuOptions
.clickOnRemove();;
93 waitAMomentPopUp
= removeConfirmationView
.clickOnRemoteAndLocalButton();
94 Common
.waitTillElementIsNotPresent(waitAMomentPopUp
.getWaitAMomentTextElement(), 100);
95 }catch(NoSuchElementException e
){
101 public static MainView
uploadFile(String elementName
, MainView mainView
) throws InterruptedException
{
102 mainView
.clickOnUploadButton();
103 FilesView filesView
= mainView
.clickOnFilesElementUploadFile();
104 filesView
.clickOnFileName(elementName
);
105 MainView mainViewAfterUploadFile
= filesView
.clickOnUploadButton();
106 //TO DO. detect when the file is successfully uploaded
108 return mainViewAfterUploadFile
;