diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f3ed954..58f8d035 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,9 @@ jobs: - name: Build and run Tests run: | if [[ $GITHUB_EVENT_NAME == 'schedule' ]]; then + echo running with real downloader ./gradlew check --stacktrace -Ddownloader=REAL else + echo running with mock downloader ./gradlew check --stacktrace -Ddownloader=MOCK fi diff --git a/extractor/src/test/java/org/schabi/newpipe/downloader/MockDownloader.java b/extractor/src/test/java/org/schabi/newpipe/downloader/MockDownloader.java index 21019a4e..888d334d 100644 --- a/extractor/src/test/java/org/schabi/newpipe/downloader/MockDownloader.java +++ b/extractor/src/test/java/org/schabi/newpipe/downloader/MockDownloader.java @@ -27,15 +27,17 @@ class MockDownloader extends Downloader { public MockDownloader(@Nonnull String path) throws IOException { this.path = path; this.mocks = new HashMap<>(); - File folder = new File(path); - for (File file : folder.listFiles()) { - if (file.getName().startsWith(RecordingDownloader.FILE_NAME_PREFIX)) { - final FileReader reader = new FileReader(file); - final TestRequestResponse response = new GsonBuilder() - .create() - .fromJson(reader, TestRequestResponse.class); - reader.close(); - mocks.put(response.getRequest(), response.getResponse()); + final File[] files = new File(path).listFiles(); + if (files != null) { + for (File file : files) { + if (file.getName().startsWith(RecordingDownloader.FILE_NAME_PREFIX)) { + final FileReader reader = new FileReader(file); + final TestRequestResponse response = new GsonBuilder() + .create() + .fromJson(reader, TestRequestResponse.class); + reader.close(); + mocks.put(response.getRequest(), response.getResponse()); + } } } } diff --git a/extractor/src/test/java/org/schabi/newpipe/downloader/RecordingDownloader.java b/extractor/src/test/java/org/schabi/newpipe/downloader/RecordingDownloader.java index bfe9e8c7..9e07959f 100644 --- a/extractor/src/test/java/org/schabi/newpipe/downloader/RecordingDownloader.java +++ b/extractor/src/test/java/org/schabi/newpipe/downloader/RecordingDownloader.java @@ -27,6 +27,10 @@ import javax.annotation.Nonnull; * The files must be created on the local dev environment * and recreated when the requests made by a test class change. *
+ *+ * Run the test class as a whole and not each test separately. + * Make sure the requests made by a class are unique. + *
*/ class RecordingDownloader extends Downloader {