home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 December
/
PCWorld_2000-12_cd.bin
/
Komunikace
/
Comanche
/
xuibuilder
/
TclXML-1.1.1
/
tests
/
CDATA.test
< prev
next >
Wrap
Text File
|
2000-11-02
|
4KB
|
165 lines
# Features covered: CDATA sections
#
# This file contains a collection of tests for the TclXML parser.
# This file tests the parser's performance on CDATA sections.
# Sourcing this file into Tcl runs the tests and generates output
# for errors. No output means no errors were found.
#
# Copyright (c) 1998 Zveno Pty Ltd.
#
# $Id: CDATA.test,v 1.1.1.1 1996/02/22 06:06:15 daniel Exp $
if {[string compare test [info procs test]] == 1} then {source defs}
if {[catch {package require xml 1.6}]} {
catch {puts stderr "Cannot load xml 1.6 package"}
return
}
catch {unset result}
proc pcdata data {
append ::result $data
}
proc Estart {tagName attrList} {
switch -- $tagName {
Test {
}
default {
incr ::element
}
}
}
proc EStop tagname {
}
test cdata-1.1 {Simple CDATA section} {
set ::result {}
set ::element 0
catch {rename xml::cdata-1.1 {}}
set parser [xml::parser cdata-1.1 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<!DOCTYPE Test>
<Test><![CDATA[This is CDATA]]></Test>
}
list $::result $::element
} {{This is CDATA} 0}
test cdata-1.2 {CDATA section with an angle bracket} {
set ::result {}
set ::element 0
catch {rename xml::cdata-1.2 {}}
set parser [xml::parser cdata-1.2 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<!DOCTYPE Test>
<Test><![CDATA[This is a > greater than sign]]></Test>
}
list $::result $::element
} {{This is a > greater than sign} 0}
# Test case contributed by Marshall Rose (mrose@dbc.mtview.ca.us)
test cdata-1.3 {CDATA section with multiple angle brackets} {
set ::result {}
set ::element 0
catch {rename xml::cdata-1.3 {}}
set parser [xml::parser cdata-1.3 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0" ?>
<!DOCTYPE Test>
<Test>
<artwork><![CDATA[
<?xml version="1.0">
<!DOCTYPE rfc SYSTEM "rfcXXXX.dtd">
<rfc>
...
</rfc>
]]></artwork>
</Test>}
list $::result $::element
} {{
<?xml version="1.0">
<!DOCTYPE rfc SYSTEM "rfcXXXX.dtd">
<rfc>
...
</rfc>
} 1}
# Test case contributed by Marshall Rose (mrose@dbc.mtview.ca.us)
test cdata-1.4 {CDATA section with PI and Tcl special characters} {
set ::result {}
set ::element 0
catch {rename xml::cdata-1.4 {}}
set parser [xml::parser cdata-1.4 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<?xml2rfc toc="yes"?>
<!DOCTYPE Test>
<Test>
<t>this is a \ test</t>
<artwork><![CDATA[
<date month="December" year="1998"/>
]]></artwork>
</Test>}
list $::result $::element
} {{
this is a \ test
<date month="December" year="1998"/>
} 2}
test cdata-1.5 {CDATA section with entity reference} {
set ::result {}
set ::element 0
catch {rename xml::cdata-1.5 {}}
set parser [xml::parser cdata-1.5 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<!DOCTYPE Test>
<Test><![CDATA[no entity <references>]]></Test>}
list $::result $::element
} {{no entity <references>} 0}
# Test bug: ']]>' is not valid character data (XML Rec. subsect. 2.4) -
# this should produce a warning.
test cdata-2.0 {CDATA section interpersed with comment} {
set ::result {}
set ::element 0
catch {rename xml::cdata-2.0 {}}
set parser [xml::parser cdata-2.0 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0" ?>
<!DOCTYPE Test>
<Test><![CDATA[<!-- This is not a comment -->]]>
<!-- This is a comment <![CDATA[This is not CDATA]]>-->
<![CDATA[<!-- ]]>-->]]></Test>}
list $::result $::element
} {{<!-- This is not a comment -->
<!-- -->]]>} 0}