Skip to content

Commit e0ba29c

Browse files
AudricVTheta-Dev
authored andcommitted
Add utility method to assert that given channel tabs are in the ones returned by a channel extractor
Only the first content filter of the ListLinkHandler instances provided is used when collecting all channel tabs of the ListLinkHandler list, as channel tabs implementations only use one content filter per ListLinkHandler instance. Co-authored-by: ThetaDev <t.testboy@gmail.com>
1 parent 18846ba commit e0ba29c

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

extractor/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
import java.net.MalformedURLException;
44
import java.net.URL;
55
import java.util.ArrayList;
6+
import java.util.Arrays;
67
import java.util.Collections;
78
import java.util.List;
9+
import java.util.Set;
10+
import java.util.stream.Collectors;
811

912
import javax.annotation.Nonnull;
1013
import javax.annotation.Nullable;
@@ -15,6 +18,7 @@
1518
import static org.junit.jupiter.api.Assertions.assertNull;
1619
import static org.junit.jupiter.api.Assertions.assertTrue;
1720

21+
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
1822
import org.schabi.newpipe.extractor.utils.Utils;
1923

2024
public class ExtractorAsserts {
@@ -144,6 +148,16 @@ public static void assertContains(
144148
assertNotNull(shouldBeContained, "shouldBeContained is null");
145149
assertNotNull(container, "container is null");
146150
assertTrue(container.contains(shouldBeContained),
147-
"'" + shouldBeContained + "' should be contained inside '" + container +"'");
151+
"'" + shouldBeContained + "' should be contained inside '" + container + "'");
152+
}
153+
154+
public static void assertTabsContained(@Nonnull final List<ListLinkHandler> tabs,
155+
@Nonnull final String... expectedTabs) {
156+
final Set<String> tabSet = tabs.stream()
157+
.map(linkHandler -> linkHandler.getContentFilters().get(0))
158+
.collect(Collectors.toUnmodifiableSet());
159+
Arrays.stream(expectedTabs)
160+
.forEach(expectedTab -> assertTrue(tabSet.contains(expectedTab),
161+
"Missing " + expectedTab + " tab (got " + tabSet + ")"));
148162
}
149163
}

0 commit comments

Comments
 (0)