aboutsummaryrefslogtreecommitdiff
path: root/test/Tests
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2017-08-22 22:02:30 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2017-08-22 22:56:51 +0200
commit56fb854ad85dafff2016892bd6d2c5d24423bff0 (patch)
tree277c4b145c306bc931466b81b4648df51fea274e /test/Tests
parent915f201c785b776a24d4aafd0fce0bd8151c1ee2 (diff)
downloadpandoc-56fb854ad85dafff2016892bd6d2c5d24423bff0.tar.gz
Text.Pandoc.Lua: respect metatable when getting filters
This change makes it possible to define a catch-all function using lua's metatable lookup functionality. function catch_all(el) … end return { setmetatable({}, {__index = function(_) return catch_all end}) } A further effect of this change is that the map with filter functions now only contains functions corresponding to AST element constructors.
Diffstat (limited to 'test/Tests')
-rw-r--r--test/Tests/Lua.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/Tests/Lua.hs b/test/Tests/Lua.hs
index 895b93775..06f100048 100644
--- a/test/Tests/Lua.hs
+++ b/test/Tests/Lua.hs
@@ -64,6 +64,12 @@ tests = map (localOption (QuickCheckTests 20))
"single-to-double-quoted.lua"
(doc . para . singleQuoted $ str "simple")
(doc . para . doubleQuoted $ str "simple")
+
+ , testCase "Count inlines via metatable catch-all" $
+ assertFilterConversion "filtering with metatable catch-all failed"
+ "metatable-catch-all.lua"
+ (doc . para $ "four words, three spaces")
+ (doc . para $ str "7")
]
assertFilterConversion :: String -> FilePath -> Pandoc -> Pandoc -> Assertion