1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
# Features covered: PCDATA
#
# This file tests the parser's performance on PCDATA.
# Sourcing this file into Tcl runs the tests and generates output
# for errors. No output means no errors were found.
#
# Copyright (c) 1998-2000 Zveno Pty Ltd.
#
# $Id$
source [file join [file dir [info script]] loadtdom.tcl]
catch {unset result}
proc pcdata data {
append ::result $data
incr ::pcdataCounter
}
proc Estart {tagName attrList} {
switch -- $tagName {
Test {
}
default {
incr ::element
}
}
}
proc EStop tagname {
}
test pcdata-1.1 {Simple PCDATA} {
set ::result {}
set ::element 0
set ::pcdataCounter 0
catch {rename xml::pcdata-1.1 {}}
set parser [xml::parser xml::pcdata-1.1 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<!DOCTYPE Test>
<Test>This is PCDATA</Test>
}
list $::result $::element
} {{This is PCDATA} 0}
test pcdata-1.2 {PCDATA section with Tcl specials} {
set ::result {}
set ::element 0
set ::pcdataCounter 0
catch {rename xml::pcdata-1.2 {}}
set parser [xml::parser xml::pcdata-1.2 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<!DOCTYPE Test>
<Test>Dollar $ backslash \ square brackets [ ] braces { }</Test>
}
list $::result $::element
} {{Dollar $ backslash \ square brackets [ ] braces { }} 0}
# Requested by Marshall Rose, 20/3/1999
test pcdata-1.3 {PCDATA with no entity expansion} {
set ::result {}
set ::element 0
set ::pcdataCounter 0
catch {rename xml::pcdata-1.3 {}}
set parser [xml::parser xml::pcdata-1.3 \
-elementstartcommand Estart \
-elementendcommand EStop \
-characterdatacommand pcdata]
$parser parse {<?xml version="1.0"?>
<!DOCTYPE Test>
<Test>This is <PCDATA></Test>
}
list $::result $::pcdataCounter
} {{This is <PCDATA>} 1}
test pcdata-1.4 {keep all PCDATA for not white space only PCDATA content} {
set ::result {}
catch {rename xml::pcdata-1.4 {}}
set parser [xml::parser xml::pcdata-1.4 \
-characterdatacommand pcdata \
-ignorewhitecdata 1]
$parser parse {<root>
some content
</root>}
set ::result
} {
some content
}
foreach parser [info commands pcdata-*] {
$parser free
}
# cleanup
::tcltest::cleanupTests
return
|