Skip to content

Commit 7536fa4

Browse files
committed
ripperstest java.nio
1 parent d3d732e commit 7536fa4

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

src/test/java/com/rarchives/ripme/tst/ripper/rippers/RippersTest.java

+27-15
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package com.rarchives.ripme.tst.ripper.rippers;
22

3-
import java.io.File;
4-
import java.io.IOException;
5-
import java.util.List;
6-
3+
import com.rarchives.ripme.ripper.AbstractRipper;
74
import com.rarchives.ripme.ripper.rippers.ChanRipper;
8-
5+
import com.rarchives.ripme.utils.Utils;
96
import org.apache.logging.log4j.Level;
107
import org.apache.logging.log4j.LogManager;
118
import org.apache.logging.log4j.Logger;
@@ -14,8 +11,12 @@
1411
import org.apache.logging.log4j.core.config.LoggerConfig;
1512
import org.junit.jupiter.api.Assertions;
1613

17-
import com.rarchives.ripme.ripper.AbstractRipper;
18-
import com.rarchives.ripme.utils.Utils;
14+
import java.io.File;
15+
import java.io.IOException;
16+
import java.nio.file.Files;
17+
import java.nio.file.Path;
18+
import java.util.List;
19+
import java.util.stream.Stream;
1920

2021
/**
2122
* Contains helper methods for testing rippers.
@@ -41,12 +42,13 @@ void testRipper(AbstractRipper ripper) {
4142
ripper.rip();
4243
if (logger.isTraceEnabled()) {
4344
logger.trace("working dir: " + ripper.getWorkingDir());
44-
logger.trace("list files: " + ripper.getWorkingDir().listFiles().length);
45-
for (int i = 0; i < ripper.getWorkingDir().listFiles().length; i++) {
46-
logger.trace(" " + ripper.getWorkingDir().listFiles()[i]);
45+
File wd = ripper.getWorkingDir().toFile();
46+
logger.trace("list files: " + wd.listFiles().length);
47+
for (int i = 0; i < wd.listFiles().length; i++) {
48+
logger.trace(" " + wd.listFiles()[i]);
4749
}
4850
}
49-
Assertions.assertTrue(ripper.getWorkingDir().listFiles().length >= 1,
51+
Assertions.assertFalse(isEmpty(ripper.getWorkingDir()),
5052
"Failed to download a single file from " + ripper.getURL());
5153
} catch (IOException e) {
5254
if (e.getMessage().contains("Ripping interrupted")) {
@@ -97,7 +99,8 @@ void testChanRipper(ChanRipper ripper) {
9799
"txt", "log", "php" };
98100

99101
/** Recursively deletes a directory */
100-
void deleteDir(File dir) {
102+
void deleteDir(Path folder) {
103+
File dir = folder.toFile();
101104
if (!dir.getName().contains("_")) {
102105
// All ripped albums contain an underscore
103106
// Don't delete an album if it doesn't have an underscore
@@ -113,15 +116,16 @@ void deleteDir(File dir) {
113116
return;
114117
}
115118
if (f.isDirectory()) {
116-
deleteDir(f);
119+
deleteDir(f.toPath());
117120
}
118121
f.delete();
119122
}
120123
dir.delete();
121124
}
122125

123-
void deleteSubdirs(File workingDir) {
124-
for (File f : workingDir.listFiles()) {
126+
void deleteSubdirs(Path workingDir) {
127+
File wd = workingDir.toFile();
128+
for (File f : wd.listFiles()) {
125129
if (f.isDirectory()) {
126130
for (File sf : f.listFiles()) {
127131
logger.debug("Deleting " + sf);
@@ -133,4 +137,12 @@ void deleteSubdirs(File workingDir) {
133137
}
134138
}
135139

140+
private boolean isEmpty(Path path) throws IOException {
141+
if (Files.isDirectory(path)) {
142+
try (Stream<Path> entries = Files.list(path)) {
143+
return !entries.findFirst().isPresent();
144+
}
145+
}
146+
return false;
147+
}
136148
}

0 commit comments

Comments
 (0)