upload a few automated test
[pub/Android/ownCloud.git] / automationTest / src / test / java / androidtest / tests / LoginTestSuite.java
diff --git a/automationTest/src/test/java/androidtest/tests/LoginTestSuite.java b/automationTest/src/test/java/androidtest/tests/LoginTestSuite.java
new file mode 100644 (file)
index 0000000..a4cbda6
--- /dev/null
@@ -0,0 +1,128 @@
+package androidtest.tests;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.runners.MethodSorters;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.openqa.selenium.ScreenOrientation;
+
+
+import androidtest.actions.Actions;
+import androidtest.models.LoginForm;
+import androidtest.models.MainView;
+import androidtest.models.SettingsView;
+
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class LoginTestSuite extends CommonTest{
+
+       @Before
+       public void setUp() throws Exception {
+                       setUpCommonDriver();
+       }
+       
+       @Test
+       public void test1LoginPortrait () throws Exception {
+               
+               System.out.println("Hello" + Config.server);
+               String testName = "loginPortrait";
+               driver.rotate(ScreenOrientation.PORTRAIT);
+
+               MainView mainView = login(Config.URL, Config.user,Config.password);
+               assertTrue(waitForTextPresent("ownCloud", mainView.getTitleTextElement()));
+               //TO DO. detect in which view is. it can be files view or settings view
+               /*if(mainView.getTitleTextElement().equals("ownCloud") || mainView.getTitleTextElement().equals("Settings")){
+                       if(mainView.getTitleTextElement().getText().equals("ownCloud")){
+                               assertTrue(waitForTextPresent("ownCloud", mainView.getTitleTextElement()));
+                       }else{
+                               assertTrue(waitForTextPresent("Settings", mainView.getTitleTextElement()));
+                       }
+                       fail(testName);
+               }*/
+               Actions.deleteAccount(mainView);
+       }
+       
+       @Test
+       public void test2LoginLandscape () throws Exception {
+               
+               String testName = "loginLandscape";
+               driver.rotate(ScreenOrientation.LANDSCAPE);
+               MainView mainView = login(Config.URL, Config.user,Config.password);
+               assertTrue(waitForTextPresent("ownCloud", mainView.getTitleTextElement()));
+               //TO DO. detect in which view is. it can be files view or settings view
+               Actions.deleteAccount(mainView);
+       }
+       
+       
+       @Test
+       public void test3MultiAccountRotate () throws Exception {
+               
+               String testName = "MultiAccountRotate";
+               driver.rotate(ScreenOrientation.LANDSCAPE);
+               MainView mainView = login(Config.URL, Config.user,Config.password);
+               assertTrue(waitForTextPresent("ownCloud", mainView.getTitleTextElement()));
+               
+               driver.rotate(ScreenOrientation.PORTRAIT);
+               mainView.clickOnMenuButton();
+               SettingsView settingsView = mainView.clickOnSettingsButton();
+               settingsView.tapOnAddAccount(1, 1000);
+               mainView = login(Config.URL, Config.user2,Config.password2);
+               
+               assertTrue(waitForTextPresent("Settings", mainView.getTitleTextElement()));
+               //TO DO. detect in which view is. it can be files view or settings view
+               //Actions.deleteAccount(mainView);
+               Actions.deleteAccount(settingsView);
+               //TO DO. Delete the second user
+       }
+       
+       @Test
+       public void test4ExistingAccountRotate () throws Exception {
+               
+               String testName = "ExistingAccountRotate";
+               driver.rotate(ScreenOrientation.PORTRAIT);
+               MainView mainView = login(Config.URL, Config.user,Config.password);
+               assertTrue(waitForTextPresent("ownCloud", mainView.getTitleTextElement()));
+               
+               driver.rotate(ScreenOrientation.LANDSCAPE);
+               mainView.clickOnMenuButton();
+               SettingsView settingsView = mainView.clickOnSettingsButton();
+               settingsView.tapOnAddAccount(1, 1000);
+               LoginForm loginForm = new LoginForm(driver);
+               loginForm.typeHostUrl(Config.URL);
+               loginForm.clickOnUserName();
+               waitForTextPresent("Secure connection established", loginForm.getServerStatusTextElement());
+               assertTrue(waitForTextPresent("Secure connection established", loginForm.getServerStatusTextElement()));        
+               loginForm.typeUserName(Config.user);
+               loginForm.typePassword(Config.password);
+               mainView = loginForm.clickOnConnectButton();
+               
+               assertTrue(waitForTextPresent("An account for the same user and server already exists in the device", loginForm.getAuthStatusText()));
+               driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK);
+               Actions.deleteAccount(settingsView);
+       }
+       
+
+       public void test5ChangePasswordWrong () throws Exception {
+
+               MainView mainView = login(Config.URL, Config.user,Config.password);
+               assertTrue(waitForTextPresent("ownCloud", mainView.getTitleTextElement()));
+               mainView.clickOnMenuButton();
+               SettingsView settingView = mainView.clickOnSettingsButton();
+               settingView.tapOnAccountElement(1, 1000);
+               LoginForm changePasswordForm = settingView.clickOnChangePasswordElement();
+               changePasswordForm.typePassword("WrongPassword");
+               changePasswordForm.clickOnConnectButton();
+               assertTrue(waitForTextPresent("Wrong username or password", changePasswordForm.getAuthStatusText()));
+               driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK);
+               Actions.deleteAccount(settingView);
+       }
+       
+
+       @After
+       public void tearDown() throws Exception {
+               driver.removeApp("com.owncloud.android");
+               driver.quit();
+       }
+       
+       
+}