]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - tests/WikiParserTest.hs
Wrote many...
[Rakka.git] / tests / WikiParserTest.hs
index d8772a192ebc2917f8fdfe100562b6eb2dfc65ca..56942c6ce1fb4d27969ca0cab580144c9c848bd8 100644 (file)
@@ -3,6 +3,8 @@ module WikiParserTest
     )
     where
 
+import           Data.Maybe
+import           Network.URI
 import           Rakka.Wiki
 import           Rakka.Wiki.Parser
 import           Test.HUnit
@@ -117,6 +119,14 @@ testData = [ (parseWiki ""
               ~?=
               (Right []))
 
+           , (parseWiki "[[[Page]]]"
+              ~?=
+              (Right [ Paragraph [ ObjectLink "Page" Nothing ] ]))
+
+           , (parseWiki "[[[Page|foo]]]"
+              ~?=
+              (Right [ Paragraph [ ObjectLink "Page" (Just "foo") ] ]))
+
            , (parseWiki "[[Page]]"
               ~?= 
               (Right [ Paragraph [ PageLink (Just "Page") Nothing Nothing ]
@@ -196,44 +206,44 @@ testData = [ (parseWiki ""
 
            , (parseWiki "* a"
               ~?=
-              (Right [ List (ListElement Bullet [[Right (Text "a")]]) ]))
+              (Right [ List Bullet [[Inline (Text "a")]] ]))
 
            , (parseWiki "* a*"
               ~?=
-              (Right [ List (ListElement Bullet [[Right (Text "a*")]]) ]))
+              (Right [ List Bullet [[Inline (Text "a*")]] ]))
 
            , (parseWiki "* a\n* b\n"
               ~?=
-              (Right [ List (ListElement Bullet [ [Right (Text "a")]
-                                                , [Right (Text "b")]
-                                                ])
+              (Right [ List Bullet [ [Inline (Text "a")]
+                                   , [Inline (Text "b")]
+                                   ]
                      ]))
 
            , (parseWiki "*a\n*#b\n*#c\n"
               ~?=
-              (Right [ List (ListElement Bullet [ [ Right (Text "a")
-                                                  , Left (ListElement Numbered [ [Right (Text "b")]
-                                                                               , [Right (Text "c")]
-                                                                               ])
-                                                  ]
-                                                ])
+              (Right [ List Bullet [ [ Inline (Text "a")
+                                     , Block  (List Numbered [ [Inline (Text "b")]
+                                                             , [Inline (Text "c")]
+                                                             ])
+                                     ]
+                                   ]
                      ]))
 
            , (parseWiki "*a\n#b"
               ~?=
-              (Right [ List (ListElement Bullet   [ [Right (Text "a")] ])
-                     , List (ListElement Numbered [ [Right (Text "b")] ])
+              (Right [ List Bullet   [ [Inline (Text "a")] ]
+                     , List Numbered [ [Inline (Text "b")] ]
                      ]))
 
            , (parseWiki "*a<!-- comment -->"
               ~?=
-              (Right [ List (ListElement Bullet [ [Right (Text "a")] ]) ]))
+              (Right [ List Bullet [ [Inline (Text "a")] ] ]))
 
            , (parseWiki "*a<!-- comment -->\n*b"
               ~?=
-              (Right [ List (ListElement Bullet [ [Right (Text "a")]
-                                                , [Right (Text "b")]
-                                                ])
+              (Right [ List Bullet [ [Inline (Text "a")]
+                                   , [Inline (Text "b")]
+                                   ]
                      ]))
 
            , (parseWiki "foo:bar"
@@ -320,4 +330,36 @@ testData = [ (parseWiki ""
                                               , Text "\n"
                                               , Text "bar"
                                               ]) ] ]))
+
+           , (parseWiki "<div>foo</div>"
+              ~?=
+              (Right [ BlockCmd (BlockCommand "div" []
+                                 [ Paragraph [Text "foo"] ]) ]))
+
+           , (parseWiki "<div>\nbar\n</div>"
+              ~?=
+              (Right [ BlockCmd (BlockCommand "div" []
+                                 [ Paragraph [Text "bar"] ]) ]))
+
+           , (parseWiki "<div><!-- comment --></div>"
+              ~?=
+              (Right [ BlockCmd (BlockCommand "div" [] []) ]))
+
+           , (parseWiki "foo<div id=\"bar\"/>"
+              ~?=
+              (Right [ Paragraph [Text "foo"]
+                     , BlockCmd (BlockCommand "div" [("id", "bar")] [])
+                     ]))
+
+           , (parseWiki "[http://example.org/]"
+              ~?=
+              (Right [ Paragraph [ExternalLink (fromJust $ parseURI "http://example.org/") Nothing] ]))
+
+           , (parseWiki "[http://example.org/ example.org]"
+              ~?=
+              (Right [ Paragraph [ExternalLink
+                                  (fromJust $ parseURI "http://example.org/")
+                                  (Just "example.org")
+                                 ]
+                     ]))
            ]