Skip to content

Commit

Permalink
Added test case for vCard RDF, cleaned up formating
Browse files Browse the repository at this point in the history
Ignore-this: f2d3d8313f9458a85ebfcfbb3879cd9

darcs-hash:20110201210325-1786f-00961a10874c11debd1969720ff90163c89036f8.gz
  • Loading branch information
amccausl committed Feb 1, 2011
1 parent 0c793cc commit 903af92
Showing 1 changed file with 135 additions and 21 deletions.
156 changes: 135 additions & 21 deletions testsuite/tests/Text/RDF/RDF4H/XmlParser_Test.hs
Expand Up @@ -44,11 +44,13 @@ tests = [ testGroup "XmlParser:parseXmlRDF" [ testCase "simpleStriping1" test_si
, testCase "example18" test_parseXmlRDF_example18 , testCase "example18" test_parseXmlRDF_example18
, testCase "example19" test_parseXmlRDF_example19 , testCase "example19" test_parseXmlRDF_example19
, testCase "example20" test_parseXmlRDF_example20 , testCase "example20" test_parseXmlRDF_example20
, testCase "vCardPersonal" test_parseXmlRDF_vCardPersonal
] ]
] ]


mkTextNode = lnode . plainL . s2b mkTextNode = lnode . plainL . s2b
testParse exRDF ex = assertBool ("expected: " ++ show ex ++ "but got: " ++ show parsed) (isIsomorphic (parsed :: TriplesGraph) (ex :: TriplesGraph)) testParse exRDF ex = assertBool ("expected: " ++ show ex ++ "but got: " ++ show parsed)
(isIsomorphic (parsed :: TriplesGraph) (ex :: TriplesGraph))
where parsed = case parseXmlRDF Nothing Nothing (s2b exRDF) of Right result -> result where parsed = case parseXmlRDF Nothing Nothing (s2b exRDF) of Right result -> result


test_simpleStriping1 = testParse test_simpleStriping1 = testParse
Expand Down Expand Up @@ -300,7 +302,9 @@ test_parseXmlRDF_example13 = testParse
( mkRdf [ Triple ((unode . s2b) "http://www.w3.org/TR/rdf-syntax-grammar") ( mkRdf [ Triple ((unode . s2b) "http://www.w3.org/TR/rdf-syntax-grammar")
((unode . s2b) "dc:title") ((unode . s2b) "dc:title")
(mkTextNode "RDF/XML Syntax Specification (Revised)") (mkTextNode "RDF/XML Syntax Specification (Revised)")
, Triple (BNodeGen 1) ((unode . s2b) "ex:fullName") (mkTextNode "Dave Beckett") , Triple (BNodeGen 1)
((unode . s2b) "ex:fullName")
(mkTextNode "Dave Beckett")
, Triple ((unode . s2b) "http://www.w3.org/TR/rdf-syntax-grammar") , Triple ((unode . s2b) "http://www.w3.org/TR/rdf-syntax-grammar")
((unode . s2b) "ex:editor") ((unode . s2b) "ex:editor")
(BNodeGen 1) (BNodeGen 1)
Expand Down Expand Up @@ -380,10 +384,18 @@ test_parseXmlRDF_example17 = testParse
\<rdf:_3 rdf:resource=\"http://example.org/pear\"/>\ \<rdf:_3 rdf:resource=\"http://example.org/pear\"/>\
\</rdf:Seq>\ \</rdf:Seq>\
\</rdf:RDF>" \</rdf:RDF>"
( mkRdf [ Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:type") ((unode . s2b) "rdf:Seq") ( mkRdf [ Triple ((unode . s2b) "http://example.org/favourite-fruit")
, Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:_1") ((unode . s2b) "http://example.org/banana") ((unode . s2b) "rdf:type")
, Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:_2") ((unode . s2b) "http://example.org/apple") ((unode . s2b) "rdf:Seq")
, Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:_3") ((unode . s2b) "http://example.org/pear") , Triple ((unode . s2b) "http://example.org/favourite-fruit")
((unode . s2b) "rdf:_1")
((unode . s2b) "http://example.org/banana")
, Triple ((unode . s2b) "http://example.org/favourite-fruit")
((unode . s2b) "rdf:_2")
((unode . s2b) "http://example.org/apple")
, Triple ((unode . s2b) "http://example.org/favourite-fruit")
((unode . s2b) "rdf:_3")
((unode . s2b) "http://example.org/pear")
] ]
Nothing Nothing
( PrefixMappings (Map.fromList [ (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) ) ( PrefixMappings (Map.fromList [ (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) )
Expand All @@ -397,10 +409,18 @@ test_parseXmlRDF_example18 = testParse
\<rdf:li rdf:resource=\"http://example.org/pear\"/>\ \<rdf:li rdf:resource=\"http://example.org/pear\"/>\
\</rdf:Seq>\ \</rdf:Seq>\
\</rdf:RDF>" \</rdf:RDF>"
( mkRdf [ Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:type") ((unode . s2b) "rdf:Seq") ( mkRdf [ Triple ((unode . s2b) "http://example.org/favourite-fruit")
, Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:_1") ((unode . s2b) "http://example.org/banana") ((unode . s2b) "rdf:type")
, Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:_2") ((unode . s2b) "http://example.org/apple") ((unode . s2b) "rdf:Seq")
, Triple ((unode . s2b) "http://example.org/favourite-fruit") ((unode . s2b) "rdf:_3") ((unode . s2b) "http://example.org/pear") , Triple ((unode . s2b) "http://example.org/favourite-fruit")
((unode . s2b) "rdf:_1")
((unode . s2b) "http://example.org/banana")
, Triple ((unode . s2b) "http://example.org/favourite-fruit")
((unode . s2b) "rdf:_2")
((unode . s2b) "http://example.org/apple")
, Triple ((unode . s2b) "http://example.org/favourite-fruit")
((unode . s2b) "rdf:_3")
((unode . s2b) "http://example.org/pear")
] ]
Nothing Nothing
( PrefixMappings (Map.fromList [ (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) ) ( PrefixMappings (Map.fromList [ (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) )
Expand All @@ -419,12 +439,24 @@ test_parseXmlRDF_example19 = testParse
\</rdf:Description>\ \</rdf:Description>\
\</rdf:RDF>" \</rdf:RDF>"
( mkRdf [ Triple ((unode . s2b) "http://example.org/basket") ((unode . s2b) "ex:hasFruit") (BNodeGen 1) ( mkRdf [ Triple ((unode . s2b) "http://example.org/basket") ((unode . s2b) "ex:hasFruit") (BNodeGen 1)
, Triple (BNodeGen 1) ((unode . s2b) "rdf:first") ((unode . s2b) "http://example.org/banana") , Triple (BNodeGen 1)
, Triple (BNodeGen 1) ((unode . s2b) "rdf:rest") (BNodeGen 2) ((unode . s2b) "rdf:first")
, Triple (BNodeGen 2) ((unode . s2b) "rdf:first") ((unode . s2b) "http://example.org/apple") ((unode . s2b) "http://example.org/banana")
, Triple (BNodeGen 2) ((unode . s2b) "rdf:rest") (BNodeGen 3) , Triple (BNodeGen 1)
, Triple (BNodeGen 3) ((unode . s2b) "rdf:first") ((unode . s2b) "http://example.org/pear") ((unode . s2b) "rdf:rest")
, Triple (BNodeGen 3) ((unode . s2b) "rdf:rest") ((unode . s2b) "rdf:nil") (BNodeGen 2)
, Triple (BNodeGen 2)
((unode . s2b) "rdf:first")
((unode . s2b) "http://example.org/apple")
, Triple (BNodeGen 2)
((unode . s2b) "rdf:rest")
(BNodeGen 3)
, Triple (BNodeGen 3)
((unode . s2b) "rdf:first")
((unode . s2b) "http://example.org/pear")
, Triple (BNodeGen 3)
((unode . s2b) "rdf:rest")
((unode . s2b) "rdf:nil")
] ]
Nothing Nothing
( PrefixMappings (Map.fromList [ (s2b "ex", s2b "http://example.org/stuff/1.0/") ( PrefixMappings (Map.fromList [ (s2b "ex", s2b "http://example.org/stuff/1.0/")
Expand All @@ -440,14 +472,96 @@ test_parseXmlRDF_example20 = testParse
\<ex:prop rdf:ID=\"triple1\">blah</ex:prop>\ \<ex:prop rdf:ID=\"triple1\">blah</ex:prop>\
\</rdf:Description>\ \</rdf:Description>\
\</rdf:RDF>" \</rdf:RDF>"
( mkRdf [ Triple ((unode . s2b) "http://example.org/") ((unode . s2b) "ex:prop") (mkTextNode "blah") ( mkRdf [ Triple ((unode . s2b) "http://example.org/")
, Triple ((unode . s2b) "http://example.org/triples/#triple1") ((unode . s2b) "rdf:type") ((unode . s2b) "rdf:Statement") ((unode . s2b) "ex:prop")
, Triple ((unode . s2b) "http://example.org/triples/#triple1") ((unode . s2b) "rdf:subject") ((unode . s2b) "http://example.org/") (mkTextNode "blah")
, Triple ((unode . s2b) "http://example.org/triples/#triple1") ((unode . s2b) "rdf:predicate") ((unode . s2b) "ex:prop") , Triple ((unode . s2b) "http://example.org/triples/#triple1")
, Triple ((unode . s2b) "http://example.org/triples/#triple1") ((unode . s2b) "rdf:object") (mkTextNode "blah") ((unode . s2b) "rdf:type")
((unode . s2b) "rdf:Statement")
, Triple ((unode . s2b) "http://example.org/triples/#triple1")
((unode . s2b) "rdf:subject")
((unode . s2b) "http://example.org/")
, Triple ((unode . s2b) "http://example.org/triples/#triple1")
((unode . s2b) "rdf:predicate")
((unode . s2b) "ex:prop")
, Triple ((unode . s2b) "http://example.org/triples/#triple1")
((unode . s2b) "rdf:object")
(mkTextNode "blah")
] ]
( Just (BaseUrl (s2b "http://example.org/here/")) ) ( Just (BaseUrl (s2b "http://example.org/here/")) )
( PrefixMappings (Map.fromList [ (s2b "ex", s2b "http://example.org/stuff/1.0/") ( PrefixMappings (Map.fromList [ (s2b "ex", s2b "http://example.org/stuff/1.0/")
, (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) ) , (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) )
) )


test_parseXmlRDF_vCardPersonal = testParse
"<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\
\ xmlns:v=\"http://www.w3.org/2006/vcard/ns#\">\
\<v:VCard rdf:about = \"http://example.com/me/corky\" >\
\<v:fn>Corky Crystal</v:fn>\
\<v:nickname>Corks</v:nickname>\
\<v:tel>\
\<rdf:Description>\
\<rdf:value>+61 7 5555 5555</rdf:value>\
\<rdf:type rdf:resource=\"http://www.w3.org/2006/vcard/ns#Home\"/>\
\<rdf:type rdf:resource=\"http://www.w3.org/2006/vcard/ns#Voice\"/>\
\</rdf:Description>\
\</v:tel>\
\<v:email rdf:resource=\"mailto:corky@example.com\"/>\
\<v:adr>\
\<rdf:Description>\
\<v:street-address>111 Lake Drive</v:street-address>\
\<v:locality>WonderCity</v:locality>\
\<v:postal-code>5555</v:postal-code>\
\<v:country-name>Australia</v:country-name>\
\<rdf:type rdf:resource=\"http://www.w3.org/2006/vcard/ns#Home\"/>\
\</rdf:Description>\
\</v:adr>\
\</v:VCard>\
\</rdf:RDF>"
( mkRdf [ Triple ((unode . s2b) "http://example.com/me/corky")
((unode . s2b) "rdf:type")
((unode . s2b) "v:VCard")
, Triple ((unode . s2b) "http://example.com/me/corky")
((unode . s2b) "v:fn")
(mkTextNode "Corky Crystal")
, Triple ((unode . s2b) "http://example.com/me/corky")
((unode . s2b) "v:nickname")
(mkTextNode "Corks")
, Triple ((unode . s2b) "http://example.com/me/corky")
((unode . s2b) "v:tel")
(BNodeGen 1)
, Triple (BNodeGen 1)
((unode . s2b) "rdf:value")
(mkTextNode "+61 7 5555 5555")
, Triple (BNodeGen 1)
((unode . s2b) "rdf:type")
((unode . s2b) "http://www.w3.org/2006/vcard/ns#Home")
, Triple (BNodeGen 1)
((unode . s2b) "rdf:type")
((unode . s2b) "http://www.w3.org/2006/vcard/ns#Voice")
, Triple ((unode . s2b) "http://example.com/me/corky")
((unode . s2b) "v:email")
((unode . s2b) "mailto:corky@example.com")
, Triple ((unode . s2b) "http://example.com/me/corky")
((unode . s2b) "v:adr")
(BNodeGen 2)
, Triple (BNodeGen 2)
((unode . s2b) "v:street-address")
(mkTextNode "111 Lake Drive")
, Triple (BNodeGen 2)
((unode . s2b) "v:locality")
(mkTextNode "WonderCity")
, Triple (BNodeGen 2)
((unode . s2b) "v:postal-code")
(mkTextNode "5555")
, Triple (BNodeGen 2)
((unode . s2b) "v:country-name")
(mkTextNode "Australia")
, Triple (BNodeGen 2)
((unode . s2b) "rdf:type")
((unode . s2b) "http://www.w3.org/2006/vcard/ns#Home")
]
Nothing
( PrefixMappings (Map.fromList [ (s2b "v", s2b "http://www.w3.org/2006/vcard/ns#")
, (s2b "rdf", s2b "http://www.w3.org/1999/02/22-rdf-syntax-ns#") ]) )
)

0 comments on commit 903af92

Please sign in to comment.