43d31ecd289e61ee81ed87ec2703c6fe9860422a
[pub/Android/ownCloud.git] / automationTest / src / test / java / com / owncloud / android / test / ui / models / SettingsView.java
1 /**
2 * ownCloud Android client application
3 *
4 * @author purigarcia
5 * Copyright (C) 2015 ownCloud Inc.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2,
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 */
20
21 package com.owncloud.android.test.ui.models;
22
23 import io.appium.java_client.android.AndroidDriver;
24 import io.appium.java_client.android.AndroidElement;
25 import io.appium.java_client.pagefactory.AndroidFindBy;
26 import io.appium.java_client.pagefactory.AppiumFieldDecorator;
27
28 import org.openqa.selenium.support.CacheLookup;
29 import org.openqa.selenium.support.PageFactory;
30
31 import com.owncloud.android.test.ui.testSuites.Config;
32
33 public class SettingsView {
34 final AndroidDriver driver;
35
36 @CacheLookup
37 @AndroidFindBy(name = Config.userAccount)
38 private AndroidElement accountElement;
39
40 @CacheLookup
41 @AndroidFindBy(name = Config.userAccount2)
42 private AndroidElement accountElement2;
43
44 @AndroidFindBy(name = "Delete account")
45 private AndroidElement deleteAccountElement;
46
47 @AndroidFindBy(name = "Change password")
48 private AndroidElement changePasswordElement;
49
50 @AndroidFindBy(name = "Add account")
51 private AndroidElement addAccountElement;
52
53 @AndroidFindBy(uiAutomator = "new UiSelector()"
54 + ".className(\"android.widget.CheckBox\").index(0)")
55 private AndroidElement passcodeCheckbox;
56
57 public SettingsView (AndroidDriver driver) {
58 this.driver = driver;
59 PageFactory.initElements(new AppiumFieldDecorator(driver), this);
60 }
61
62 public void tapOnAccountElement (int fingers, int milliSeconds) {
63 accountElement.tap(fingers, milliSeconds);
64 }
65
66
67 public void tapOnAddAccount (int fingers, int milliSeconds) {
68 addAccountElement.tap(fingers, milliSeconds);
69 }
70
71 public LoginForm clickOnDeleteAccountElement () {
72 deleteAccountElement.click();
73 LoginForm loginForm = new LoginForm(driver);
74 return loginForm;
75 }
76
77 public LoginForm clickOnChangePasswordElement () {
78 changePasswordElement.click();
79 LoginForm loginForm = new LoginForm(driver);
80 return loginForm;
81 }
82
83 public PassCodeView EnablePassCode(){
84 if(!passcodeCheckbox.isSelected()){
85 passcodeCheckbox.click();
86 }
87 PassCodeView passcodeview = new PassCodeView(driver);
88 return passcodeview;
89 }
90
91 public PassCodeView DisablePassCode(){
92 if(passcodeCheckbox.isSelected()){
93 passcodeCheckbox.click();
94 }
95 PassCodeView passcodeview = new PassCodeView(driver);
96 return passcodeview;
97 }
98
99 }