@@ -31,6 +31,7 @@ import com.owncloud.android.R
3131import com.owncloud.android.datamodel.OCFile
3232import com.owncloud.android.utils.ScreenshotTest
3333import org.hamcrest.Matchers.not
34+ import org.junit.Before
3435import org.junit.Rule
3536import org.junit.Test
3637import org.junit.rules.TestRule
@@ -42,6 +43,28 @@ class ReceiveExternalFilesActivityIT : AbstractIT() {
4243 @get:Rule
4344 var storagePermissionRule: TestRule = GrantStoragePermissionRule .grant()
4445
46+ lateinit var mainFolder: OCFile
47+ lateinit var subFolder: OCFile
48+ lateinit var existingImageFile: OCFile
49+
50+ @Before
51+ fun setupFolderAndFileStructure () {
52+ // Create folders with the necessary permissions and another test file
53+ mainFolder = OCFile (" /folder/" ).apply {
54+ permissions = OCFile .PERMISSION_CAN_CREATE_FILE_AND_FOLDER
55+ setFolder()
56+ fileDataStorageManager.saveNewFile(this )
57+ }
58+ subFolder = OCFile (" ${mainFolder.remotePath} sub folder/" ).apply {
59+ permissions = OCFile .PERMISSION_CAN_CREATE_FILE_AND_FOLDER
60+ setFolder()
61+ fileDataStorageManager.saveNewFile(this )
62+ }
63+ existingImageFile = OCFile (" ${mainFolder.remotePath} Existing Image File.jpg" ).apply {
64+ fileDataStorageManager.saveNewFile(this )
65+ }
66+ }
67+
4568 @Test
4669 @ScreenshotTest
4770 fun open () {
@@ -63,33 +86,24 @@ class ReceiveExternalFilesActivityIT : AbstractIT() {
6386 removeAccount(secondAccount)
6487 }
6588
66-
6789 fun createSendIntent (file : File ): Intent = Intent (targetContext, ReceiveExternalFilesActivity ::class .java).apply {
6890 action = Intent .ACTION_SEND
6991 addFlags(Intent .FLAG_GRANT_READ_URI_PERMISSION )
7092 putExtra(Intent .EXTRA_STREAM , Uri .fromFile(file))
7193 }
7294
95+ fun createSendIntent (files : Iterable <File >): Intent =
96+ Intent (targetContext, ReceiveExternalFilesActivity ::class .java).apply {
97+ action = Intent .ACTION_SEND_MULTIPLE
98+ addFlags(Intent .FLAG_GRANT_READ_URI_PERMISSION )
99+ putParcelableArrayListExtra(Intent .EXTRA_STREAM , ArrayList (files.map { Uri .fromFile(it) }))
100+ }
101+
73102 @Test
74103 fun renameSingleFileUpload () {
75104 val imageFile = getDummyFile(" image.jpg" )
76105 val intent = createSendIntent(imageFile)
77106
78- // Create folders with the necessary permissions and another test file
79- val mainFolder = OCFile (" /folder/" ).apply {
80- permissions = OCFile .PERMISSION_CAN_CREATE_FILE_AND_FOLDER
81- setFolder()
82- fileDataStorageManager.saveNewFile(this )
83- }
84- val subFolder = OCFile (" ${mainFolder.remotePath} sub folder/" ).apply {
85- permissions = OCFile .PERMISSION_CAN_CREATE_FILE_AND_FOLDER
86- setFolder()
87- fileDataStorageManager.saveNewFile(this )
88- }
89- val otherFile = OCFile (" ${mainFolder.remotePath} Other Image File.jpg" ).apply {
90- fileDataStorageManager.saveNewFile(this )
91- }
92-
93107 // Store the folder in preferences, so the activity starts from there.
94108 @Suppress(" DEPRECATION" )
95109 val preferences = AppPreferencesImpl .fromContext(targetContext)
@@ -148,8 +162,8 @@ class ReceiveExternalFilesActivityIT : AbstractIT() {
148162 .check(matches(not (isEnabled())))
149163 onView(withId(R .id.user_input))
150164 .perform(ViewActions .click())
151- .perform(ViewActions .typeTextIntoFocusedView(otherFile .fileName))
152- .check(matches(withText(otherFile .fileName)))
165+ .perform(ViewActions .typeTextIntoFocusedView(existingImageFile .fileName))
166+ .check(matches(withText(existingImageFile .fileName)))
153167 onView(withText(R .string.uploader_btn_upload_text))
154168 .check(matches(isDisplayed()))
155169 .check(matches(not (isEnabled())))
@@ -203,4 +217,29 @@ class ReceiveExternalFilesActivityIT : AbstractIT() {
203217 .check(matches(withText(imageFile.name)))
204218 }
205219 }
220+
221+ @Test
222+ fun noRenameForMultiUpload () {
223+ val testFiles = createDummyFiles()
224+ val intent = createSendIntent(testFiles)
225+
226+ // Store the folder in preferences, so the activity starts from there.
227+ @Suppress(" DEPRECATION" )
228+ val preferences = AppPreferencesImpl .fromContext(targetContext)
229+ preferences.setLastUploadPath(mainFolder.remotePath)
230+
231+ launchActivity<ReceiveExternalFilesActivity >(intent).use {
232+ val expectedMainFolderTitle = (getCurrentActivity() as ToolbarActivity ).getActionBarTitle(mainFolder, false )
233+ // Verify that the test starts in the expected folder. If this fails, change the setup calls above
234+ onView(withId(R .id.toolbar))
235+ .check(matches(hasDescendant(withText(expectedMainFolderTitle))))
236+
237+ onView(withText(R .string.uploader_btn_upload_text))
238+ .check(matches(isDisplayed()))
239+ .check(matches(isEnabled()))
240+
241+ onView(withId(R .id.user_input))
242+ .check(matches(not (isDisplayed())))
243+ }
244+ }
206245}
0 commit comments