package net.pterodactylus.rhynodge.filters.comics;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+
import java.io.IOException;
import net.pterodactylus.rhynodge.filters.ResourceLoader;
+import net.pterodactylus.rhynodge.states.ComicState;
+import net.pterodactylus.rhynodge.states.HtmlState;
-import com.google.common.base.Optional;
-import org.hamcrest.MatcherAssert;
-import org.hamcrest.Matchers;
import org.jsoup.nodes.Document;
import org.junit.Test;
private final CyanideAndHappinessComicFilter comicSiteFilter = new CyanideAndHappinessComicFilter();
private final Document document;
+ private final HtmlState htmlState;
public CyanideAndHappinessComicFilterTest() throws IOException {
- document = ResourceLoader.loadDocument(getClass(), "cyanide-and-happiness.html", "http://www.explosm.net/comics/new/");
- }
-
- @Test
- public void filterCanParseComicTitle() {
- MatcherAssert.assertThat(comicSiteFilter.extractTitle(document), Matchers.is(Optional.absent()));
- }
-
- @Test
- public void filterCanExtractImageUrls() {
- MatcherAssert.assertThat(comicSiteFilter.extractImageUrls(document), Matchers.contains("http://files.explosm.net/comics/Dave/moneyhappiness.png"));
+ document = ResourceLoader.loadDocument(getClass(), "cyanide-and-happiness.html", "https://explosm.net/");
+ htmlState = new HtmlState("https://explosm.net/", document);
}
@Test
- public void filterExtractNoImageComments() {
- MatcherAssert.assertThat(comicSiteFilter.extractImageComments(document), Matchers.empty());
+ public void comicCanBeParsed() {
+ ComicState comicState = (ComicState) comicSiteFilter.filter(htmlState);
+ assertThat(comicState.comics(), contains(
+ ComicMatchers.isComic("", contains(
+ ComicMatchers.isStrip("https://static.explosm.net/2022/06/11022918/bringaparent.png", "")
+ ))
+ ));
}
}