|
22 | 22 | import static org.junit.Assert.assertEquals; |
23 | 23 | import static org.schabi.newpipe.extractor.ServiceList.PeerTube; |
24 | 24 |
|
25 | | -public class PeertubeStreamExtractorTest { |
| 25 | +public abstract class PeertubeStreamExtractorTest extends DefaultStreamExtractorTest { |
26 | 26 | private static final String BASE_URL = "/videos/watch/"; |
27 | 27 |
|
28 | | - public static class WhatIsPeertube extends DefaultStreamExtractorTest { |
| 28 | + @Override public boolean expectedHasAudioStreams() { return false; } |
| 29 | + @Override public boolean expectedHasFrames() { return false; } |
| 30 | + |
| 31 | + public static class WhatIsPeertube extends PeertubeStreamExtractorTest { |
29 | 32 | private static final String ID = "9c9de5e8-0a1e-484a-b099-e80766180a6d"; |
30 | 33 | private static final String INSTANCE = "https://framatube.org"; |
31 | 34 | private static final int TIMESTAMP_MINUTE = 1; |
@@ -85,18 +88,60 @@ public void testGetLanguageInformation() throws ParsingException { |
85 | 88 | @Nullable @Override public String expectedTextualUploadDate() { return "2018-10-01T10:52:46.396Z"; } |
86 | 89 | @Override public long expectedLikeCountAtLeast() { return 120; } |
87 | 90 | @Override public long expectedDislikeCountAtLeast() { return 0; } |
88 | | - @Override public boolean expectedHasAudioStreams() { return false; } |
89 | | - @Override public boolean expectedHasFrames() { return false; } |
90 | 91 | @Override public String expectedHost() { return "framatube.org"; } |
91 | 92 | @Override public String expectedCategory() { return "Science & Technology"; } |
92 | 93 | @Override public String expectedLicence() { return "Attribution - Share Alike"; } |
93 | 94 | @Override public Locale expectedLanguageInfo() { return Locale.forLanguageTag("en"); } |
94 | 95 | @Override public List<String> expectedTags() { return Arrays.asList("framasoft", "peertube"); } |
95 | | - @Override public int expectedStreamSegmentsCount() { return 0; } |
| 96 | + } |
| 97 | + |
| 98 | + public static class HlsOnlyStreams extends PeertubeStreamExtractorTest { |
| 99 | + private static final String ID = "41342cb4-6fa8-402d-a116-1f63a7f438a3"; |
| 100 | + private static final String INSTANCE = "https://tilvids.com"; |
| 101 | + |
| 102 | + private static final String URL = INSTANCE + BASE_URL + ID; |
| 103 | + private static StreamExtractor extractor; |
| 104 | + |
| 105 | + @BeforeClass |
| 106 | + public static void setUp() throws Exception { |
| 107 | + NewPipe.init(DownloaderTestImpl.getInstance()); |
| 108 | + // setting instance might break test when running in parallel (!) |
| 109 | + PeerTube.setInstance(new PeertubeInstance(INSTANCE, "TILvids")); |
| 110 | + extractor = PeerTube.getStreamExtractor(URL); |
| 111 | + extractor.fetchPage(); |
| 112 | + } |
| 113 | + |
| 114 | + @Override public StreamExtractor extractor() { return extractor; } |
| 115 | + @Override public StreamingService expectedService() { return PeerTube; } |
| 116 | + @Override public String expectedName() { return "A Goodbye to Flash Games"; } |
| 117 | + @Override public String expectedId() { return ID; } |
| 118 | + @Override public String expectedUrlContains() { return INSTANCE + BASE_URL + ID; } |
| 119 | + @Override public String expectedOriginalUrlContains() { return URL; } |
| 120 | + |
| 121 | + @Override public StreamType expectedStreamType() { return StreamType.VIDEO_STREAM; } |
| 122 | + @Override public String expectedUploaderName() { return "Marinauts"; } |
| 123 | + @Override public String expectedUploaderUrl() { return "https://tilvids.com/accounts/marinauts@tilvids.com"; } |
| 124 | + @Override public String expectedSubChannelName() { return "Main marinauts channel"; } |
| 125 | + @Override public String expectedSubChannelUrl() { return "https://tilvids.com/video-channels/marinauts_channel"; } |
| 126 | + @Override public List<String> expectedDescriptionContains() { // CRLF line ending |
| 127 | + return Arrays.asList("Goodbye", "Flash Games", "Anthony takes a minute", "Songs used:"); |
| 128 | + } |
| 129 | + @Override public long expectedLength() { return 362; } |
| 130 | + @Override public long expectedViewCountAtLeast() { return 20; } |
| 131 | + @Nullable @Override public String expectedUploadDate() { return "2021-04-08 20:15:32.434"; } |
| 132 | + @Nullable @Override public String expectedTextualUploadDate() { return "2021-04-08T20:15:32.434Z"; } |
| 133 | + @Override public long expectedLikeCountAtLeast() { return 6; } |
| 134 | + @Override public long expectedDislikeCountAtLeast() { return 0; } |
| 135 | + @Override public boolean expectedHasSubtitles() { return false; } |
| 136 | + @Override public String expectedHost() { return "tilvids.com"; } |
| 137 | + @Override public String expectedCategory() { return "Entertainment"; } |
| 138 | + @Override public String expectedLicence() { return "Unknown"; } |
| 139 | + @Override public Locale expectedLanguageInfo() { return null; } |
| 140 | + @Override public List<String> expectedTags() { return Arrays.asList("Marinauts", "adobe flash", "adobe flash player", "flash games", "the marinauts"); } |
96 | 141 | } |
97 | 142 |
|
98 | 143 | @Ignore("Test broken, SSL problem") |
99 | | - public static class AgeRestricted extends DefaultStreamExtractorTest { |
| 144 | + public static class AgeRestricted extends PeertubeStreamExtractorTest { |
100 | 145 | private static final String ID = "dbd8e5e1-c527-49b6-b70c-89101dbb9c08"; |
101 | 146 | private static final String INSTANCE = "https://nocensoring.net"; |
102 | 147 | private static final String URL = INSTANCE + "/videos/embed/" + ID; |
@@ -134,9 +179,6 @@ public static void setUp() throws Exception { |
134 | 179 | @Override public long expectedLikeCountAtLeast() { return 1; } |
135 | 180 | @Override public long expectedDislikeCountAtLeast() { return 0; } |
136 | 181 | @Override public int expectedAgeLimit() { return 18; } |
137 | | - @Override public boolean expectedHasAudioStreams() { return false; } |
138 | | - @Override public boolean expectedHasSubtitles() { return false; } |
139 | | - @Override public boolean expectedHasFrames() { return false; } |
140 | 182 | @Override public String expectedHost() { return "nocensoring.net"; } |
141 | 183 | @Override public String expectedCategory() { return "Art"; } |
142 | 184 | @Override public String expectedLicence() { return "Attribution"; } |
|
0 commit comments