packages feed

crawlchain-0.1.2.0: test/src/HtmlFilteringTests.hs

module Main (main) where

import System.Exit (exitFailure)

import Network.CrawlChain.CrawlAction
import Text.HTML.CrawlChain.HtmlFiltering

main :: IO ()
main = do
  match extractLinks "<a href=\"link\">text</a>" ["link"]
  match extractLinks "<a href=\"link\" />" ["link"]
  match extractLinks "<a href=\"link\">sdf</a><a href=\"link2\">sdf</a>" ["link", "link2"]
  match (extractLinksFilteringAll unevaluated unevaluated unevaluated) "<a href=\"link\">text<span>bla</span></a>" ["link"]
  match (extractLinksFilteringAll unevaluated unevaluated (any (=="bla"))) "<a href=\"link\">text<span>bla</span></a>" ["link"]
  match (extractLinksFilteringAll unevaluated unevaluated (not . any (=="bla"))) "<a href=\"link\">text<span>bla</span></a>" []
  match extractLinks "<iframe src=\"link\"></iframe>" ["link"]
  match extractLinks "<iframe src=\"link\"/>" ["link"]
    where
      match method input expected = 
        if actual /= map GetRequest expected
        then putStrLn ("could not find " ++ (show expected) ++ " in; " ++ input) >> exitFailure
        else pure ()
        where
          actual = method input