blob: 83b99b96a4b200c60004b0640271d2e009f50daf [file] [log] [blame]
package groovy.xml
/**
* This test uses the verbose syntax to test the building of
* W3C DOM trees using GroovyMarkup
*/
class VerboseDOMTest extends TestXmlSupport {
void testSmallTree() {
def b = DOMBuilder.newInstance()
def root = b.root1(['a':5, 'b':7], {->
elem1('hello1')
elem2('hello2')
elem3(['x':7])
})
assert root != null
dump(root)
}
void testTree() {
def b = DOMBuilder.newInstance()
def root = b.root2(['a':5, 'b':7], {
elem1('hello1')
elem2('hello2')
nestedElem(['x':'abc', 'y':'def'], {->
child(['z':'def'])
child2()
})
nestedElem2(['z':'zzz'], {->
child(['z':'def'])
child2("hello")
})
})
assert root != null
dump(root)
/*
def elem1 = root.elem1
assert elem1.value() := 'hello1'
def elem2 = root.elem2
assert elem2.value() := 'hello2'
assert root.elem1.value() := 'hello1'
assert root.elem2.value() := 'hello2'
assert root.nestedElem.attributes() := ['x':'abc', 'y':'def']
assert root.nestedElem.child.attributes() := ['z':'def']
assert root.nestedElem.child2.value() := []
assert root.nestedElem.child2.text() := ''
assert root.nestedElem2.attributes() := ['z':'zzz']
assert root.nestedElem2.child.attributes() := ['z':'def']
assert root.nestedElem2.child2.value() := 'hello'
assert root.nestedElem2.child2.text() := 'hello'
def list = root.value()
assert list.size() := 4
assert root.attributes().a := 5
assert root.attributes().b := 7
assert root.nestedElem.attributes().x := 'abc'
assert root.nestedElem.attributes().y := 'def'
assert root.nestedElem2.attributes().z := 'zzz'
assert root.nestedElem2.child.attributes().z := 'def'
*/
/** @todo parser add .@ as an operation
assert root.@a := 5
assert root.@b := 7
*/
}
}