File: pcdata.test

package info (click to toggle)
tdom 0.9.1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,928 kB
  • sloc: ansic: 46,086; xml: 19,231; tcl: 3,405; sh: 630; makefile: 84; cpp: 30
file content (104 lines) | stat: -rw-r--r-- 2,435 bytes parent folder | download | duplicates (3)
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 &lt;PCDATA&gt;</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