HaskellNet-0.2.2: test/AtomTest.hs
module Main(main) where
import Data.Maybe
import Text.Atom
import Text.XML.HaXml.Xml2Haskell
import Test.HUnit
sample1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\
\<feed xmlns=\"http://www.w3.org/2005/Atom\">\n\
\\n\
\ <title>Example Feed</title>\n\
\ <link href=\"http://example.org/\"/>\n\
\ <updated>2003-12-13T18:30:02Z</updated>\n\
\ <author>\n\
\ <name>John Doe</name>\n\
\ </author>\n\
\ <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>\n\
\\n\
\ <entry>\n\
\ <title>Atom-Powered Robots Run Amok</title>\n\
\ <link href=\"http://example.org/2003/12/13/atom03\"/>\n\
\ <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>\n\
\ <updated>2003-12-13T18:30:02Z</updated>\n\
\ <summary>Some text.</summary>\n\
\ </entry>\n\
\ \n\
\</feed>\n"
sample2 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\
\<feed xmlns=\"http://www.w3.org/2005/Atom\">\n\
\ <title type=\"text\">dive into mark</title>\n\
\ <subtitle type=\"html\">\n\
\ A <em>lot</em> of effort\n\
\ went into making this effortless\n\
\ </subtitle>\n\
\ <updated>2005-07-31T12:29:29Z</updated>\n\
\ <id>tag:example.org,2003:3</id>\n\
\ <link rel=\"alternate\" type=\"text/html\"\n\
\ hreflang=\"en\" href=\"http://example.org/\"/>\n\
\ <link rel=\"self\" type=\"application/atom+xml\"\n\
\ href=\"http://example.org/feed.atom\"/>\n\
\ <rights>Copyright (c) 2003, Mark Pilgrim</rights>\n\
\ <generator uri=\"http://www.example.com/\" version=\"1.0\">\n\
\ Example Toolkit\n\
\ </generator>\n\
\ <entry>\n\
\ <title>Atom draft-07 snapshot</title>\n\
\ <link rel=\"alternate\" type=\"text/html\"\n\
\ href=\"http://example.org/2005/04/02/atom\"/>\n\
\ <link rel=\"enclosure\" type=\"audio/mpeg\" length=\"1337\"\n\
\ href=\"http://example.org/audio/ph34r_my_podcast.mp3\"/>\n\
\ <id>tag:example.org,2003:3.2397</id>\n\
\ <updated>2005-07-31T12:29:29Z</updated>\n\
\ <published>2003-12-13T08:29:29-04:00</published>\n\
\ <author>\n\
\ <name>Mark Pilgrim</name>\n\
\ <uri>http://example.org/</uri>\n\
\ <email>f8dy@example.com</email>\n\
\ </author>\n\
\ <contributor>\n\
\ <name>Sam Ruby</name>\n\
\ </contributor>\n\
\ <contributor>\n\
\ <name>Joe Gregorio</name>\n\
\ </contributor>\n\
\ <content type=\"xhtml\" xml:lang=\"en\"\n\
\ xml:base=\"http://diveintomark.org/\">\n\
\ <div xmlns=\"http://www.w3.org/1999/xhtml\">\n\
\ <p><i>[Update: The Atom draft is finished.]</i></p>\n\
\ </div>\n\
\ </content>\n\
\ </entry>\n\
\</feed>\n"
feed1, feed2 :: Feed
feed1 = fromJust $ readXml sample1
feed2 = fromJust $ readXml sample2
main = runTestTT $ test [ showXml feed1 ~=? (showXml (readXml (showXml feed1) :: Maybe Feed))
, showXml feed2 ~=? (showXml (readXml (showXml feed2) :: Maybe Feed))
]