# Features covered: simple parser
#
# This file contains a collection of tests for the simple parser.
# Tested functionalities:
# simple-1.*: Basic function, parsing
# simple-2.*: Character encoding
#
# Copyright (c) 2002 Rolf Ade.
#
# RCS: @(#) $Id: xmlsimple.test,v 1.5 2004/07/13 03:28:10 rolf Exp $
source [file join [file dir [info script]] loadtdom.tcl]
test simple-1.1 {document as only root node} {
set doc [dom parse -simple {}]
set root [$doc documentElement]
set result [$root asXML -indent none]
$doc delete
set result
} {}
test simple-1.2 {parsing} {
set doc [dom parse -simple {}]
set root [$doc documentElement]
set result [llength [$root childNodes]]
$doc delete
set result
} {3}
test simple-1.3 {simple parser - parsing} {knownBug} {
set doc [dom parse -simple { }]
set root [$doc documentElement]
set result [$root asXML -indent none]
$doc delete
set result
} {}
test simple-1.4 {simple parser - parsing} {
set doc [dom parse -simple { }]
set root [$doc documentElement]
set result [$root asXML -indent none]
$doc delete
set result
} {}
test simple-1.5 {simple parser - -keepEmpties} {
set doc [dom parse -simple -keepEmpties {}]
set root [$doc documentElement]
set result [$root hasChildNodes]
$doc delete
set result
} {0}
test simple-1.6 {simple parser - empty CDATA section} {
set doc [dom parse -simple -keepEmpties {}]
set root [$doc documentElement]
set result [$root hasChildNodes]
$doc delete
set result
} {0}
test simple-1.7 {simple parser - -keepEmpties} {
set doc [dom parse -simple -keepEmpties { }]
set result [$doc asXML -indent none]
$doc delete
set result
} { }
test simple-1.8 {simple parser - empty comment} {
set doc [dom parse -simple {}]
set root [$doc documentElement]
set result [$root hasChildNodes]
lappend result [[$root firstChild] nodeValue]
$doc delete
set result
} {1 {}}
test simple-2.1 {XML build in entities} {
set doc [dom parse -simple {<>&'"}]
set root [$doc documentElement]
set result [$root text]
$doc delete
set result
} {<>&'"}
# emacs: "
test simple-2.2 {character entities} {
set doc [dom parse -simple {AB}]
set root [$doc documentElement]
set result [$root text]
$doc delete
set result
} {AB}
test simple-2.3 {character entities} {need_i18n} {
set doc [dom parse -simple {ÖÄÄ}]
set root [$doc documentElement]
set result [$root text]
$doc delete
set result
} "\u00d6\u00c4\u00c4"
# cleanup
::tcltest::cleanupTests
return