upload a big file. not finished
authorpurigarcia <pgarcia@solidgear.es>
Fri, 29 May 2015 12:16:35 +0000 (14:16 +0200)
committerpurigarcia <pgarcia@solidgear.es>
Fri, 29 May 2015 12:16:35 +0000 (14:16 +0200)
automationTest/src/test/java/com/owncloud/android/test/ui/actions/Actions.java
automationTest/src/test/java/com/owncloud/android/test/ui/models/FileListView.java
automationTest/src/test/java/com/owncloud/android/test/ui/models/NotificationView.java [new file with mode: 0644]
automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java
automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/ShareLinkFileTestSuite.java
automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java

index c2349c4..938d277 100644 (file)
@@ -240,6 +240,5 @@ public class Actions {
                Thread.sleep(15000);
                return fileListViewAfterUploadFile; 
        }
-
-
+       
 }
index f10e7aa..3c33864 100644 (file)
@@ -79,6 +79,9 @@ public class FileListView {
                        + ".description(\"List Layout\")")
        private AndroidElement listLayout;
        
+       @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.FrameLayout\").index(0)")
+       private AndroidElement deviceScreen;
+       
        private AndroidElement fileElement;
        
        private AndroidElement fileElementLayout;
@@ -197,5 +200,12 @@ public class FileListView {
                                listLocation.getX(),listLocation.getY()+1000, 5000);
        }
 
+       
+       
+       public void pulldownToSeeNotification () throws InterruptedException {
+               Point listLocation = deviceScreen.getLocation();
+               driver.swipe(listLocation.getX(),listLocation.getY(), 
+                               listLocation.getX(),listLocation.getY()+1000, 5000);
+       }
 
 }
diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/NotificationView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/NotificationView.java
new file mode 100644 (file)
index 0000000..35de73c
--- /dev/null
@@ -0,0 +1,54 @@
+package com.owncloud.android.test.ui.models;
+
+import io.appium.java_client.android.AndroidDriver;
+import io.appium.java_client.android.AndroidElement;
+import io.appium.java_client.pagefactory.AndroidFindBy;
+import io.appium.java_client.pagefactory.AppiumFieldDecorator;
+
+import org.openqa.selenium.support.PageFactory;
+
+public class NotificationView {
+final AndroidDriver driver;    
+       
+       @AndroidFindBy(name = "Upload succeeded")
+       private static AndroidElement uploadSucceededNotification;
+       
+       @AndroidFindBy(name = "Uploading ?")
+       private static AndroidElement uploadingNotification;
+       
+       @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Clear all notifications.\")")
+       private AndroidElement clearAllNotificationButton;
+       
+       @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.FrameLayout\").index(0)")
+       private AndroidElement notificationArea;
+
+       
+       public NotificationView (AndroidDriver driver) {
+               this.driver = driver;
+               PageFactory.initElements(new AppiumFieldDecorator(driver), this);
+       }
+       
+       
+       public AndroidElement getUploadSucceededNotification() {
+               return uploadSucceededNotification;
+       }
+       
+       public AndroidElement getUploadingNotification() {
+               return uploadingNotification;
+       }
+       
+       public AndroidElement getClearAllNotificationButton() {
+               return clearAllNotificationButton;
+       }
+       
+       public void tapOnClearAllNotification () {
+               clearAllNotificationButton.tap(1, 1000);
+       }
+       
+       public void tapOnBottomNotificationArea(){
+               //TODO. it is not working
+               notificationArea.getSize();
+               notificationArea.tap(1, 1000);
+       }
+
+}
index 1baa30b..36287da 100644 (file)
@@ -130,7 +130,22 @@ public class Common{
                        Thread.sleep(pollingTime);
                }
        }
-
+       
+       public static void waitTillElementIsPresent (
+                       AndroidElement element,int pollingTime) 
+                                       throws InterruptedException {
+               for (int time = 0;time <= waitingTime * 1000;time += pollingTime){      
+                       try{
+                               if(element.isDisplayed()){
+                                       return;
+                               }
+                       } catch (NoSuchElementException e){
+                               
+                       }
+                       Thread.sleep(pollingTime);
+               }
+       }
+       
        protected void takeScreenShotOnFailed (String testName) 
                        throws IOException {
                File file  = ((RemoteWebDriver) driver)
index c22525e..5e604cd 100644 (file)
@@ -23,14 +23,17 @@ package com.owncloud.android.test.ui.testSuites;
 import static org.junit.Assert.*;
 import io.appium.java_client.android.AndroidDriver;
 import io.appium.java_client.android.AndroidElement;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TestName;
+
 import com.owncloud.android.test.ui.actions.Actions;
 import com.owncloud.android.test.ui.groups.IgnoreTestCategory;
+import com.owncloud.android.test.ui.groups.InProgressCategory;
 import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory;
 import com.owncloud.android.test.ui.groups.SmokeTestCategory;
 import com.owncloud.android.test.ui.models.FileListView;;
index cf8f84d..af95647 100644 (file)
@@ -36,8 +36,10 @@ import org.junit.Test;
 import org.openqa.selenium.By;
 import org.openqa.selenium.NoSuchElementException;
 import org.openqa.selenium.support.ui.ExpectedConditions;
+
 import com.owncloud.android.test.ui.actions.Actions;
 import com.owncloud.android.test.ui.groups.FailingTestCategory;
+import com.owncloud.android.test.ui.groups.InProgressCategory;
 import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory;
 import com.owncloud.android.test.ui.groups.SmokeTestCategory;
 import com.owncloud.android.test.ui.groups.UnfinishedTestCategory;
@@ -47,6 +49,8 @@ import com.owncloud.android.test.ui.models.GmailEmailListView;
 import com.owncloud.android.test.ui.models.GmailEmailView;
 import com.owncloud.android.test.ui.models.ImageView;
 import com.owncloud.android.test.ui.models.FileListView;
+import com.owncloud.android.test.ui.models.NotificationView;
+import com.owncloud.android.test.ui.models.SettingsView;
 import com.owncloud.android.test.ui.models.UploadView;
 
 
@@ -57,6 +61,7 @@ public class UploadTestSuite{
        AndroidDriver driver;
        Common common;
        String FILE_NAME = Config.fileToTestName;
+       String BIG_FILE_NAME = Config.bigFileToTestName;
        String FILE_GMAIL_NAME = Config.fileToTestSendByEmailName;
        private Boolean fileHasBeenUploadedFromGmail = false;
        private Boolean fileHasBeenUploaded = false;
@@ -97,7 +102,60 @@ public class UploadTestSuite{
                fileListView = new FileListView(driver);
                fileListView.scrollTillFindElement(FILE_NAME);
                assertTrue(
-                       fileHasBeenUploaded = fileListView.getFileElement().isDisplayed());
+                               fileHasBeenUploaded = fileListView.getFileElement().isDisplayed());
+       }
+
+       @Test
+       @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class, InProgressCategory.class})
+       public void testUploadBigFile () throws Exception {
+
+               FileListView fileListView = Actions.login(Config.URL, Config.user,
+                               Config.password, Config.isTrusted, driver);
+               common.assertIsInFileListView();
+
+               //check if the file already exists and if true, delete it
+               Actions.deleteElement(BIG_FILE_NAME, fileListView, driver);
+
+               FileListView fileListViewAfterUploadFile = Actions
+                               .uploadFile(BIG_FILE_NAME, fileListView);
+
+               fileListViewAfterUploadFile.scrollTillFindElement(BIG_FILE_NAME);
+               driver.openNotifications();
+               NotificationView notificationView = new NotificationView(driver);
+
+               try{
+                       if(notificationView.getUploadingNotification().isDisplayed()){
+                               Common.waitTillElementIsPresent(
+                                               notificationView.getUploadSucceededNotification(),1000);
+                       }
+               } catch (NoSuchElementException e) {
+                       try{
+                               if(notificationView.getClearAllNotificationButton().isDisplayed()){
+                                       notificationView.tapOnClearAllNotification();
+                               }
+                       } catch (NoSuchElementException e2) {
+                               notificationView.tapOnBottomNotificationArea();
+                       }
+               }
+
+
+
+
+               //fileListViewAfterUploadFile.pulldownToSeeNotification();
+
+               assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed());
+               Common.waitTillElementIsNotPresentWithoutTimeout(
+                               fileListViewAfterUploadFile.getProgressCircular(), 1000);
+               common.wait.until(ExpectedConditions.visibilityOf(
+                               fileListViewAfterUploadFile.getFileElementLayout()
+                               .findElement(By.id(FileListView.getLocalFileIndicator()))));
+               assertTrue(fileListViewAfterUploadFile.getFileElementLayout()
+                               .findElement(By.id(FileListView.getLocalFileIndicator()))
+                               .isDisplayed());
+               fileListView = new FileListView(driver);
+               fileListView.scrollTillFindElement(BIG_FILE_NAME);
+               assertTrue(
+                               fileHasBeenUploaded = fileListView.getFileElement().isDisplayed());
        }
 
        @Test
@@ -166,7 +224,7 @@ public class UploadTestSuite{
                                .findElement(By.id(FileListView.getFavoriteFileIndicator()))
                                .isDisplayed());
        }
-       
+
        @Test   
        @Category({NoIgnoreTestCategory.class})
        public void testKeepFileUpToDateAndRefresh () throws Exception {
@@ -190,12 +248,12 @@ public class UploadTestSuite{
                fileDetailsView.checkKeepFileUpToDateCheckbox();
                Thread.sleep(3000);
                driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK);
-               
+
                fileListViewAfterUploadFile.pulldownToRefresh();
                //assertTrue(fileListView.getProgressCircular().isDisplayed());
                Common.waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), 
                                100);
-               
+
                assertTrue(common.isElementPresent(
                                fileListViewAfterUploadFile.getFileElementLayout(), 
                                MobileBy.id(FileListView.getFavoriteFileIndicator())));
@@ -214,6 +272,7 @@ public class UploadTestSuite{
                }
                if(fileHasBeenUploaded){
                        Actions.deleteElement(FILE_NAME,fileListView, driver);
+                       Actions.deleteElement(BIG_FILE_NAME,fileListView, driver);
                }
 
                driver.removeApp("com.owncloud.android");