packages feed

http-link-header 1.0.2 → 1.0.3

raw patch · 3 files changed

+46/−3 lines, 3 filesdep +http-api-dataPVP ok

version bump matches the API change (PVP)

Dependencies added: http-api-data

API changes (from Hackage documentation)

+ Network.HTTP.Link: instance Web.Internal.HttpApiData.ToHttpApiData Network.HTTP.Link.Types.Link
+ Network.HTTP.Link: instance Web.Internal.HttpApiData.ToHttpApiData [Network.HTTP.Link.Types.Link]

Files

@@ -1,5 +1,5 @@ name:            http-link-header-version:         1.0.2+version:         1.0.3 synopsis:        A parser and writer for the HTTP Link header as specified in RFC 5988 "Web Linking". description:     https://github.com/myfreeweb/http-link-header category:        Web@@ -14,7 +14,7 @@ extra-source-files:     README.md tested-with:-    GHC == 7.10.3+    GHC == 8.0.1  source-repository head     type: git@@ -27,6 +27,7 @@       , bytestring       , errors       , network-uri+      , http-api-data       , attoparsec       , bytestring-conversion     default-language: Haskell2010@@ -48,12 +49,12 @@       , hspec-attoparsec     default-language: Haskell2010     ghc-options: -threaded -fhpc -Wall-    ghc-prof-options: -auto-all -prof     hs-source-dirs: test-suite     main-is: Spec.hs     other-modules:         Network.HTTP.Link.ParserSpec         Network.HTTP.Link.WriterSpec+        Network.HTTP.LinkSpec     type: exitcode-stdio-1.0  benchmark benchmarks
library/Network/HTTP/Link.hs view
@@ -9,6 +9,7 @@ ) where  import           Data.ByteString.Conversion+import           Web.HttpApiData import safe      Network.HTTP.Link.Types import safe      Network.HTTP.Link.Writer import safe      Network.HTTP.Link.Parser@@ -18,3 +19,11 @@  instance ToByteString Link where   builder = builder . writeLink++instance ToHttpApiData [Link] where+  toUrlPiece = toUrlPiece . writeLinkHeader+  toHeader = toByteString'++instance ToHttpApiData Link where+  toUrlPiece = toUrlPiece . writeLink+  toHeader = toByteString'
+ test-suite/Network/HTTP/LinkSpec.hs view
@@ -0,0 +1,33 @@+{-# LANGUAGE OverloadedStrings, UnicodeSyntax, CPP #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Network.HTTP.LinkSpec where++import           Test.Hspec+import           Test.QuickCheck+#if !MIN_VERSION_base(4,8,0)+import           Data.Monoid (mconcat)+#endif+import qualified Data.Text as T+import           Data.Maybe (fromJust)+import           Network.HTTP.Link++instance Arbitrary Link where+  arbitrary = do+    urlScheme ← elements ["http://", "https://", "ftp://", "git+ssh://"]+    urlDomain ← listOf1 $ elements ['a'..'z']+    urlTld ← elements ["com", "net", "org", "me", "is", "technology", "club"]+    urlPath ← listOf $ elements ['a'..'z']+    params ← listOf genParam+    return $ fromJust $ lnk (mconcat [urlScheme, urlDomain, ".", urlTld, "/", urlPath]) params+    where genParam = do+            otherParamKey ← listOf1 $ elements ['a'..'z']+            paramKey ← elements [Rel, Rev, Title, Hreflang, Anchor, Media, ContentType, Other (T.pack otherParamKey)]+            paramValue ← listOf $ elements ['a'..'z']+            return (paramKey, T.pack paramValue)++spec ∷ Spec+spec = do+  describe "writeLinkHeader → parseLinkHeader" $+    it "roundtrips successfully" $+      property $ \x → parseLinkHeader (writeLinkHeader x) == Just x