From: purigarcia Date: Thu, 14 May 2015 08:13:14 +0000 (+0200) Subject: fix upload test cases X-Git-Tag: oc-android-1.7.2~1^2~32^2~19 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/3567b86e77b872060665c8ea863180ca60403904 fix upload test cases --- diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java index 8690eb50..43084fff 100644 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java +++ b/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java @@ -4,6 +4,8 @@ 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.NoSuchElementException; import org.openqa.selenium.support.PageFactory; public class GmailEmailListView { @@ -12,6 +14,9 @@ public class GmailEmailListView { @AndroidFindBy(uiAutomator = "new UiSelector().description(\"me about UploadFile, on May 11, conversation read\")") private AndroidElement email; + @AndroidFindBy(uiAutomator = "new UiSelector().description(\"me about UploadFile, on 11 May, conversation read\")") + private AndroidElement email2; + public GmailEmailListView (AndroidDriver driver) { this.driver = driver; @@ -19,7 +24,11 @@ public class GmailEmailListView { } public GmailEmailView clickOnEmail (){ - email.click(); + try{ + email.click(); + }catch (NoSuchElementException e) { + email2.click(); + } GmailEmailView gmailEmailView = new GmailEmailView(driver); return gmailEmailView; } diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java index da8c30b6..8803b290 100644 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java +++ b/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java @@ -4,52 +4,55 @@ 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.CacheLookup; import org.openqa.selenium.support.PageFactory; import com.owncloud.android.test.ui.actions.Actions; +import com.owncloud.android.test.ui.testSuites.Common; public class ImageView { final AndroidDriver driver; - + @CacheLookup @AndroidFindBy(uiAutomator = "new UiSelector().description(\"More options\")") private AndroidElement optionsButton; - + @AndroidFindBy(name = "Share") private AndroidElement shareButton; - + @AndroidFindBy(name = "ownCloud") private AndroidElement ownCloudButton; - + + @AndroidFindBy(name = "Share with ownCloud") + private AndroidElement shareWithOwnCloudButton; + @AndroidFindBy(name = "Just once") private AndroidElement justOnceButton; - + @AndroidFindBy(id = "android:id/resolver_list") private AndroidElement sharingAppsLayout; - + public ImageView (AndroidDriver driver) { this.driver = driver; PageFactory.initElements(new AppiumFieldDecorator(driver), this); } - + public void clickOnOptionsButton(){ optionsButton.click(); } - + public void clickOnShareButton(){ shareButton.click(); } - + public void clickOnOwnCloudButton(){ - if (! ownCloudButton.isDisplayed()) { + if(Common.isElementPresent(ownCloudButton)){ Actions.scrollTillFindElement("ownCloud", sharingAppsLayout, driver); - } - ownCloudButton.click(); + ownCloudButton.click(); + }else if(Common.isElementPresent(shareWithOwnCloudButton)){} } - + public void clickOnJustOnceButton(){ justOnceButton.click(); } diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java index d34e6e22..4e45bb6c 100644 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java +++ b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java @@ -67,7 +67,7 @@ public class Common{ } } - protected boolean isElementPresent(AndroidElement element) { + public static boolean isElementPresent(AndroidElement element) { try{ element.isDisplayed(); } catch (NoSuchElementException e){ diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java index 5e1354c9..84c228ed 100644 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java +++ b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java @@ -14,12 +14,14 @@ import org.junit.runners.MethodSorters; import org.junit.FixMethodOrder; 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.IgnoreTestCategory; import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; +import com.owncloud.android.test.ui.groups.UnfinishedTestCategory; import com.owncloud.android.test.ui.models.FileDetailsView; import com.owncloud.android.test.ui.models.ElementMenuOptions; import com.owncloud.android.test.ui.models.GmailEmailListView; @@ -36,9 +38,12 @@ public class UploadTestSuite{ AndroidDriver driver; Common common; String FILE_NAME = Config.fileToTestName; - + String FILE_GMAIL_NAME = Config.fileToTestSendByEmailName; + private Boolean fileHasBeenUploadedFromGmail = false; + private Boolean fileHasBeenUploaded = false; + @Rule public TestName name = new TestName(); - + @Before public void setUp() throws Exception { @@ -63,11 +68,13 @@ public class UploadTestSuite{ Common.waitTillElementIsNotPresent(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(FILE_NAME); + assertTrue(fileHasBeenUploaded = fileListView.getFileElement().isDisplayed()); } - + @Test - @Category(IgnoreTestCategory.class) + @Category(UnfinishedTestCategory.class) public void testUploadFromGmail () throws Exception { FileListView fileListView = Actions.login(Config.URL, Config.user,Config.password, Config.isTrusted, driver); driver.startActivity("com.google.android.gm", ".ConversationListActivityGmail"); @@ -78,17 +85,26 @@ public class UploadTestSuite{ imageView.clickOnOptionsButton(); imageView.clickOnShareButton(); imageView.clickOnOwnCloudButton(); - imageView.clickOnJustOnceButton(); + //justonce button do not appear always + try{ + imageView.clickOnJustOnceButton(); + }catch (NoSuchElementException e) { + } UploadView uploadView = new UploadView(driver); uploadView.clickOUploadButton(); + driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_HOME); driver.startActivity("com.owncloud.android", ".ui.activity.FileDisplayActivity"); - common.wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.name(Config.fileToTestSendByEmailName))); - assertEquals(Config.fileToTestSendByEmailName , driver.findElementByName(Config.fileToTestSendByEmailName).getText()); + common.wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.name(FILE_GMAIL_NAME))); + assertEquals(Config.fileToTestSendByEmailName , driver.findElementByName(FILE_GMAIL_NAME).getText()); + fileListView = new FileListView(driver); + fileListView.scrollTillFindElement(FILE_GMAIL_NAME); + assertTrue(fileHasBeenUploadedFromGmail = fileListView.getFileElement().isDisplayed()); + //TODO. correct assert if fileListView is shown in grid mode } - + @Test - @Category({IgnoreTestCategory.class, FailingTestCategory.class}) + @Category({FailingTestCategory.class}) public void testKeepFileUpToDate () throws Exception { FileListView fileListView = Actions.login(Config.URL, Config.user,Config.password, Config.isTrusted, driver); @@ -105,9 +121,8 @@ public class UploadTestSuite{ fileDetailsView.checkKeepFileUpToDateCheckbox(); Thread.sleep(3000); driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK); - //assertTrue(common.isElementPresent(fileListViewAfterUploadFile.getFileElementLayout(), MobileBy.id(FileListView.getFavoriteFileIndicator()))); + assertTrue(common.isElementPresent(fileListViewAfterUploadFile.getFileElementLayout(), MobileBy.id(FileListView.getFavoriteFileIndicator()))); assertTrue(fileListViewAfterUploadFile.getFileElementLayout().findElement(By.id(FileListView.getFavoriteFileIndicator())).isDisplayed()); - } @@ -115,7 +130,13 @@ public class UploadTestSuite{ public void tearDown() throws Exception { common.takeScreenShotOnFailed(name.getMethodName()); FileListView fileListView = new FileListView(driver); - Actions.deleteElement(FILE_NAME,fileListView, driver); + if (fileHasBeenUploadedFromGmail) { + Actions.deleteElement(FILE_GMAIL_NAME,fileListView, driver); + } + if(fileHasBeenUploaded){ + Actions.deleteElement(FILE_NAME,fileListView, driver); + } + driver.removeApp("com.owncloud.android"); driver.quit(); }