# Commands covered: ::dom::DOMImplementation
#
# This file contains a collection of tests for one or more of the
# TclDOM commands. 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: DOMImplementation.test,v 1.8 2003/01/23 19:47:02 balls Exp $
package require tcltest ; namespace import -force ::tcltest::*
source testutils.tcl
testPackage dom
test DOMImplementation-1.1 {hasFeature create} -body {
::dom::DOMImplementation hasFeature create 1.0
} -result 1
test DOMImplementation-1.2 {hasFeature create wrong version} -body {
::dom::DOMImplementation hasFeature create 2.0
} -result 0
test DOMImplementation-1.3 {hasFeature destroy} -body {
::dom::DOMImplementation hasFeature destroy 1.0
} -result 1
test DOMImplementation-1.4 {hasFeature parse} -body {
::dom::DOMImplementation hasFeature parse 1.0
} -result 1
test DOMImplementation-1.5 {hasFeature serialize} -body {
::dom::DOMImplementation hasFeature serialize 1.0
} -result 1
test DOMImplementation-1.6 {hasFeature unknown feature} -body {
::dom::DOMImplementation hasFeature unknown 1.0
} -result 0
test DOMImplementation-1.7 {error: hasFeature too few arguments} -body {
catch {::dom::DOMImplementation hasFeature error}
} -result 1
test DOMImplementation-1.8 {error: hasFeature too many arguments} -body {
catch {::dom::DOMImplementation hasFeature error 1.0 foo}
} -result 1
test DOMImplementation-2.1 {create document} -body {
::dom::DOMImplementation create
ok;
} -result {}
test DOMImplementation-2.2 {create named document} -constraints {dom_tcl} -body {
::dom::DOMImplementation create ::Foo
} -result {::Foo(node1)}
test DOMImplementation-2.3 {error: create too many arguments} -body {
catch {::dom::DOMImplementation create Foo Bar}
} -result 1
test DOMImplementation-3.1 {destroy document} -constraints {dom_tcl} -body {
set doc31 [dom::DOMImplementation create]
array set test31 [set $doc31]
::dom::DOMImplementation destroy $doc31
info vars $test31(docArray)\[a-z\]*
} -result {}
test DOMImplementation-3.2 {error: destroy unknown document} -body {
catch {::dom::DOMImplementation destroy {::Bar node1}}
} -result 1
test DOMImplementation-3.3 {destroy too few arguments} -body {
catch {::dom::DOMImplementation destroy}
} -result 1
test DOMImplementation-3.4 {destroy too many arguments} -body {
catch {::dom::DOMImplementation destroy {::Bar node1} Extra}
} -result 1
# Bug fix #453741
test DOMImplementation-3.5 {destroy an element node} -match regexp -body {
set doc [dom::DOMImplementation create]
set root [dom::document createElement $doc top]
set node1 [dom::document createElement $root node]
set node2 [dom::document createElement $root node]
dom::node removeChild $root $node1
dom::DOMImplementation destroy $node1
dom::DOMImplementation serialize $doc
} -result {<\?xml version=("|')1\.0("|')\?>
(
)?}
test DOMImplementation-3.6 {destroy document} -body {
set doc36 [dom::create]
dom::destroy $doc36
} -result {}
set ::tcltest::testConstraints(doParse) 1
set xml {
This is test DOMImplementation-4.X}
test DOMImplementation-4.1 {parse document} -constraints {doParse} -body {
set doc [::dom::DOMImplementation parse $xml]
ok
} -result {}
test DOMImplementation-4.2 {error: parse too few arguments} -constraints {doParse} -body {
catch {::dom::DOMImplementation parse}
} -result 1
test DOMImplementation-4.3 {error: parse too many arguments} -constraints {doParse} -body {
catch {::dom::DOMImplementation parse $xml Extra}
} -result 1
# cleanup
::tcltest::cleanupTests
return