! Copyright (C) 2005, 2009 Daniel Ehrenberg
! See http://factorcode.org/license.txt for BSD license.
USING: xml.data xml.writer tools.test fry xml kernel multiline
xml.writer.private io.streams.string xml.utilities sequences ;
IN: xml.writer.tests
\ write-xml must-infer
\ xml>string must-infer
\ pprint-xml must-infer
\ pprint-xml-but must-infer
[ "foo" ] [ T{ name { main "foo" } } name>string ] unit-test
[ "foo" ] [ T{ name { space "" } { main "foo" } } name>string ] unit-test
[ "ns:foo" ] [ T{ name { space "ns" } { main "foo" } } name>string ] unit-test
: reprints-as ( to from -- )
[ '[ _ ] ] [ '[ _ string>xml xml>string ] ] bi* unit-test ;
: pprint-reprints-as ( to from -- )
[ '[ _ ] ] [ '[ _ string>xml pprint-xml>string ] ] bi* unit-test ;
: reprints-same ( string -- ) dup reprints-as ;
"" reprints-same
{"
]>
bar "}
{"
]>
&foo; "} reprints-as
{"
]>
bar
"}
{"
]>
&foo;"} pprint-reprints-as
[ t ] [ "" dup string>xml-chunk xml-chunk>string = ] unit-test
[ V{ "hello" } ] [ "hello" string>xml-chunk ] unit-test
[ "" ]
[ "" string>xml xml>string ] unit-test
[ "bar baz" ]
[ "bar" string>xml [ " baz" append ] map xml>string ] unit-test
[ "\n\n bar\n" ]
[ " bar " string>xml pprint-xml>string ] unit-test