cbea9785aee8dc7d20e98da32e4a2fc1dd3d767a
[pub/Android/ownCloud.git] / automationTest / src / test / java / com / owncloud / android / test / ui / testSuites / UploadTestSuite.java
1 package com.owncloud.android.test.ui.testSuites;
2
3
4 import static org.junit.Assert.*;
5 import io.appium.java_client.MobileBy;
6 import io.appium.java_client.android.AndroidDriver;
7
8 import org.junit.After;
9 import org.junit.Before;
10 import org.junit.Rule;
11 import org.junit.experimental.categories.Category;
12 import org.junit.rules.TestName;
13 import org.junit.runners.MethodSorters;
14 import org.junit.FixMethodOrder;
15 import org.junit.Test;
16 import org.openqa.selenium.By;
17 import org.openqa.selenium.support.ui.ExpectedConditions;
18
19 import com.owncloud.android.test.ui.actions.Actions;
20 import com.owncloud.android.test.ui.groups.FailingTestCategory;
21 import com.owncloud.android.test.ui.groups.IgnoreTestCategory;
22 import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory;
23 import com.owncloud.android.test.ui.models.FileDetailsView;
24 import com.owncloud.android.test.ui.models.ElementMenuOptions;
25 import com.owncloud.android.test.ui.models.GmailEmailListView;
26 import com.owncloud.android.test.ui.models.GmailEmailView;
27 import com.owncloud.android.test.ui.models.ImageView;
28 import com.owncloud.android.test.ui.models.FileListView;
29 import com.owncloud.android.test.ui.models.UploadView;
30
31
32 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
33 @Category({NoIgnoreTestCategory.class})
34 public class UploadTestSuite{
35
36 AndroidDriver driver;
37 Common common;
38 String FILE_NAME = Config.fileToTestName;
39
40 @Rule public TestName name = new TestName();
41
42
43 @Before
44 public void setUp() throws Exception {
45 common=new Common();
46 driver=common.setUpCommonDriver();
47 }
48
49 @Test
50 @Category(NoIgnoreTestCategory.class)
51 public void testUploadFile () throws Exception {
52
53 FileListView fileListView = Actions.login(Config.URL, Config.user,Config.password, Config.isTrusted, driver);
54 common.assertIsInFileListView();
55
56 //check if the file already exists and if true, delete it
57 Actions.deleteElement(FILE_NAME, fileListView, driver);
58
59 FileListView fileListViewAfterUploadFile = Actions.uploadFile(FILE_NAME, fileListView);
60
61 fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME);
62 assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed());
63 Common.waitTillElementIsNotPresent(fileListViewAfterUploadFile.getProgressCircular(), 1000);
64 common.wait.until(ExpectedConditions.visibilityOf(fileListViewAfterUploadFile.getFileElementLayout().findElement(By.id(FileListView.getLocalFileIndicator()))));
65 assertTrue(fileListViewAfterUploadFile.getFileElementLayout().findElement(By.id(FileListView.getLocalFileIndicator())).isDisplayed());
66
67 }
68
69 @Test
70 @Category(IgnoreTestCategory.class)
71 public void testUploadFromGmail () throws Exception {
72 FileListView fileListView = Actions.login(Config.URL, Config.user,Config.password, Config.isTrusted, driver);
73 driver.startActivity("com.google.android.gm", ".ConversationListActivityGmail");
74 GmailEmailListView gmailEmailListView = new GmailEmailListView(driver);
75 GmailEmailView gmailEmailView = gmailEmailListView.clickOnEmail();
76 ImageView imageView = gmailEmailView.clickOnfileButton();
77 imageView.clickOnOptionsButton();
78 imageView.clickOnShareButton();
79 imageView.clickOnOwnCloudButton();
80 imageView.clickOnJustOnceButton();
81 UploadView uploadView = new UploadView(driver);
82 uploadView.clickOUploadButton();
83 driver.startActivity("com.owncloud.android", ".ui.activity.FileDisplayActivity");
84 common.wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.name(Config.fileToTestSendByEmailName)));
85 assertEquals(Config.fileToTestSendByEmailName , driver.findElementByName(Config.fileToTestSendByEmailName).getText());
86 }
87
88
89 @Test
90 @Category({IgnoreTestCategory.class, FailingTestCategory.class})
91 public void testKeepFileUpToDate () throws Exception {
92
93 FileListView fileListView = Actions.login(Config.URL, Config.user,Config.password, Config.isTrusted, driver);
94 common.assertIsInFileListView();
95
96 Common.waitTillElementIsNotPresent(fileListView.getProgressCircular(), 1000);
97
98 FileListView fileListViewAfterUploadFile = Actions.uploadFile(FILE_NAME, fileListView);
99 fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME);
100 assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed());
101
102 ElementMenuOptions menuOptions = fileListViewAfterUploadFile.longPressOnElement(FILE_NAME);
103 FileDetailsView fileDetailsView = menuOptions.clickOnDetails();
104 fileDetailsView.checkKeepFileUpToDateCheckbox();
105 Thread.sleep(3000);
106 driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK);
107 //assertTrue(common.isElementPresent(fileListViewAfterUploadFile.getFileElementLayout(), MobileBy.id(FileListView.getFavoriteFileIndicator())));
108 assertTrue(fileListViewAfterUploadFile.getFileElementLayout().findElement(By.id(FileListView.getFavoriteFileIndicator())).isDisplayed());
109
110 }
111
112
113 @After
114 public void tearDown() throws Exception {
115 common.takeScreenShotOnFailed(name.getMethodName());
116 FileListView fileListView = new FileListView(driver);
117 Actions.deleteElement(FILE_NAME,fileListView, driver);
118 driver.removeApp("com.owncloud.android");
119 driver.quit();
120 }
121
122
123 }
124