Skip to content

Commit f15d783

Browse files
committed
Fix SoundCloud tests
1 parent 4e45aef commit f15d783

1 file changed

Lines changed: 69 additions & 9 deletions

File tree

extractor/src/test/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudStreamExtractorTest.java

Lines changed: 69 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
import org.schabi.newpipe.downloader.DownloaderTestImpl;
66
import org.schabi.newpipe.extractor.NewPipe;
77
import org.schabi.newpipe.extractor.StreamingService;
8+
import org.schabi.newpipe.extractor.exceptions.ContentNotSupportedException;
89
import org.schabi.newpipe.extractor.exceptions.GeographicRestrictionException;
910
import org.schabi.newpipe.extractor.exceptions.SoundCloudGoPlusContentException;
1011
import org.schabi.newpipe.extractor.services.DefaultStreamExtractorTest;
1112
import org.schabi.newpipe.extractor.stream.StreamExtractor;
1213
import org.schabi.newpipe.extractor.stream.StreamType;
1314

1415
import java.util.Arrays;
16+
import java.util.Collections;
1517
import java.util.List;
1618

1719
import javax.annotation.Nullable;
@@ -21,24 +23,82 @@
2123
public class SoundcloudStreamExtractorTest {
2224
private static final String SOUNDCLOUD = "https://soundcloud.com/";
2325

24-
public static class SoundcloudNotAvailable {
26+
public static class SoundcloudGeoRestrictedTrack extends DefaultStreamExtractorTest {
27+
private static final String ID = "one-touch";
28+
private static final String UPLOADER = SOUNDCLOUD + "jessglynne";
29+
private static final int TIMESTAMP = 0;
30+
private static final String URL = UPLOADER + "/" + ID + "#t=" + TIMESTAMP;
31+
private static StreamExtractor extractor;
32+
2533
@Test(expected = GeographicRestrictionException.class)
2634
public void geoRestrictedContent() throws Exception {
27-
final String id = "one-touch";
28-
final String uploader = SOUNDCLOUD + "jessglynne";
29-
final String url = uploader + "/" + id;
30-
final StreamExtractor extractor = SoundCloud.getStreamExtractor(url);
35+
NewPipe.init(DownloaderTestImpl.getInstance());
36+
extractor = SoundCloud.getStreamExtractor(URL);
3137
extractor.fetchPage();
3238
}
3339

40+
@Override public StreamExtractor extractor() { return extractor; }
41+
@Override public StreamingService expectedService() { return SoundCloud; }
42+
@Override public String expectedName() { return "Jess Glynne & Jax Jones - One Touch"; }
43+
@Override public String expectedId() { return "621612588"; }
44+
@Override public String expectedUrlContains() { return UPLOADER + "/" + ID; }
45+
@Override public String expectedOriginalUrlContains() { return URL; }
46+
47+
@Override public StreamType expectedStreamType() { return StreamType.AUDIO_STREAM; }
48+
@Override public String expectedUploaderName() { return "Jess Glynne"; }
49+
@Override public String expectedUploaderUrl() { return UPLOADER; }
50+
@Override public boolean expectedUploaderVerified() { return true; }
51+
@Override public List<String> expectedDescriptionContains() { return Collections.emptyList(); }
52+
@Override public long expectedLength() { return 197; }
53+
@Override public long expectedTimestamp() { return TIMESTAMP; }
54+
@Override public long expectedViewCountAtLeast() { return 43000; }
55+
@Nullable @Override public String expectedUploadDate() { return "2019-05-16 16:28:45.000"; }
56+
@Nullable @Override public String expectedTextualUploadDate() { return "2019-05-16 16:28:45"; }
57+
@Override public long expectedLikeCountAtLeast() { return -1; }
58+
@Override public long expectedDislikeCountAtLeast() { return -1; }
59+
@Override public boolean expectedHasVideoStreams() { return false; }
60+
@Override public boolean expectedHasSubtitles() { return false; }
61+
@Override public boolean expectedHasFrames() { return false; }
62+
@Override public int expectedStreamSegmentsCount() { return 0; }
63+
}
64+
65+
public static class SoundcloudGoPlusTrack extends DefaultStreamExtractorTest {
66+
private static final String ID = "places";
67+
private static final String UPLOADER = SOUNDCLOUD + "martinsolveig";
68+
private static final int TIMESTAMP = 0;
69+
private static final String URL = UPLOADER + "/" + ID + "#t=" + TIMESTAMP;
70+
private static StreamExtractor extractor;
71+
3472
@Test(expected = SoundCloudGoPlusContentException.class)
3573
public void goPlusContent() throws Exception {
36-
final String id = "places";
37-
final String uploader = SOUNDCLOUD + "martinsolveig";
38-
final String url = uploader + "/" + id;
39-
final StreamExtractor extractor = SoundCloud.getStreamExtractor(url);
74+
NewPipe.init(DownloaderTestImpl.getInstance());
75+
extractor = SoundCloud.getStreamExtractor(URL);
4076
extractor.fetchPage();
4177
}
78+
79+
@Override public StreamExtractor extractor() { return extractor; }
80+
@Override public StreamingService expectedService() { return SoundCloud; }
81+
@Override public String expectedName() { return "Places (feat. Ina Wroldsen)"; }
82+
@Override public String expectedId() { return "292479564"; }
83+
@Override public String expectedUrlContains() { return UPLOADER + "/" + ID; }
84+
@Override public String expectedOriginalUrlContains() { return URL; }
85+
86+
@Override public StreamType expectedStreamType() { return StreamType.AUDIO_STREAM; }
87+
@Override public String expectedUploaderName() { return "martinsolveig"; }
88+
@Override public String expectedUploaderUrl() { return UPLOADER; }
89+
@Override public boolean expectedUploaderVerified() { return true; }
90+
@Override public List<String> expectedDescriptionContains() { return Collections.singletonList(""); }
91+
@Override public long expectedLength() { return 30; }
92+
@Override public long expectedTimestamp() { return TIMESTAMP; }
93+
@Override public long expectedViewCountAtLeast() { return 386000; }
94+
@Nullable @Override public String expectedUploadDate() { return "2016-11-11 01:16:37.000"; }
95+
@Nullable @Override public String expectedTextualUploadDate() { return "2016-11-11 01:16:37"; }
96+
@Override public long expectedLikeCountAtLeast() { return -1; }
97+
@Override public long expectedDislikeCountAtLeast() { return -1; }
98+
@Override public boolean expectedHasVideoStreams() { return false; }
99+
@Override public boolean expectedHasSubtitles() { return false; }
100+
@Override public boolean expectedHasFrames() { return false; }
101+
@Override public int expectedStreamSegmentsCount() { return 0; }
42102
}
43103

44104
public static class CreativeCommonsPlaysWellWithOthers extends DefaultStreamExtractorTest {

0 commit comments

Comments
 (0)