From 85c047ee85bc2bd89683423b0beb233f16a3e730 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 6 May 2026 08:20:30 +0200 Subject: [PATCH 1/2] wip Signed-off-by: alperozturk96 --- .../androidTest/java/com/owncloud/android/AbstractIT.java | 2 +- .../android/datamodel/UploadStorageManagerTest.kt | 8 ++++++-- .../android/datamodel/FileDataStorageManager.java | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/androidTest/java/com/owncloud/android/AbstractIT.java b/app/src/androidTest/java/com/owncloud/android/AbstractIT.java index ac58ccc05fc9..35c3da920da3 100644 --- a/app/src/androidTest/java/com/owncloud/android/AbstractIT.java +++ b/app/src/androidTest/java/com/owncloud/android/AbstractIT.java @@ -218,7 +218,7 @@ protected OCCapability getCapability() throws AccountUtils.AccountNotFoundExcept @Before public void enableAccessibilityChecks() { - androidx.test.espresso.accessibility.AccessibilityChecks.enable().setRunChecksFromRootView(true); + androidx.test.espresso.accessibility.AccessibilityChecks.enable().setRunChecksFromRootView(false); } @After diff --git a/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt b/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt index dd1b256c86d6..e9a20f4dbdc6 100644 --- a/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt +++ b/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt @@ -233,7 +233,11 @@ class UploadStorageManagerTest : AbstractIT() { @After fun tearDown() { - deleteAllUploads() - userAccountManager.removeUser(user2) + if (::uploadsStorageManager.isInitialized) { + deleteAllUploads() + } + if (::userAccountManager.isInitialized && ::user2.isInitialized) { + userAccountManager.removeUser(user2) + } } } diff --git a/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java b/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java index a82ad391bb5d..d70ab81b0b03 100644 --- a/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/app/src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -940,13 +940,13 @@ private boolean removeLocalCopyIfNeeded(OCFile ocFile, boolean removeLocalCopy, String expectedPath = FileStorageUtils.getDefaultSavePathFor(user.getAccountName(), ocFile); if (!localPath.equalsIgnoreCase(expectedPath)) { Log_OC.w(TAG, "removeLocalCopyIfNeeded: Path mismatch! Expected " + expectedPath - + " but found " + localPath + ". Skipping deletion to prevent data loss."); + + " but found " + localPath + ". Deleting from actual local path."); } Log_OC.d(TAG, "removeLocalCopyIfNeeded: deleting local file -> " + localPath); boolean success = false; try { - success = new File(expectedPath).delete(); + success = new File(localPath).delete(); } catch (Exception e) { Log_OC.e(TAG, "removeLocalCopyIfNeeded: deletion error: ", e); } From d99e601a0931240f01ae4842e3c0328e0dd58718 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 6 May 2026 09:02:15 +0200 Subject: [PATCH 2/2] wip Signed-off-by: alperozturk96 --- .../java/com/owncloud/android/DownloadIT.java | 11 ++--------- .../android/datamodel/UploadStorageManagerTest.kt | 9 ++++++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/androidTest/java/com/owncloud/android/DownloadIT.java b/app/src/androidTest/java/com/owncloud/android/DownloadIT.java index f8fd99517f1c..b214e0a4542a 100644 --- a/app/src/androidTest/java/com/owncloud/android/DownloadIT.java +++ b/app/src/androidTest/java/com/owncloud/android/DownloadIT.java @@ -8,8 +8,6 @@ */ package com.owncloud.android; -import android.net.Uri; - import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.db.OCUpload; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -97,12 +95,7 @@ private void verifyDownload(OCFile file1, OCFile file2) { assertTrue(new File(file1.getStoragePath()).exists()); assertTrue(new File(file2.getStoragePath()).exists()); - // test against hardcoded path to make sure that it is correct - assertEquals("/storage/emulated/0/Android/media/"+targetContext.getPackageName()+"/nextcloud/" + - Uri.encode(account.name, "@") + "/testUpload/nonEmpty.txt", - file1.getStoragePath()); - assertEquals("/storage/emulated/0/Android/media/"+targetContext.getPackageName()+"/nextcloud/" + - Uri.encode(account.name, "@") + "/testUpload/nonEmpty2.txt", - file2.getStoragePath()); + assertEquals(FileStorageUtils.getDefaultSavePathFor(account.name, file1), file1.getStoragePath()); + assertEquals(FileStorageUtils.getDefaultSavePathFor(account.name, file2), file2.getStoragePath()); } } diff --git a/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt b/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt index e9a20f4dbdc6..2d2c83bb2f12 100644 --- a/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt +++ b/app/src/androidTest/java/com/owncloud/android/datamodel/UploadStorageManagerTest.kt @@ -32,10 +32,12 @@ import com.owncloud.android.operations.UploadFileOperation import org.junit.After import org.junit.Assert import org.junit.Before +import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock -import org.mockito.MockitoAnnotations +import org.mockito.junit.MockitoJUnit +import org.mockito.junit.MockitoRule import java.io.File import java.util.Random import java.util.UUID @@ -47,6 +49,9 @@ import java.util.function.Supplier @RunWith(AndroidJUnit4::class) @SmallTest class UploadStorageManagerTest : AbstractIT() { + @get:Rule + val mockitoRule: MockitoRule = MockitoJUnit.rule() + private lateinit var uploadsStorageManager: UploadsStorageManager @Mock @@ -58,8 +63,6 @@ class UploadStorageManagerTest : AbstractIT() { @Before fun setUp() { - MockitoAnnotations.openMocks(this) - val instrumentationCtx = ApplicationProvider.getApplicationContext() val contentResolver = instrumentationCtx.contentResolver uploadsStorageManager = UploadsStorageManager(currentAccountProvider, contentResolver)