add test cases

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
tobiasKaminsky 2019-10-01 10:45:09 +02:00
parent 5c387fac7a
commit 6184fcd5ae
No known key found for this signature in database
GPG key ID: 0E00D4D47D0C5AF7
2 changed files with 106 additions and 3 deletions

View file

@ -54,6 +54,7 @@ import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@ -164,7 +165,7 @@ public final class FileStorageUtils {
*/
public static String getInstantUploadFilePath(Locale current,
String remotePath,
String fileName,
@Nullable String fileName,
long dateTaken,
Boolean subfolderByDate) {
String subPath = "";
@ -172,8 +173,9 @@ public final class FileStorageUtils {
subPath = getSubPathFromDate(dateTaken, current);
}
/* Path must be normalized; otherwise the next RefreshFolderOperation has a mismatch and deletes the local file. */
return (remotePath + OCFile.PATH_SEPARATOR + subPath + (fileName == null ? "" : fileName)).replaceAll(OCFile.PATH_SEPARATOR + "+", OCFile.PATH_SEPARATOR);
// Path must be normalized; otherwise the next RefreshFolderOperation has a mismatch and deletes the local file.
return (remotePath + OCFile.PATH_SEPARATOR + subPath +
(fileName == null ? "" : fileName)).replaceAll(OCFile.PATH_SEPARATOR + "+", OCFile.PATH_SEPARATOR);
}

View file

@ -0,0 +1,101 @@
/*
* Nextcloud Android client application
*
* @author Tobias Kaminsky
* Copyright (C) 2019 Tobias Kaminsky
* Copyright (C) 2019 Nextcloud GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.nextcloud.client.utils
import com.owncloud.android.utils.FileStorageUtils
import org.junit.Assert.assertEquals
import org.junit.Test
import java.util.Locale
class FileStorageUtilsTest {
@Test
fun testInstantUploadPathNullFilename() {
val result = FileStorageUtils.getInstantUploadFilePath(Locale.ROOT,
"/subfolder/",
null,
123123123L,
false)
val expected = "/subfolder/"
assertEquals(expected, result)
}
@Test
fun testInstantUploadPathNullEmptyDate() {
val result = FileStorageUtils.getInstantUploadFilePath(Locale.ROOT,
"/subfolder/",
"file.pdf",
0,
true)
val expected = "/subfolder/file.pdf"
assertEquals(expected, result)
}
@Test
fun testInstantUploadPath() {
val result = FileStorageUtils.getInstantUploadFilePath(Locale.ROOT,
"/subfolder/",
"file.pdf",
123123123L,
false)
val expected = "/subfolder/file.pdf"
assertEquals(expected, result)
}
@Test
fun testInstantUploadPathWithSubfolderByDate() {
val result = FileStorageUtils.getInstantUploadFilePath(Locale.ROOT,
"/subfolder/",
"file.pdf",
1569918628000,
true)
val expected = "/subfolder/2019/10/file.pdf"
assertEquals(expected, result)
}
@Test
fun testInstantUploadPathWithSubfolderFile() {
val result = FileStorageUtils.getInstantUploadFilePath(Locale.ROOT,
"/subfolder/",
"/sub/file.pdf",
123123123L,
false)
val expected = "/subfolder/sub/file.pdf"
assertEquals(expected, result)
}
@Test
fun testInstantUploadPathWithSubfolderByDateWithSubfolderFile() {
val result = FileStorageUtils.getInstantUploadFilePath(Locale.ROOT,
"/subfolder/",
"/sub/file.pdf",
1569918628000,
true)
val expected = "/subfolder/2019/10/sub/file.pdf"
assertEquals(expected, result)
}
}