packages feed

xmonad-dbus-0.1.0.0: test/Spec.hs

import XMonad.DBus
import Control.Concurrent
import Control.Applicative ((<|>))
import System.Exit

main :: IO ()
main = do
        m <- newEmptyMVar
        c1 <- connect
        c2 <- connect
        subscribe c2 (\s -> putMVar m (head $ bodyToString s))
        requestAccess c1
        send c1 "Test String!"
        threadDelay 1000000
        r <- tryTakeMVar m <|> return (Just "")
        case r of
            Just "Test String!" -> putStrLn "Test passed"
            _ -> do
                    putStrLn "Test didn't passed"
                    exitWith $ ExitFailure 1