Merge pull request #7353 from nextcloud/disableFlakyTests

Fix/disable flaky tests
This commit is contained in:
Andy Scherzinger 2020-11-19 18:35:47 +01:00 committed by GitHub
commit d3f658d0a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 110 additions and 95 deletions

View File

@ -24,7 +24,7 @@ package com.owncloud.android.datamodel;
import com.owncloud.android.db.ProviderMeta;
public class FileDataStorageManagerContentProviderClientTest extends FileDataStorageManagerTest {
public class FileDataStorageManagerContentProviderClientIT extends FileDataStorageManagerIT {
@Override
public void before() {

View File

@ -22,7 +22,7 @@
package com.owncloud.android.datamodel;
public class FileDataStorageManagerContentResolverTest extends FileDataStorageManagerTest {
public class FileDataStorageManagerContentResolverIT extends FileDataStorageManagerIT {
@Override
public void before() {
sut = new FileDataStorageManager(account, targetContext.getContentResolver());

View File

@ -53,7 +53,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
abstract public class FileDataStorageManagerIT extends AbstractOnServerIT {
protected FileDataStorageManager sut;
@ -214,6 +214,12 @@ abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
*/
@Test
public void testGallerySearch() throws IOException {
sut = new FileDataStorageManager(account,
targetContext
.getContentResolver()
.acquireContentProviderClient(ProviderMeta.ProviderTableMeta.CONTENT_URI)
);
String remotePath = "/imageFile.png";
VirtualFolderType virtualType = VirtualFolderType.GALLERY;
@ -222,21 +228,23 @@ abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
File imageFile = getFile("imageFile.png");
assertTrue(new UploadFileRemoteOperation(imageFile.getAbsolutePath(),
remotePath,
"/imageFile.png",
"image/png",
String.valueOf(System.currentTimeMillis() / 1000))
.execute(client).isSuccess());
assertNull(sut.getFileByPath(remotePath));
// Check that file does not yet exist in local database
assertNull(sut.getFileByPath("/imageFile.png"));
File videoFile = getFile("videoFile.mp4");
assertTrue(new UploadFileRemoteOperation(videoFile.getAbsolutePath(),
remotePath,
"/videoFile.mp4",
"video/mpeg",
String.valueOf(System.currentTimeMillis() / 1000))
.execute(client).isSuccess());
assertNull(sut.getFileByPath(remotePath));
// Check that file does not yet exist in local database
assertNull(sut.getFileByPath("/videoFile.mp4"));
// search
SearchRemoteOperation searchRemoteOperation = new SearchRemoteOperation("",
@ -245,7 +253,7 @@ abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
RemoteOperationResult searchResult = searchRemoteOperation.execute(client);
TestCase.assertTrue(searchResult.isSuccess());
TestCase.assertEquals(1, searchResult.getData().size());
TestCase.assertEquals(2, searchResult.getData().size());
OCFile ocFile = FileStorageUtils.fillOCFile((RemoteFile) searchResult.getData().get(0));
sut.saveFile(ocFile);
@ -257,6 +265,15 @@ abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
contentValues.add(cv);
OCFile ocFile2 = FileStorageUtils.fillOCFile((RemoteFile) searchResult.getData().get(0));
sut.saveFile(ocFile2);
ContentValues cv2 = new ContentValues();
cv2.put(ProviderMeta.ProviderTableMeta.VIRTUAL_TYPE, virtualType.toString());
cv2.put(ProviderMeta.ProviderTableMeta.VIRTUAL_OCFILE_ID, ocFile2.getFileId());
contentValues.add(cv2);
sut.saveVirtuals(contentValues);
assertEquals(remotePath, ocFile.getRemotePath());
@ -264,7 +281,7 @@ abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
assertEquals(0, sut.getFolderContent(sut.getFileByPath("/"), false).size());
assertEquals(2, sut.getVirtualFolderContent(virtualType, false).size());
assertEquals(3, sut.getAllFiles().size());
assertEquals(2, sut.getAllFiles().size());
// update root
assertTrue(new RefreshFolderOperation(sut.getFileByPath("/"),
@ -276,7 +293,7 @@ abstract public class FileDataStorageManagerTest extends AbstractOnServerIT {
targetContext).execute(client).isSuccess());
assertEquals(1, sut.getFolderContent(sut.getFileByPath("/"), false).size());
assertEquals(2, sut.getFolderContent(sut.getFileByPath("/"), false).size());
assertEquals(2, sut.getVirtualFolderContent(virtualType, false).size());
assertEquals(3, sut.getAllFiles().size());

View File

@ -71,60 +71,61 @@ class FileUploaderIT : AbstractOnServerIT() {
/**
* uploads a file, overwrites it with an empty one, check if overwritten
*/
@Test
fun testKeepLocalAndOverwriteRemote() {
val file = getDummyFile("/chunkedFile.txt")
val ocUpload = OCUpload(file.absolutePath, "/testFile.txt", account.name)
assertTrue(
UploadFileOperation(
uploadsStorageManager,
connectivityServiceMock,
powerManagementServiceMock,
user,
null,
ocUpload,
FileUploader.NameCollisionPolicy.DEFAULT,
FileUploader.LOCAL_BEHAVIOUR_COPY,
targetContext,
false,
false
)
.setRemoteFolderToBeCreated()
.execute(client, storageManager)
.isSuccess
)
val result = ReadFileRemoteOperation("/testFile.txt").execute(client)
assertTrue(result.isSuccess)
assertEquals(file.length(), (result.data[0] as RemoteFile).length)
val ocUpload2 = OCUpload(getDummyFile("/empty.txt").absolutePath, "/testFile.txt", account.name)
assertTrue(
UploadFileOperation(
uploadsStorageManager,
connectivityServiceMock,
powerManagementServiceMock,
user,
null,
ocUpload2,
FileUploader.NameCollisionPolicy.OVERWRITE,
FileUploader.LOCAL_BEHAVIOUR_COPY,
targetContext,
false,
false
)
.execute(client, storageManager)
.isSuccess
)
val result2 = ReadFileRemoteOperation("/testFile.txt").execute(client)
assertTrue(result2.isSuccess)
assertEquals(0, (result2.data[0] as RemoteFile).length)
}
// disabled, flaky test
// @Test
// fun testKeepLocalAndOverwriteRemote() {
// val file = getDummyFile("/chunkedFile.txt")
// val ocUpload = OCUpload(file.absolutePath, "/testFile.txt", account.name)
//
// assertTrue(
// UploadFileOperation(
// uploadsStorageManager,
// connectivityServiceMock,
// powerManagementServiceMock,
// user,
// null,
// ocUpload,
// FileUploader.NameCollisionPolicy.DEFAULT,
// FileUploader.LOCAL_BEHAVIOUR_COPY,
// targetContext,
// false,
// false
// )
// .setRemoteFolderToBeCreated()
// .execute(client, storageManager)
// .isSuccess
// )
//
// val result = ReadFileRemoteOperation("/testFile.txt").execute(client)
// assertTrue(result.isSuccess)
//
// assertEquals(file.length(), (result.data[0] as RemoteFile).length)
//
// val ocUpload2 = OCUpload(getDummyFile("/empty.txt").absolutePath, "/testFile.txt", account.name)
//
// assertTrue(
// UploadFileOperation(
// uploadsStorageManager,
// connectivityServiceMock,
// powerManagementServiceMock,
// user,
// null,
// ocUpload2,
// FileUploader.NameCollisionPolicy.OVERWRITE,
// FileUploader.LOCAL_BEHAVIOUR_COPY,
// targetContext,
// false,
// false
// )
// .execute(client, storageManager)
// .isSuccess
// )
//
// val result2 = ReadFileRemoteOperation("/testFile.txt").execute(client)
// assertTrue(result2.isSuccess)
//
// assertEquals(0, (result2.data[0] as RemoteFile).length)
// }
/**
* uploads a file, overwrites it with an empty one, check if overwritten

View File

@ -6,7 +6,6 @@ import androidx.documentfile.provider.DocumentFile
import com.owncloud.android.AbstractOnServerIT
import com.owncloud.android.R
import com.owncloud.android.datamodel.OCFile.ROOT_PATH
import com.owncloud.android.lib.common.network.WebdavUtils
import com.owncloud.android.providers.DocumentsProviderUtils.assertExistsOnServer
import com.owncloud.android.providers.DocumentsProviderUtils.assertListFilesEquals
import com.owncloud.android.providers.DocumentsProviderUtils.assertReadEquals
@ -19,9 +18,6 @@ import com.owncloud.android.providers.DocumentsProviderUtils.listFilesBlocking
import com.owncloud.android.providers.DocumentsStorageProvider.DOCUMENTID_SEPARATOR
import kotlinx.coroutines.runBlocking
import net.bytebuddy.utility.RandomString
import org.apache.commons.httpclient.HttpStatus
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity
import org.apache.commons.httpclient.methods.PutMethod
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
@ -177,31 +173,32 @@ class DocumentsStorageProviderIT : AbstractOnServerIT() {
assertExistsOnServer(client, ocFile1.remotePath, false)
}
@Test
fun testServerChangedFileContent() {
// create random file
val file1 = rootDir.createFile("text/plain", RandomString.make())!!
file1.assertRegularFile(size = 0L)
val content1 = "initial content".toByteArray()
// write content bytes to file
contentResolver.openOutputStream(file1.uri, "wt").use {
it!!.write(content1)
}
val remotePath = file1.getOCFile(storageManager)!!.remotePath
val content2 = "new content".toByteArray()
// modify content on server side
val putMethod = PutMethod(client.webdavUri.toString() + WebdavUtils.encodePath(remotePath))
putMethod.setRequestEntity(ByteArrayRequestEntity(content2))
assertEquals(HttpStatus.SC_NO_CONTENT, client.executeMethod(putMethod))
client.exhaustResponse(putMethod.responseBodyAsStream)
putMethod.releaseConnection() // let the connection available for other methods
// read back content bytes
assertReadEquals(content2, contentResolver.openInputStream(file1.uri))
}
// disabled as flaky test
// @Test
// fun testServerChangedFileContent() {
// // create random file
// val file1 = rootDir.createFile("text/plain", RandomString.make())!!
// file1.assertRegularFile(size = 0L)
//
// val content1 = "initial content".toByteArray()
//
// // write content bytes to file
// contentResolver.openOutputStream(file1.uri, "wt").use {
// it!!.write(content1)
// }
//
// val remotePath = file1.getOCFile(storageManager)!!.remotePath
//
// val content2 = "new content".toByteArray()
//
// // modify content on server side
// val putMethod = PutMethod(client.webdavUri.toString() + WebdavUtils.encodePath(remotePath))
// putMethod.setRequestEntity(ByteArrayRequestEntity(content2))
// assertEquals(HttpStatus.SC_NO_CONTENT, client.executeMethod(putMethod))
// client.exhaustResponse(putMethod.responseBodyAsStream)
// putMethod.releaseConnection() // let the connection available for other methods
//
// // read back content bytes
// assertReadEquals(content2, contentResolver.openInputStream(file1.uri))
// }
}