iri 0.3.4 → 0.3.4.1
raw patch · 3 files changed
+112/−102 lines, 3 filesdep ~base-preludedep ~tastydep ~tasty-hunit
Dependency ranges changed: base-prelude, tasty, tasty-hunit, tasty-quickcheck, text-builder
Files
- iri.cabal +9/−9
- test/Main.hs +103/−0
- tests/Main.hs +0/−93
iri.cabal view
@@ -1,7 +1,7 @@ name: iri version:- 0.3.4+ 0.3.4.1 category: URI, URL, IRI, Network synopsis:@@ -89,7 +89,7 @@ ip >=1.1 && <2, hashable >=1.2 && <2, text ==1.*,- text-builder >=0.5.1 && <0.6,+ text-builder >=0.6.4 && <0.7, bytestring >=0.10 && <0.11, vector >=0.10 && <0.13, vector-instances >=3.4 && <4,@@ -98,14 +98,14 @@ contravariant >=1.4 && <2, semigroups >=0.18 && <0.20, bug ==1.*,- base-prelude >=1 && <2,+ base-prelude >=1.3 && <2, base >=4.7 && <5 -test-suite tests+test-suite test type: exitcode-stdio-1.0 hs-source-dirs:- tests+ test main-is: Main.hs default-extensions:@@ -116,10 +116,10 @@ -- iri, -- testing:- tasty >=0.12 && <0.13,- tasty-quickcheck >=0.9 && <0.10,- tasty-hunit >=0.9 && <0.10,- quickcheck-instances >=0.3.11 && <0.4, QuickCheck >=2.8.1 && <3,+ quickcheck-instances >=0.3.11 && <0.4,+ tasty >=0.12 && <2,+ tasty-hunit >=0.9 && <0.11,+ tasty-quickcheck >=0.9 && <0.11, -- rerebase >=1.1 && <2
+ test/Main.hs view
@@ -0,0 +1,103 @@+module Main where++import Prelude+import Test.QuickCheck.Instances+import Test.Tasty+import Test.Tasty.Runners+import Test.Tasty.HUnit+import Test.Tasty.QuickCheck+import Iri.QuasiQuoter+import qualified Iri.Data as A+import qualified Iri.Parsing.ByteString as D+import qualified Iri.Parsing.Text as F+import qualified Iri.Rendering.Text as C+import qualified Iri.Rendering.ByteString as E+++main =+ defaultMain $+ testGroup "All tests" $+ [+ testCase "No path" $+ assertEqual ""+ (Right "https://ru.wikipedia.org?query")+ (fmap C.iri+ (D.uri "https://ru.wikipedia.org?query"))+ ,+ testCase "Cyrillic path" $ do+ assertEqual ""+ (Right "https://ru.wikipedia.org/wiki/Баренцбург")+ (fmap C.iri+ (D.uri "https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3"))+ ,+ testCase "Complex query" $ do+ assertEqual ""+ (Right "https://news.yandex.ru/yandsearch?cl4url=iz.ru/669426/2017-11-10/smi-inoagenty-obiazhut-soobshchat-ob-etom-v-sotcsetiakh&lang=ru&from=main_portal&stid=5bdMOjSopWu34pdT-391&lr=213&msid=1510328052.50316.22874.7658&mlid=1510327228.glob_225.904af5bb")+ (fmap C.iri+ (D.uri "https://news.yandex.ru/yandsearch?cl4url=iz.ru/669426/2017-11-10/smi-inoagenty-obiazhut-soobshchat-ob-etom-v-sotcsetiakh&lang=ru&from=main_portal&stid=5bdMOjSopWu34pdT-391&lr=213&msid=1510328052.50316.22874.7658&mlid=1510327228.glob_225.904af5bb"))+ ,+ testCase "Rendering" $+ let+ inputs =+ [+ "https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3"+ ,+ "https://news.yandex.ru/yandsearch?cl4url=iz.ru/669426/2017-11-10/smi-inoagenty-obiazhut-soobshchat-ob-etom-v-sotcsetiakh&lang=ru&from=main_portal&stid=5bdMOjSopWu34pdT-391&lr=213&msid=1510328052.50316.22874.7658&mlid=1510327228.glob_225.904af5bb"+ ]+ in+ forM_ inputs $ \ input ->+ let+ Right iri = D.uri input+ in assertEqual "" input (E.uri iri)+ ,+ testCase "about:blank" $ assertEqual "" "about:blank" (E.uri [uri|about:blank|])+ ,+ testCase "Empty hierarchy" $ assertEqual "" "about:" (E.uri [uri|about:|])+ ,+ testCase "HTTP URI Text Rendering" $+ assertEqual ""+ "https://ru.wikipedia.org/wiki/Баренцбург"+ (C.httpIri [httpUri|https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3|])+ ,+ testCase "HTTP URI Show" $+ assertEqual ""+ "https://ru.wikipedia.org/wiki/Баренцбург"+ (show [httpUri|https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3|])+ ,+ parsing+ ]++parsing =+ testGroup "Parsing" $+ [+ testCase "Messed up URIs" $+ let+ testUri uri =+ assertEqual "Original and parsed URIs are not equal" (Right uri) (fmap E.uri (D.uri uri))+ in traverse_ testUri+ [+ "http://m.ru.hellomagazine.com/krasota-i-zdorove/ukhod-za-kozhey-i-volosami/11373-5-prichesok-kotorye-sdelayut-vas-molozhe.html?utm_medium=teaser&utm_campaign=gnezdo1&utm_term=15376&utm_content=[TID",+ "https://m.tsargrad.tv/news/komediju_113156?%90\"%20"+ ]+ ,+ testCase "User Info" $+ assertEqual "" (Right "http://user:password@localhost:993") (fmap E.uri (D.uri "http://user:password@localhost:993"))+ ,+ testCase "URI, IRI" $+ assertEqual ""+ (D.uri "https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3")+ (F.iri "https://ru.wikipedia.org/wiki/Баренцбург")+ ,+ testGroup "Mess" $+ [+ testCase "1" $+ assertEqual ""+ (Right "https://www.kupivip.ru/catalog/muzhchinam/odezhda?srcid=goo-tm-open&lpu=|source:google|medium:cpc|adposition:1t1|creative:195388077752|term:%2B%D0%B2%D0%B8%D0%BF%20%2B%D0%BA%D1%83%D0%BF%D0%B8|campaignid:801742449|campaign:goo_tm_mob_s_male|other:m|ad:1|&gclid=CjwKEAjwgb3OBRDNi_2TwZ6u7D4SJADsmW8QKiRxDZZ0hRAnyspAcVW582c7zzQSA7CC0FavPR63dBoCrKPw_wcB")+ (fmap E.uri (D.uri "https://www.kupivip.ru/catalog/muzhchinam/odezhda?srcid=goo-tm-open&lpu=|source:google|medium:cpc|adposition:1t1|creative:195388077752|term:%2B%D0%B2%D0%B8%D0%BF%20%2B%D0%BA%D1%83%D0%BF%D0%B8|campaignid:801742449|campaign:goo_tm_mob_s_male|other:m|ad:1|&gclid=CjwKEAjwgb3OBRDNi_2TwZ6u7D4SJADsmW8QKiRxDZZ0hRAnyspAcVW582c7zzQSA7CC0FavPR63dBoCrKPw_wcB"))+ ,+ testCase "2" $+ assertEqual ""+ (Right "https://www.pleer.ru/search_%E4%EB%FF+%E1%E5%EB%FC%FF+%F1%F3%F8%E8%EB%EA%E0.html")+ (fmap show (D.uri "https://www.pleer.ru/search_%E4%EB%FF+%E1%E5%EB%FC%FF+%F1%F3%F8%E8%EB%EA%E0.html"))+ ]+ ]
− tests/Main.hs
@@ -1,93 +0,0 @@-module Main where--import Prelude-import Test.QuickCheck.Instances-import Test.Tasty-import Test.Tasty.Runners-import Test.Tasty.HUnit-import Test.Tasty.QuickCheck-import Iri.QuasiQuoter-import qualified Iri.Data as A-import qualified Iri.Parsing.ByteString as D-import qualified Iri.Parsing.Text as F-import qualified Iri.Rendering.Text as C-import qualified Iri.Rendering.ByteString as E---main =- defaultMain $- testGroup "All tests" $- [- testCase "No path" $- assertEqual ""- (Right "https://ru.wikipedia.org?query")- (fmap C.iri- (D.uri "https://ru.wikipedia.org?query"))- ,- testCase "Cyrillic path" $ do- assertEqual ""- (Right "https://ru.wikipedia.org/wiki/Баренцбург")- (fmap C.iri- (D.uri "https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3"))- ,- testCase "Complex query" $ do- assertEqual ""- (Right "https://news.yandex.ru/yandsearch?cl4url=iz.ru/669426/2017-11-10/smi-inoagenty-obiazhut-soobshchat-ob-etom-v-sotcsetiakh&lang=ru&from=main_portal&stid=5bdMOjSopWu34pdT-391&lr=213&msid=1510328052.50316.22874.7658&mlid=1510327228.glob_225.904af5bb")- (fmap C.iri- (D.uri "https://news.yandex.ru/yandsearch?cl4url=iz.ru/669426/2017-11-10/smi-inoagenty-obiazhut-soobshchat-ob-etom-v-sotcsetiakh&lang=ru&from=main_portal&stid=5bdMOjSopWu34pdT-391&lr=213&msid=1510328052.50316.22874.7658&mlid=1510327228.glob_225.904af5bb"))- ,- testCase "Rendering" $- let- inputs =- [- "https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3"- ,- "https://news.yandex.ru/yandsearch?cl4url=iz.ru/669426/2017-11-10/smi-inoagenty-obiazhut-soobshchat-ob-etom-v-sotcsetiakh&lang=ru&from=main_portal&stid=5bdMOjSopWu34pdT-391&lr=213&msid=1510328052.50316.22874.7658&mlid=1510327228.glob_225.904af5bb"- ]- in- forM_ inputs $ \ input ->- let- Right iri = D.uri input- in assertEqual "" input (E.uri iri)- ,- testCase "about:blank" $ assertEqual "" "about:blank" (E.uri [uri|about:blank|])- ,- testCase "Empty hierarchy" $ assertEqual "" "about:" (E.uri [uri|about:|])- ,- testCase "HTTP URI Text Rendering" $- assertEqual ""- "https://ru.wikipedia.org/wiki/Баренцбург"- (C.httpIri [httpUri|https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3|])- ,- testCase "HTTP URI Show" $- assertEqual ""- "https://ru.wikipedia.org/wiki/Баренцбург"- (show [httpUri|https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3|])- ,- parsing- ]--parsing =- testGroup "Parsing" $- [- testCase "User Info" $- assertEqual "" (Right "http://user:password@localhost:993") (fmap E.uri (D.uri "http://user:password@localhost:993"))- ,- testCase "URI, IRI" $- assertEqual ""- (D.uri "https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D1%80%D0%B5%D0%BD%D1%86%D0%B1%D1%83%D1%80%D0%B3")- (F.iri "https://ru.wikipedia.org/wiki/Баренцбург")- ,- testGroup "Mess" $- [- testCase "1" $- assertEqual ""- (Right "https://www.kupivip.ru/catalog/muzhchinam/odezhda?srcid=goo-tm-open&lpu=|source:google|medium:cpc|adposition:1t1|creative:195388077752|term:%2B%D0%B2%D0%B8%D0%BF%20%2B%D0%BA%D1%83%D0%BF%D0%B8|campaignid:801742449|campaign:goo_tm_mob_s_male|other:m|ad:1|&gclid=CjwKEAjwgb3OBRDNi_2TwZ6u7D4SJADsmW8QKiRxDZZ0hRAnyspAcVW582c7zzQSA7CC0FavPR63dBoCrKPw_wcB")- (fmap E.uri (D.uri "https://www.kupivip.ru/catalog/muzhchinam/odezhda?srcid=goo-tm-open&lpu=|source:google|medium:cpc|adposition:1t1|creative:195388077752|term:%2B%D0%B2%D0%B8%D0%BF%20%2B%D0%BA%D1%83%D0%BF%D0%B8|campaignid:801742449|campaign:goo_tm_mob_s_male|other:m|ad:1|&gclid=CjwKEAjwgb3OBRDNi_2TwZ6u7D4SJADsmW8QKiRxDZZ0hRAnyspAcVW582c7zzQSA7CC0FavPR63dBoCrKPw_wcB"))- ,- testCase "2" $- assertEqual ""- (Right "https://www.pleer.ru/search_%E4%EB%FF+%E1%E5%EB%FC%FF+%F1%F3%F8%E8%EB%EA%E0.html")- (fmap show (D.uri "https://www.pleer.ru/search_%E4%EB%FF+%E1%E5%EB%FC%FF+%F1%F3%F8%E8%EB%EA%E0.html"))- ]- ]