{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} module Drawer where import Data.OrgMode.Parse import Test.Tasty import Test.Tasty.HUnit import Util parserDrawerTests :: TestTree parserDrawerTests = testGroup "Attoparsec PropertyDrawer" [ testCase "Parse a :PROPERTY: drawer" testPropertyDrawer , testCase "Parse empty :PROPERTY: drawer" (testParser parseProperties ":PROPERTIES:\n:END:\n") , testCase "Parse a :LOGBOOK: drawer" testLogbookDrawer , testCase "Parse a user-defined drawer" testGenericDrawer ] testPropertyDrawer :: Assertion testPropertyDrawer = testParser parseProperties ":PROPERTIES:\n :URL: http://someurl.com?query\n :notes: you should be taking them\n:END:\n" testLogbookDrawer :: Assertion testLogbookDrawer = testParser parseLogbook ":LOGBOOK:\n CLOCK: [2015-10-05 Mon 17:13] \n CLOCK: [2015-10-05 Mon 17:13]--[2015-10-05 Mon 17:14] => 0:01\n:END:\n" testGenericDrawer :: Assertion testGenericDrawer = testParser parseDrawer ":MYDRAWER:\n whatever I want can go in here, technically... \n:END:\n"