]> git.rkrishnan.org Git - functorrent.git/blobdiff - test/MetainfoSpec.hs
multi-file torrent metainfo tests
[functorrent.git] / test / MetainfoSpec.hs
index 93bf9ab3bf628d18c8bdf78acb9f6e19d33dc992..060bf9fbd888c071e53b4351cb11b8dbedc84b71 100644 (file)
@@ -23,7 +23,7 @@ module MetainfoSpec where
 
 import Test.Hspec
 
-import FuncTorrent.Metainfo (Info(..), Metainfo(..), DynamicInfo(..), torrentToMetainfo)
+import FuncTorrent.Metainfo (Info(..), Metainfo(..), DynamicInfo(..), FileInfo(..), torrentToMetainfo)
 import qualified Data.ByteString.Lazy.Char8 as BC (readFile, toStrict)
 import qualified Data.ByteString as B
 
@@ -36,11 +36,25 @@ spec =
       length (announceList m) `shouldBe` 1
       pieceLength (info m) `shouldBe` 524288
       pieces (info m) `shouldSatisfy` (\p -> B.length p `mod` 20 == 0)
-      let (SingleFileInfo name' _ _) = dyninfo $ info m
+      let (SingleFileInfo file') = dyninfo $ info m
+          (FileInfo _ _ name') = file'
+      name' `shouldNotBe` ""
+    it "torrent-file-2" $ do
+      c <- BC.readFile "data/test2.torrent"
+      let (Right m) = torrentToMetainfo (BC.toStrict c)
+          (SingleFileInfo file') = dyninfo $ info m
+          (FileInfo _ _ name') = file'
+      name' `shouldNotBe` ""
+    it "torrent-file-3" $ do
+      c <- BC.readFile "data/test3.torrent"
+      let (Right m) = torrentToMetainfo (BC.toStrict c)
+          (SingleFileInfo file') = dyninfo $ info m
+          (FileInfo _ _ name') = file'
       name' `shouldNotBe` ""
     it "torrent-file-4" $ do
       c <- BC.readFile "data/test4.torrent"
       let (Right m) = torrentToMetainfo (BC.toStrict c)
       length (announceList m) `shouldBe` 3
-      let (MultiFileInfo _ files') = dyninfo $ info m
-      length files' `shouldNotBe` 1
+      let (MultiFileInfo dname' files') = dyninfo $ info m
+      length files' `shouldBe` 9 -- 9 files in the torrent
+      dname' `shouldBe` "NASA_NTRS_Archive_19740027163"