X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=test%2FCrypto%2FMacaroon%2FVerifier%2FTests.hs;fp=test%2FCrypto%2FMacaroon%2FVerifier%2FTests.hs;h=d69ad8dee100d7d3312fa0fcbcdf3e0ebbc027e2;hb=cfeb65a103cb58048328b2ca3ce74351017f70d1;hp=101fa264dab11e1310c7982c7eb957e93b92acdf;hpb=a1b6481db1e02013f668851096b084ff6088f682;p=github%2Ffretlink%2Fhmacaroons.git diff --git a/test/Crypto/Macaroon/Verifier/Tests.hs b/test/Crypto/Macaroon/Verifier/Tests.hs index 101fa26..d69ad8d 100644 --- a/test/Crypto/Macaroon/Verifier/Tests.hs +++ b/test/Crypto/Macaroon/Verifier/Tests.hs @@ -12,21 +12,20 @@ This test suite is based on the pymacaroons test suite: module Crypto.Macaroon.Verifier.Tests where -import Data.List -import qualified Data.ByteString.Char8 as B8 -import Test.Tasty --- import Test.Tasty.HUnit -import Test.Tasty.QuickCheck +import qualified Data.ByteString.Char8 as B8 +import Data.Either +import Data.List +import Test.Tasty +import Test.Tasty.HUnit +import Test.Tasty.QuickCheck import Crypto.Macaroon import Crypto.Macaroon.Verifier -import Crypto.Macaroon.Instances +import Crypto.Macaroon.Instances tests :: TestTree -tests = testGroup "Crypto.Macaroon.Verifier" [ sigs - , firstParty - ] +tests = testGroup "Crypto.Macaroon.Verifier" [ ] {- - Test fixtures @@ -45,52 +44,8 @@ m2 = addFirstPartyCaveat "test = caveat" m m3 :: Macaroon m3 = addFirstPartyCaveat "value = 42" m2 -exTC = verifyExact "test" "caveat" (many' letter_ascii) "test = caveat" -exTZ = verifyExact "test" "bleh" (many' letter_ascii) "test = bleh" -exV42 = verifyExact "value" 42 decimal "value = 42" -exV43 = verifyExact "value" 43 decimal "value = 43" - -funTCPre = verifyFun "test" ("cav" `isPrefixOf`) (many' letter_ascii) "test startsWith cav" -funTV43lte = verifyFun "value" (<= 43) decimal "value <= 43" - -allvs = [exTC, exTZ, exV42, exV43, funTCPre, funTV43lte] - {- - Tests -} -sigs = testProperty "Signatures" $ \sm -> verifySig (secret sm) (macaroon sm) == Ok -firstParty = testGroup "First party caveats" [ - testGroup "Pure verifiers" [ - testProperty "Zero caveat" $ - forAll (sublistOf allvs) (\vs -> Ok == verifyCavs vs m) - , testProperty "One caveat" $ - forAll (sublistOf allvs) (\vs -> disjoin [ - Ok == verifyCavs vs m2 .&&. any (`elem` vs) [exTC,funTCPre] .&&. (exTZ `notElem` vs) - , Failed === verifyCavs vs m2 - ]) - , testProperty "Two Exact" $ - forAll (sublistOf allvs) (\vs -> disjoin [ - Ok == verifyCavs vs m3 .&&. - any (`elem` vs) [exTC,funTCPre] .&&. (exTZ `notElem` vs) .&&. - any (`elem` vs) [exV42,funTV43lte] .&&. (exV43 `notElem` vs) - , Failed === verifyCavs vs m3 - ]) - ] - , testGroup "Pure verifiers with sig" [ - testProperty "Zero caveat" $ - forAll (sublistOf allvs) (\vs -> Ok == verifyMacaroon sec vs m) - , testProperty "One caveat" $ - forAll (sublistOf allvs) (\vs -> disjoin [ - Ok == verifyMacaroon sec vs m2 .&&. any (`elem` vs) [exTC,funTCPre] .&&. (exTZ `notElem` vs) - , Failed === verifyMacaroon sec vs m2 - ]) - , testProperty "Two Exact" $ - forAll (sublistOf allvs) (\vs -> disjoin [ - Ok == verifyMacaroon sec vs m3 .&&. - any (`elem` vs) [exTC,funTCPre] .&&. (exTZ `notElem` vs) .&&. - any (`elem` vs) [exV42,funTV43lte] .&&. (exV43 `notElem` vs) - , Failed === verifyMacaroon sec vs m3 - ]) - ] - ] +-- TODO