Move ContentSettingsFragment.isValidPath to helpers and add unit test for it.
This commit is contained in:
parent
82f43ac6a6
commit
fa2b11b768
3 changed files with 57 additions and 10 deletions
|
@ -26,6 +26,7 @@ import org.schabi.newpipe.extractor.NewPipe;
|
||||||
import org.schabi.newpipe.extractor.localization.ContentCountry;
|
import org.schabi.newpipe.extractor.localization.ContentCountry;
|
||||||
import org.schabi.newpipe.extractor.localization.Localization;
|
import org.schabi.newpipe.extractor.localization.Localization;
|
||||||
import org.schabi.newpipe.util.FilePickerActivityHelper;
|
import org.schabi.newpipe.util.FilePickerActivityHelper;
|
||||||
|
import org.schabi.newpipe.util.FilePathUtils;
|
||||||
import org.schabi.newpipe.util.ZipHelper;
|
import org.schabi.newpipe.util.ZipHelper;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -67,7 +68,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
|
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
|
||||||
FilePickerActivityHelper.MODE_FILE);
|
FilePickerActivityHelper.MODE_FILE);
|
||||||
final String path = defaultPreferences.getString(importExportDataPathKey, "");
|
final String path = defaultPreferences.getString(importExportDataPathKey, "");
|
||||||
if (isValidPath(path)) {
|
if (FilePathUtils.isValidDirectoryPath(path)) {
|
||||||
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
|
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
|
||||||
}
|
}
|
||||||
startActivityForResult(i, REQUEST_IMPORT_PATH);
|
startActivityForResult(i, REQUEST_IMPORT_PATH);
|
||||||
|
@ -82,7 +83,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
|
.putExtra(FilePickerActivityHelper.EXTRA_MODE,
|
||||||
FilePickerActivityHelper.MODE_DIR);
|
FilePickerActivityHelper.MODE_DIR);
|
||||||
final String path = defaultPreferences.getString(importExportDataPathKey, "");
|
final String path = defaultPreferences.getString(importExportDataPathKey, "");
|
||||||
if (isValidPath(path)) {
|
if (FilePathUtils.isValidDirectoryPath(path)) {
|
||||||
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
|
i.putExtra(FilePickerActivityHelper.EXTRA_START_PATH, path);
|
||||||
}
|
}
|
||||||
startActivityForResult(i, REQUEST_EXPORT_PATH);
|
startActivityForResult(i, REQUEST_EXPORT_PATH);
|
||||||
|
@ -254,14 +255,6 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
private void setImportExportDataPath(final File file) {
|
||||||
final String directoryPath;
|
final String directoryPath;
|
||||||
if (!file.isDirectory()) {
|
if (!file.isDirectory()) {
|
||||||
|
|
22
app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
Normal file
22
app/src/main/java/org/schabi/newpipe/util/FilePathUtils.java
Normal file
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -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()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue