From 0a839cbdc982217819c08c918cca75f6f56eabbb Mon Sep 17 00:00:00 2001 From: Alexander Date: Tue, 22 Aug 2017 07:08:44 +0300 Subject: Muse reader: add definition list support (#3860) --- test/Tests/Readers/Muse.hs | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'test/Tests/Readers/Muse.hs') diff --git a/test/Tests/Readers/Muse.hs b/test/Tests/Readers/Muse.hs index c5c973f00..5a1a635c5 100644 --- a/test/Tests/Readers/Muse.hs +++ b/test/Tests/Readers/Muse.hs @@ -421,6 +421,58 @@ tests = ] =?> bulletList [ para "Foo" <> para "bar" ] <> bulletList [ para "Baz" ] ] + -- Test that definition list requires a leading space. + -- Emacs Muse does not require a space, we follow Amusewiki here. + , "Not a definition list" =: + T.unlines + [ "First :: second" + , "Foo :: bar" + ] =?> + para "First :: second Foo :: bar" + , "Definition list" =: + T.unlines + [ " First :: second" + , " Foo :: bar" + ] =?> + definitionList [ ("First", [ para "second" ]) + , ("Foo", [ para "bar" ]) + ] + , "Definition list term cannot include newline" =: + T.unlines + [ " Foo" -- "Foo" is not a part of the definition list term + , " Bar :: baz" + ] =?> + para "Foo" <> + definitionList [ ("Bar", [ para "baz" ]) ] + , "Multi-line definition lists" =: + T.unlines + [ " First term :: Definition of first term" + , "and its continuation." + , " Second term :: Definition of second term." + ] =?> + definitionList [ ("First term", [ para "Definition of first term and its continuation." ]) + , ("Second term", [ para "Definition of second term." ]) + ] + -- Emacs Muse creates two separate lists when indentation of items is different. + -- We follow Amusewiki and allow different indentation within one list. + , "Changing indentation" =: + T.unlines + [ " First term :: Definition of first term" + , "and its continuation." + , " Second term :: Definition of second term." + ] =?> + definitionList [ ("First term", [ para "Definition of first term and its continuation." ]) + , ("Second term", [ para "Definition of second term." ]) + ] + , "Two blank lines separate definition lists" =: + T.unlines + [ " First :: list" + , "" + , "" + , " Second :: list" + ] =?> + definitionList [ ("First", [ para "list" ]) ] <> + definitionList [ ("Second", [ para "list" ]) ] -- Headers in first column of list continuation are not allowed , "No headers in list continuation" =: T.unlines -- cgit v1.2.3