diff --git a/app/src/androidTest/java/com/owncloud/android/providers/documentstorage/DocumentsStorageProviderIT.kt b/app/src/androidTest/java/com/owncloud/android/providers/documentstorage/DocumentsStorageProviderIT.kt index dd0567a94477..bf1631108716 100644 --- a/app/src/androidTest/java/com/owncloud/android/providers/documentstorage/DocumentsStorageProviderIT.kt +++ b/app/src/androidTest/java/com/owncloud/android/providers/documentstorage/DocumentsStorageProviderIT.kt @@ -274,6 +274,8 @@ class DocumentsStorageProviderIT : AbstractOnServerIT() { it!!.write(content2) } + awaitWriteSaved(file1, content2.size.toLong()) + // read back content bytes val bytes = contentResolver.openInputStream(file1.uri)?.readBytes() ?: ByteArray(0) assertEquals(String(content2), String(bytes)) @@ -304,6 +306,18 @@ class DocumentsStorageProviderIT : AbstractOnServerIT() { fail("upload of $remotePath did not finish, stored uploads: ${describeUploads()}") } + private fun awaitWriteSaved(file: DocumentFile, expectedLength: Long) { + repeat(UPLOAD_POLL_ATTEMPTS) { + if (file.getOCFile(storageManager)?.fileLength == expectedLength) { + return + } + + shortSleep() + } + + fail("write of ${file.uri} was not saved with length $expectedLength") + } + private fun upload(remotePath: String): OCUpload? = uploadsStorageManager .getUploadsForAccount(user.accountName) .firstOrNull { it.remotePath == remotePath }