From 541eb8c462cd1f6f3a1aaaaddf15674b2f953795 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Thu, 6 Feb 2014 21:49:19 +0400 Subject: Separate HTTP/UDP tracker response validation --- tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs') diff --git a/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs b/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs index f3dcec88..ae53c64b 100644 --- a/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs +++ b/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs @@ -11,6 +11,9 @@ import Test.Hspec import Network.BitTorrent.Tracker.MessageSpec hiding (spec) import Network.BitTorrent.Tracker.RPC.UDP +import Network.BitTorrent.Core +import Network.BitTorrent.Tracker.Message as Message + trackerURIs :: [URI] trackerURIs = @@ -18,6 +21,17 @@ trackerURIs = , fromJust $ parseURI "udp://tracker.publicbt.com:80/announce" ] +validateInfo :: AnnounceQuery -> AnnounceInfo -> Expectation +validateInfo _ Message.Failure {..} = error "validateInfo: failure" +validateInfo AnnounceQuery {..} AnnounceInfo {..} = do + respComplete `shouldSatisfy` isJust + respIncomplete `shouldSatisfy` isJust + respMinInterval `shouldSatisfy` isNothing + respWarning `shouldSatisfy` isNothing + peerList `shouldSatisfy` L.all (isNothing . peerId) + where + peerList = getPeerList respPeers + spec :: Spec spec = do forM_ trackerURIs $ \ uri -> -- cgit v1.2.3