Skip to content

Commit

Permalink
Move ContentSettingsFragment.isValidPath to helpers and add unit test…
Browse files Browse the repository at this point in the history
… for it.
  • Loading branch information
ATofighi committed May 21, 2021
1 parent 82f43ac commit fa2b11b
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.schabi.newpipe.extractor.localization.ContentCountry;
import org.schabi.newpipe.extractor.localization.Localization;
import org.schabi.newpipe.util.FilePickerActivityHelper;
import org.schabi.newpipe.util.FilePathUtils;
import org.schabi.newpipe.util.ZipHelper;

import java.io.File;
Expand Down Expand Up @@ -67,7 +68,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
FilePickerActivityHelper.MODE_FILE);
final String path = defaultPreferences.getString(importExportDataPathKey, "");
if (isValidPath(path)) {
if (FilePathUtils.isValidDirectoryPath(path)) {
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
}
startActivityForResult(i, REQUEST_IMPORT_PATH);
Expand All @@ -82,7 +83,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
FilePickerActivityHelper.MODE_DIR);
final String path = defaultPreferences.getString(importExportDataPathKey, "");
if (isValidPath(path)) {
if (FilePathUtils.isValidDirectoryPath(path)) {
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
}
startActivityForResult(i, REQUEST_EXPORT_PATH);
Expand Down Expand Up @@ -254,14 +255,6 @@ private void importDatabase(final String filePath) {
}
}

private boolean isValidPath(final String path) {
if (path == null || path.isEmpty()) {
return false;
}
final File file = new File(path);
return file.exists() && file.isDirectory();
}

private void setImportExportDataPath(final File file) {
final String directoryPath;
if (!file.isDirectory()) {
Expand Down
22 changes: 22 additions & 0 deletions app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.schabi.newpipe.util;

import java.io.File;

public final class FilePathUtils {
private FilePathUtils() { }


/**
* Check that the path is a valid directory path and it exists.
*
* @param path full path of directory,
* @return is path valid or not
*/
public static boolean isValidDirectoryPath(final String path) {
if (path == null || path.isEmpty()) {
return false;
}
final File file = new File(path);
return file.exists() && file.isDirectory();
}
}
32 changes: 32 additions & 0 deletions app/src/test/java/org/schabi/newpipe/util/FilePathHelperTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.schabi.newpipe.util;

import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

public class FilePathHelperTest {
@Test
public void testIsValidDirectoryPath() throws IOException {
// path that exists
final File dir1 = Files.createTempDirectory("dir1").toFile();
assertTrue(FilePathUtils.isValidDirectoryPath(dir1.getAbsolutePath()));

// a directory in above path that exists
final File subDir = Files.createDirectory(dir1.toPath().resolve("subdir")).toFile();
assertTrue(FilePathUtils.isValidDirectoryPath(subDir.getAbsolutePath()));

// a directory in above path that doesn't exist
assertFalse(FilePathUtils.isValidDirectoryPath(dir1.toPath().resolve("not-exists-subdir").
toFile().getAbsolutePath()));

// file is not a valid direcotry path
final File tempFile = Files.createFile(dir1.toPath().resolve("simple_file")).toFile();
assertFalse(FilePathUtils.isValidDirectoryPath(tempFile.getAbsolutePath()));
}

}

0 comments on commit fa2b11b

Please sign in to comment.