aboutsummaryrefslogtreecommitdiff
path: root/src/test/haskell/Main.hs
diff options
context:
space:
mode:
authorJoris2019-09-03 21:01:53 +0200
committerJoris2019-09-03 21:04:40 +0200
commit5cedcecd6ae31e2485dcab2ddd74c74a4779545d (patch)
treebb54b8f1bbf1f5baaf94c28e4443fb17321d5fc7 /src/test/haskell/Main.hs
parent8d14cb80170a8a15a0ced13bc7fe5cd16b908974 (diff)
downloadad-listener-5cedcecd6ae31e2485dcab2ddd74c74a4779545d.tar.gz
ad-listener-5cedcecd6ae31e2485dcab2ddd74c74a4779545d.tar.bz2
ad-listener-5cedcecd6ae31e2485dcab2ddd74c74a4779545d.zip
Make LBC to work
Use request headers to simulate a normal browser
Diffstat (limited to 'src/test/haskell/Main.hs')
-rw-r--r--src/test/haskell/Main.hs69
1 files changed, 37 insertions, 32 deletions
diff --git a/src/test/haskell/Main.hs b/src/test/haskell/Main.hs
index a8cfae9..ba6d466 100644
--- a/src/test/haskell/Main.hs
+++ b/src/test/haskell/Main.hs
@@ -1,16 +1,19 @@
-import Data.Maybe (catMaybes)
-import qualified Data.Text.IO as T
+import Data.Maybe (catMaybes)
+import qualified Data.Text.IO as T
+import qualified Network.HTTP.Conduit as H
import Test.Hspec
import qualified Ads
import qualified FetchAd
-import Model.Ad (Ad (..))
-import qualified Parser.LeboncoinParser as LeboncoinParser
-import qualified Parser.OuestFranceParser as OuestFranceParser
-import qualified Parser.SeLogerParser as SeLogerParser
+import Model.Ad (Ad (..))
+import qualified Parser.LeboncoinParser as LeboncoinParser
+-- import qualified Parser.OuestFranceParser as OuestFranceParser
+-- import qualified Parser.SeLogerParser as SeLogerParser
main :: IO ()
main = do
+ manager <- H.newManager H.tlsManagerSettings
+
hspec $ do
describe "LeboncoinParser" $ do
@@ -22,34 +25,36 @@ main = do
LeboncoinParser.parse ads `shouldBe` Ads.leboncoin
it "should parse ads from remote page" $ do
- ads <- FetchAd.leboncoin ["https://www.leboncoin.fr/locations/offres/ile_de_france/?th=1"]
- checkAds ads
-
- describe "OuestFranceParser" $ do
-
- it "should parse no results from empty string" $ do
- OuestFranceParser.parse "" `shouldBe` []
-
- it "should parse ads from page" $ do
- rawOuestFranceAds <- T.readFile "src/test/resources/ouestFrance.html"
- OuestFranceParser.parse rawOuestFranceAds `shouldBe` Ads.ouestFrance
-
- it "should parse ads from remote page" $ do
- ads <- FetchAd.ouestFrance ["https://www.ouestfrance-immo.com/louer/appartement/rennes-35-35000/"]
+ ads <- FetchAd.leboncoin
+ manager
+ ["https://www.leboncoin.fr/annonces/offres/ile_de_france/"]
checkAds ads
- describe "SeLogerParser" $ do
-
- it "should parse no results from empty string" $ do
- SeLogerParser.parse "" `shouldBe` []
-
- it "should parse ads from page" $ do
- ads <- T.readFile "src/test/resources/seLoger.html"
- SeLogerParser.parse ads `shouldBe` Ads.seLoger
-
- it "should parse ads from remote page" $ do
- ads <- FetchAd.seLoger ["https://www.seloger.com/list.htm?tri=initial&idtypebien=2,1&idtt=2,5&naturebien=1,2,4&ci=690123"]
- checkAds ads
+ -- describe "OuestFranceParser" $ do
+ --
+ -- it "should parse no results from empty string" $ do
+ -- OuestFranceParser.parse "" `shouldBe` []
+ --
+ -- it "should parse ads from page" $ do
+ -- rawOuestFranceAds <- T.readFile "src/test/resources/ouestFrance.html"
+ -- OuestFranceParser.parse rawOuestFranceAds `shouldBe` Ads.ouestFrance
+ --
+ -- it "should parse ads from remote page" $ do
+ -- ads <- FetchAd.ouestFrance ["https://www.ouestfrance-immo.com/louer/appartement/rennes-35-35000/"]
+ -- checkAds ads
+ --
+ -- describe "SeLogerParser" $ do
+ --
+ -- it "should parse no results from empty string" $ do
+ -- SeLogerParser.parse "" `shouldBe` []
+ --
+ -- it "should parse ads from page" $ do
+ -- ads <- T.readFile "src/test/resources/seLoger.html"
+ -- SeLogerParser.parse ads `shouldBe` Ads.seLoger
+ --
+ -- it "should parse ads from remote page" $ do
+ -- ads <- FetchAd.seLoger ["https://www.seloger.com/list.htm?tri=initial&idtypebien=2,1&idtt=2,5&naturebien=1,2,4&ci=690123"]
+ -- checkAds ads
checkAds :: [Ad] -> IO ()
checkAds ads = do