From e0ba29cd197da4f84d8c4971eace59db536acbd2 Mon Sep 17 00:00:00 2001 From: AudricV <74829229+AudricV@users.noreply.github.com> Date: Sat, 15 Jul 2023 00:24:27 +0200 Subject: [PATCH] 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 --- .../newpipe/extractor/ExtractorAsserts.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java b/extractor/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java index 124d998d0..2423c6e5b 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/ExtractorAsserts.java @@ -3,8 +3,11 @@ package org.schabi.newpipe.extractor; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -15,6 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; import org.schabi.newpipe.extractor.utils.Utils; public class ExtractorAsserts { @@ -144,6 +148,16 @@ public class ExtractorAsserts { assertNotNull(shouldBeContained, "shouldBeContained is null"); assertNotNull(container, "container is null"); assertTrue(container.contains(shouldBeContained), - "'" + shouldBeContained + "' should be contained inside '" + container +"'"); + "'" + shouldBeContained + "' should be contained inside '" + container + "'"); + } + + public static void assertTabsContained(@Nonnull final List tabs, + @Nonnull final String... expectedTabs) { + final Set tabSet = tabs.stream() + .map(linkHandler -> linkHandler.getContentFilters().get(0)) + .collect(Collectors.toUnmodifiableSet()); + Arrays.stream(expectedTabs) + .forEach(expectedTab -> assertTrue(tabSet.contains(expectedTab), + "Missing " + expectedTab + " tab (got " + tabSet + ")")); } }