summaryrefslogtreecommitdiffstats
path: root/tests/treectrl.test
diff options
context:
space:
mode:
authorkrischan <krischan>2002-12-24 22:15:38 (GMT)
committerkrischan <krischan>2002-12-24 22:15:38 (GMT)
commit3d10a38bc3b8b84467fdf4958d180f3da5482c39 (patch)
tree4bc42d288d1cff33bed59ca5bfe62e2ca117aefa /tests/treectrl.test
parentbd8007fd65c5f25b9fedc44b61107e0999d0e951 (diff)
downloadtktreectrl-3d10a38bc3b8b84467fdf4958d180f3da5482c39.zip
tktreectrl-3d10a38bc3b8b84467fdf4958d180f3da5482c39.tar.gz
tktreectrl-3d10a38bc3b8b84467fdf4958d180f3da5482c39.tar.bz2
Test file for treectrl.
Tests exist yet for options of widget, and for the widget commands element, style and item.
Diffstat (limited to 'tests/treectrl.test')
-rw-r--r--tests/treectrl.test1266
1 files changed, 1266 insertions, 0 deletions
diff --git a/tests/treectrl.test b/tests/treectrl.test
new file mode 100644
index 0000000..fa48411
--- /dev/null
+++ b/tests/treectrl.test
@@ -0,0 +1,1266 @@
+# Commands covered: treectrl
+#
+# This file contains a collection of tests for the treectrl command of
+# the tktreectrl extension. Sourcing this file into Tcl runs the tests and
+# generates output for errors. No output means no errors were found.
+#
+# Copyright (c) 2000 by Scriptics Corporation.
+# Copyright (c) 2002 by Christian Krone.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: treectrl.test,v 1.1 2002/12/24 22:15:38 krischan Exp $
+
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ package require tcltest
+ namespace import ::tcltest::*
+}
+
+package require Tk
+# This works only, if tktreectrl is already installed:
+# package require treectrl
+# So we better load and source it by hand:
+load [file join . libtreectrl1.0.so]
+source [file join library treectrl.tcl]
+source [file join library filelist-bindings.tcl]
+
+test tree-1.1 {Usage} -body {
+ treectrl
+} -returnCodes error -result {wrong # args: should be "treectrl pathName ?options?"}
+
+test tree-1.2 {Unknown option} -body {
+ treectrl .t -foo bar
+} -returnCodes error -result {unknown option "-foo"}
+
+test tree-1.3 {Create a tree} -body {
+ treectrl .t
+} -result {.t}
+
+test tree-1.4 {configure: List all options} -body {
+ .t configure
+} -result {{-background background Background white white} {-backgroundmode backgroundMode BackgroundMode row row} {-bd -borderwidth} {-bg -background} {-borderwidth borderWidth BorderWidth 2 2} {-buttoncolor buttonColor ButtonColor #808080 #808080} {-buttonsize buttonSize ButtonSize 9 9} {-buttonthickness buttonThickness ButtonThickness 1 1} {-closedbuttonbitmap closedButtonBitmap ClosedButtonBitmap {} {}} {-closedbuttonimage closedButtonImage ClosedButtonImage {} {}} {-columnproxy columnProxy ColumnProxy {} {}} {-cursor cursor Cursor {} {}} {-doublebuffer doubleBuffer DoubleBuffer item item} {-fg -foreground} {-font font Font {Helvetica -12 bold} {Helvetica -12 bold}} {-foreground foreground Foreground Black Black} {-height height Height 200 200} {-highlightbackground highlightBackground HighlightBackground #d9d9d9 #d9d9d9} {-highlightcolor highlightColor HighlightColor Black Black} {-highlightthickness highlightThickness HighlightThickness 1 1} {-indent indent Indent 19 19} {-itemheight itemHeight ItemHeight 0 0} {-linecolor lineColor LineColor #808080 #808080} {-linestyle lineStyle LineStyle dot dot} {-linethickness lineThickness LineThickness 1 1} {-openbuttonbitmap openButtonBitmap OpenButtonBitmap {} {}} {-openbuttonimage openButtonImage OpenButtonImage {} {}} {-orient orient Orient vertical vertical} {-relief relief Relief sunken sunken} {-scrollmargin scrollMargin ScrollMargin 0 0} {-selectmode selectMode SelectMode browse browse} {-showbuttons showButtons ShowButtons 1 1} {-showheader showHeader ShowHeader 1 1} {-showlines showLines ShowLines 1 1} {-showroot showRoot ShowRoot 1 1} {-showrootbutton showRootButton ShowRootButton 0 0} {-takefocus takeFocus TakeFocus {} {}} {-treecolumn treeColumn TreeColumn 0 0} {-width width Width 200 200} {-wrap wrap Wrap {} {}} {-xscrollcommand xScrollCommand ScrollCommand {} {}} {-xscrolldelay xScrollDelay ScrollDelay 50 50} {-xscrollincrement xScrollIncrement ScrollIncrement 0 0} {-yscrollcommand yScrollCommand ScrollCommand {} {}} {-yscrolldelay yScrollDelay ScrollDelay 50 50} {-yscrollincrement yScrollIncrement ScrollIncrement 0 0}}
+
+test tree-1.5 {configure -background with totally empty visible tree} -body {
+ pack .t
+ update idletasks
+ .t configure -background white
+ update idletasks
+} -result {}
+
+test tree-1.6 {configure: -background option} -body {
+ .t configure -background yellow
+ .t configure -background
+} -result {-background background Background white yellow}
+
+test tree-1.7 {configure: invalid -backgroundmode option} -body {
+ .t configure -backgroundmode foo
+} -returnCodes error -result {bad backgroundmode "foo": must be column, index, row, or visindex}
+
+test tree-1.8 {configure: -backgroundmode option} -body {
+ .t configure -backgroundmode column
+ .t configure -backgroundmode
+} -result {-backgroundmode backgroundMode BackgroundMode row column}
+
+test tree-1.9 {configure: invalid -buttonsize option} -body {
+ .t configure -buttonsize foo
+} -returnCodes error -result {bad screen distance "foo"}
+
+test tree-1.10 {configure: -buttonsize option} -body {
+ .t configure -buttonsize 1c
+ .t configure -buttonsize
+} -result {-buttonsize buttonSize ButtonSize 9 1c}
+
+test tree-1.11 {configure: invalid -buttoncolor option} -body {
+ .t configure -buttoncolor foo
+} -returnCodes error -result {unknown color name "foo"}
+
+test tree-1.12 {configure: -buttoncolor option} -body {
+ .t configure -buttoncolor red
+ .t configure -buttoncolor
+} -result {-buttoncolor buttonColor ButtonColor #808080 red}
+
+test tree-1.13 {configure: invalid -openbuttonbitmap option} -body {
+ .t configure -openbuttonbitmap foo
+} -returnCodes error -result {bitmap "foo" not defined}
+
+test tree-1.14 {configure: -openbuttonbitmap option} -body {
+ .t configure -openbuttonbitmap hourglass
+ .t configure -openbuttonbitmap
+} -result {-openbuttonbitmap openButtonBitmap OpenButtonBitmap {} hourglass}
+
+test tree-1.15 {configure: invalid -closedbuttonbitmap option} -body {
+ .t configure -closedbuttonbitmap foo
+} -returnCodes error -result {bitmap "foo" not defined}
+
+test tree-1.16 {configure: -closedbuttonbitmap option} -body {
+ .t configure -closedbuttonbitmap questhead
+ .t configure -closedbuttonbitmap
+} -result {-closedbuttonbitmap closedButtonBitmap ClosedButtonBitmap {} questhead}
+
+test tree-1.17 {configure: invalid -openbuttonimage option} -body {
+ .t configure -openbuttonimage foo
+} -returnCodes error -result {image "foo" doesn't exist}
+
+test tree-1.18 {configure: -openbuttonimage option} -body {
+ image create photo emptyImg
+ .t configure -openbuttonimage emptyImg
+ .t configure -openbuttonimage
+} -result {-openbuttonimage openButtonImage OpenButtonImage {} emptyImg}
+
+test tree-1.19 {configure: invalid -closedbuttonimage option} -body {
+ .t configure -closedbuttonimage foo
+} -returnCodes error -result {image "foo" doesn't exist}
+
+test tree-1.20 {configure: -closedbuttonimage option} -body {
+ .t configure -closedbuttonimage emptyImg
+ .t configure -closedbuttonimage
+} -result {-closedbuttonimage closedButtonImage ClosedButtonImage {} emptyImg}
+
+test tree-1.21 {configure: invalid -doublebuffer option} -body {
+ .t configure -doublebuffer foo
+} -returnCodes error -result {bad doublebuffer "foo": must be none, item, or window}
+
+test tree-1.22 {configure: -doublebuffer option} -body {
+ .t configure -doublebuffer window
+ .t configure -doublebuffer
+} -result {-doublebuffer doubleBuffer DoubleBuffer item window}
+
+test tree-1.23 {configure: invalid -indent option} -body {
+ .t configure -indent foo
+} -returnCodes error -result {bad screen distance "foo"}
+
+test tree-1.24 {configure: -indent option} -body {
+ .t configure -indent 2c
+ .t configure -indent
+} -result {-indent indent Indent 19 2c}
+
+test tree-1.25 {configure: invalid -itemheight option} -body {
+ .t configure -itemheight foo
+} -returnCodes error -result {bad screen distance "foo"}
+
+test tree-1.26 {configure: -itemheight option} -body {
+ .t configure -itemheight 18m
+ .t configure -itemheight
+} -result {-itemheight itemHeight ItemHeight 0 18m}
+
+test tree-1.27 {configure: invalid -linestyle option} -body {
+ .t configure -linestyle foo
+} -returnCodes error -result {bad linestyle "foo": must be dot or solid}
+
+test tree-1.28 {configure: -linestyle option} -body {
+ .t configure -linestyle solid
+ .t configure -linestyle
+} -result {-linestyle lineStyle LineStyle dot solid}
+
+test tree-1.29 {configure: invalid -linethickness option} -body {
+ .t configure -linethickness foo
+} -returnCodes error -result {bad screen distance "foo"}
+
+test tree-1.30 {configure: -linethickness option} -body {
+ .t configure -linethickness 3m
+ .t configure -linethickness
+} -result {-linethickness lineThickness LineThickness 1 3m}
+
+test tree-1.31 {configure: invalid -linecolor option} -body {
+ .t configure -linecolor #foo
+} -returnCodes error -result {invalid color name "#foo"}
+
+test tree-1.32 {configure: -linethickness option} -body {
+ .t configure -linecolor gray20
+ .t configure -linecolor
+} -result {-linecolor lineColor LineColor #808080 gray20}
+
+test tree-1.33 {configure: invalid -orient option} -body {
+ .t configure -orient foo
+} -returnCodes error -result {bad orient "foo": must be horizontal or vertical}
+
+test tree-1.34 {configure: -orient option} -body {
+ .t configure -orient h
+ .t configure -orient
+} -result {-orient orient Orient vertical horizontal}
+
+test tree-1.35 {configure: invalid -relief option} -body {
+ .t configure -relief foo
+} -returnCodes error -result {bad relief "foo": must be flat, groove, raised, ridge, solid, or sunken}
+
+test tree-1.36 {configure: -relief option} -body {
+ .t configure -relief flat
+ .t configure -relief
+} -result {-relief relief Relief sunken flat}
+
+test tree-1.37 {configure: invalid -showbuttons option} -body {
+ .t configure -showbuttons foo
+} -returnCodes error -result {expected boolean value but got "foo"}
+
+test tree-1.38 {configure: -showbuttons option} -body {
+ .t configure -showbuttons off
+ .t configure -showbuttons
+} -result {-showbuttons showButtons ShowButtons 1 0}
+
+test tree-1.39 {configure: invalid -showheader option} -body {
+ .t configure -showheader foo
+} -returnCodes error -result {expected boolean value but got "foo"}
+
+test tree-1.40 {configure: -showheader option} -body {
+ .t configure -showheader off
+ .t configure -showheader
+} -result {-showheader showHeader ShowHeader 1 0}
+
+test tree-1.41 {configure: invalid -showlines option} -body {
+ .t configure -showlines foo
+} -returnCodes error -result {expected boolean value but got "foo"}
+
+test tree-1.42 {configure: -showlines option} -body {
+ .t configure -showlines false
+ .t configure -showlines
+} -result {-showlines showLines ShowLines 1 0}
+
+test tree-1.43 {configure: invalid -showroot option} -body {
+ .t configure -showroot foo
+} -returnCodes error -result {expected boolean value but got "foo"}
+
+test tree-1.44 {configure: -showroot option} -body {
+ .t configure -showroot no
+ .t configure -showroot
+} -result {-showroot showRoot ShowRoot 1 0}
+
+test tree-1.45 {configure: invalid -showrootbutton option} -body {
+ .t configure -showrootbutton foo
+} -returnCodes error -result {expected boolean value but got "foo"}
+
+test tree-1.46 {configure: -showrootbutton option} -body {
+ .t configure -showrootbutton True
+ .t configure -showrootbutton
+} -result {-showrootbutton showRootButton ShowRootButton 0 1}
+
+test tree-1.47 {configure: invalid -treecolumn option} -body {
+ .t configure -treecolumn foo
+} -returnCodes error -result {expected integer but got "foo"}
+
+test tree-1.48 {configure: -treecolumn option with unknown column} -body {
+ .t configure -treecolumn 1
+ .t configure -treecolumn
+} -result {-treecolumn treeColumn TreeColumn 0 1}
+
+test tree-1.49 {configure: -treecolumn option with known column} -body {
+ .t column configure 0 -tag column0
+ .t column configure 1 -tag column1
+ .t configure -treecolumn 1
+ .t configure -treecolumn
+} -result {-treecolumn treeColumn TreeColumn 0 1}
+
+test tree-1.50 {configure: invalid -wrap mode} -body {
+ .t configure -wrap foo
+} -returnCodes error -result {bad wrap "foo"}
+
+test tree-1.51 {configure: invalid -wrap option: bogus width} -body {
+ .t configure -wrap {item bar}
+} -returnCodes error -result {bad wrap "item bar"}
+
+test tree-1.52 {configure: invalid -wrap option: superflous width} -body {
+ .t configure -wrap {1 window}
+} -returnCodes error -result {bad wrap "1 window"}
+
+test tree-1.53 {configure: -wrap option} -body {
+ .t configure -wrap {7 items}
+ .t configure -wrap
+} -result {-wrap wrap Wrap {} {7 items}}
+
+test tree-1.54 {configure: -wrap empty option} -body {
+ .t configure -wrap {}
+ .t configure -wrap
+} -result {-wrap wrap Wrap {} {}}
+
+# For the tests of the item descriptions we use see,
+# if we want to generate an error on unknown items.
+# For the positive cases we use index since it returns the item number.
+
+test tree-2.1 {bogus itemdesc} -body {
+ .t index foo
+} -returnCodes error -result {bad item description "foo"}
+
+test tree-2.2 {is all allowed?} -body {
+ .t index all
+} -returnCodes error -result {can't specify "all" for this command}
+
+test tree-2.3 {itemdesc number unknown} -body {
+ .t see 999
+} -returnCodes error -result {item "999" doesn't exist}
+
+test tree-2.4 {itemdesc number of root} -body {
+ .t index 0
+} -result {0}
+
+test tree-2.5 {itemdesc active} -body {
+ .t index active
+} -result {0}
+
+test tree-2.6 {itemdesc abbreviated anchor} -body {
+ .t index an
+} -result {0}
+
+test tree-2.7 {itemdesc first} -body {
+ .t index first
+} -result {0}
+
+test tree-2.8 {itemdesc first visible} -body {
+ .t configure -showroot 1
+ .t index "first visible"
+} -result {0}
+
+test tree-2.9 {itemdesc first visible without any node} -body {
+ .t configure -showroot 0
+ .t see "first visible"
+} -returnCodes error -result {item "first visible" doesn't exist}
+
+test tree-2.10 {itemdesc last} -body {
+ .t index last
+} -result {0}
+
+test tree-2.11 {itemdesc last visible} -body {
+ .t configure -showroot 1
+ .t index "last visible"
+} -result {0}
+
+test tree-2.12 {itemdesc last visible without any node} -body {
+ .t configure -showroot 0
+ .t see "last visible"
+} -returnCodes error -result {item "last visible" doesn't exist}
+
+test tree-2.13 {itemdesc nearest without x/y} -body {
+ .t index nearest
+} -returnCodes error -result {bad item description "nearest"}
+
+test tree-2.14 {itemdesc nearest with invalid x/y} -body {
+ .t index "nearest foo bar"
+} -returnCodes error -result {bad item description "nearest foo bar"}
+
+test tree-2.15 {itemdesc nearest with valid x/y, but no item} -body {
+ .t configure -showroot 0
+ .t index "nearest 10 10"
+} -result {}
+
+# Before continuing to test the item descriptions and their modifiers,
+# lets create some items with this hierarchy:
+# 0
+# + 1
+# | + 2
+# | + 3
+# | + 4
+# + 5
+# | + 6
+# | + 7
+# + 8
+test tree-2.16 {create some items} -body {
+ set n1 [.t item create]; .t item lastchild 0 $n1
+ set n2 [.t item create]; .t item lastchild $n1 $n2
+ set n3 [.t item create]; .t item lastchild $n1 $n3
+ set n4 [.t item create]; .t item lastchild $n3 $n4
+ set n5 [.t item create]; .t item lastchild 0 $n5
+ set n6 [.t item create]; .t item lastchild $n5 $n6
+ set n7 [.t item create]; .t item lastchild $n5 $n7
+ set n8 [.t item create]; .t item lastchild 0 $n8
+} -result {8}
+
+test tree-2.17 {itemdesc nearest with valid x/y} -body {
+ # I think this should return an item, but it doesn't...
+ .t index "nearest 10 10"
+} -result {}
+
+test tree-2.18 {itemdesc rnc without r/c} -body {
+ .t index rnc
+} -returnCodes error -result {bad item description "rnc"}
+
+test tree-2.19 {itemdesc rnc with invalid r/c} -body {
+ .t index "rnc foo bar"
+} -returnCodes error -result {bad item description "rnc foo bar"}
+
+test tree-2.20 {itemdesc rnc with valid r/c} -body {
+ .t index "rnc 0 0"
+} -result {1}
+
+test tree-2.21 {itemdesc root} -body {
+ .t configure -showroot 1 -orient vertical
+ .t index root
+} -result {0}
+
+test tree-2.22 {bogus modifier} -body {
+ .t index "0 foo"
+} -returnCodes error -result {bad modifier "foo": must be above, below, bottom, child, firstchild, lastchild, left, leftmost, next, nextsibling, parent, prev, prevsibling, right, rightmost, sibling, top, or visible}
+
+test tree-2.23 {valid modifier with too less arguments} -body {
+ .t index "0 child"
+} -returnCodes error -result {bad item description "0 child"}
+
+test tree-2.24 {modifier visible alone generates an error} -body {
+ .t index "0 visible"
+} -returnCodes error -result {bad item description "0 visible"}
+
+test tree-2.25 {modifier above} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n above"]
+ }
+ set res
+} -result {{} 0 1 2 3 4 5 6 7}
+
+test tree-2.26 {modifier below} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n below"]
+ }
+ set res
+} -result {1 2 3 4 5 6 7 8 {}}
+
+test tree-2.27 {modifier bottom} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n bottom"]
+ }
+ set res
+} -result {8 8 8 8 8 8 8 8 8}
+
+test tree-2.28 {modifier child} -body {
+ set res {}
+ for {set n 0} {$n < 6} {incr n} {
+ for {set c 0} {$c < 3} {incr c} {
+ lappend res [.t index "$n child $c"]
+ }
+ }
+ set res
+} -result {1 5 8 2 3 {} {} {} {} 4 {} {} {} {} {} 6 7 {}}
+
+test tree-2.29 {modifier firstchild} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n firstchild"]
+ }
+ set res
+} -result {1 2 {} 4 {} 6 {} {} {}}
+
+test tree-2.30 {modifier lastchild} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n lastchild"]
+ }
+ set res
+} -result {8 3 {} 4 {} 7 {} {} {}}
+
+test tree-2.30 {modifier left, leftmost, right, and rightmost} -body {
+ list [.t index "1 left"] [.t index "1 right"] \
+ [.t index "2 leftmost"] [.t index "3 rightmost"]
+} -result {{} {} 2 3}
+
+test tree-2.31 {modifier next} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n next"]
+ }
+ set res
+} -result {1 2 3 4 5 6 7 8 {}}
+
+test tree-2.32 {modifier nextsibling} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n nextsibling"]
+ }
+ set res
+} -result {{} 5 3 {} {} 8 7 {} {}}
+
+test tree-2.33 {modifier parent} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n parent"]
+ }
+ set res
+} -result {{} 0 1 1 3 0 5 5 0}
+
+test tree-2.34 {modifier prev} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n prev"]
+ }
+ set res
+} -result {{} 0 1 2 3 4 5 6 7}
+
+test tree-2.34 {modifier prevsibling} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n prevsibling"]
+ }
+ set res
+} -result {{} {} {} 2 {} 1 {} 6 5}
+
+test tree-2.35 {modifier sibling} -body {
+ set res {}
+ for {set n 0} {$n < 7} {incr n} {
+ for {set c 0} {$c < 3} {incr c} {
+ lappend res [.t index "$n sibling $c"]
+ }
+ }
+ set res
+} -result {{} {} {} 1 5 8 2 3 {} 2 3 {} 4 {} {} 1 5 8 6 7 {}}
+
+test tree-2.36 {modifier top} -body {
+ set res {}
+ for {set n 0} {$n < 9} {incr n} {
+ lappend res [.t index "$n top"]
+ }
+ set res
+} -result {0 0 0 0 0 0 0 0 0}
+
+test tree-2.37 {modifier cocktail} -body {
+ set res {}
+ set itemDesc 7
+ foreach mod {
+ bottom rightmost sibling 0 nextsibling prev parent
+ prevsibling prev nextsibling lastchild next
+ } {
+ lappend itemDesc $mod
+ catch {lappend res [.t index $itemDesc]}
+ }
+ set res
+} -result {8 8 1 5 4 3 2 1 5 7 8}
+
+test tree-3.1 {element: missing op} -body {
+ .t element
+} -returnCodes error -result {wrong # args: should be ".t element command ?arg arg...?"}
+
+test tree-3.2 {element create: missing argument} -body {
+ .t element create
+} -returnCodes error -result {wrong # args: should be ".t element create name type ?option value...?"}
+
+test tree-3.3 {element create: unknown type} -body {
+ .t element create foo bar
+} -returnCodes error -result {unknown element type "bar"}
+
+test tree-3.4 {element create: a bitmap} -body {
+ .t element create eBitmap bitmap
+} -result {eBitmap}
+
+test tree-3.5 {element configure: for a bitmap} -body {
+ .t element configure eBitmap
+} -result {{-background {} {} {} {}} {-bitmap {} {} {} {}} {-foreground {} {} {} {}}}
+
+test tree-3.6 {element configure: bitmap invalid -background} -body {
+ .t element configure eBitmap -background blur
+} -returnCodes error -result {unknown color name "blur"}
+
+test tree-3.7 {element configure/cget: bitmap -background} -body {
+ .t element configure eBitmap -background blue
+ .t element cget eBitmap -background
+} -result {blue}
+
+test tree-3.8 {element configure: bitmap invalid psd -background} -body {
+ .t element configure eBitmap -background {blue !selected blur {}}
+} -returnCodes error -result {unknown color name "blur"}
+
+test tree-3.9 {element configure/cget: bitmap psd -background} -body {
+ .t element configure eBitmap -background {blue open magenta {}}
+ .t element cget eBitmap -background
+} -result {blue open magenta {}}
+
+test tree-3.10 {element configure/cget: bitmap invalid -bitmap} -body {
+ .t element configure eBitmap -bitmap notExists
+} -returnCodes error -result {bitmap "notExists" not defined}
+
+test tree-3.11 {element configure/cget: bitmap -bitmap} -body {
+ .t element configure eBitmap -bitmap questhead
+ .t element cget eBitmap -bitmap
+} -result {questhead}
+
+test tree-3.12 {element configure: bitmap invalid psd -bitmap} -body {
+ .t element configure eBitmap -bitmap {questhead selected yep {}}
+} -returnCodes error -result {bitmap "yep" not defined}
+
+test tree-3.13 {element configure/cget: bitmap psd -background} -body {
+ .t element configure eBitmap -bitmap {questhead !open error {}}
+ .t element cget eBitmap -bitmap
+} -result {questhead !open error {}}
+
+test tree-3.14 {element configure: bitmap invalid -foreground} -body {
+ .t element configure eBitmap -foreground foobar
+} -returnCodes error -result {unknown color name "foobar"}
+
+test tree-3.15 {element configure/cget: bitmap -foreground} -body {
+ .t element configure eBitmap -foreground yellow
+ .t element cget eBitmap -foreground
+} -result {yellow}
+
+test tree-3.16 {element configure: bitmap invalid psd -foreground} -body {
+ .t element configure eBitmap -foreground {blue ! red {}}
+} -returnCodes error -result {unknown state ""}
+
+test tree-3.17 {element configure/cget: bitmap psd -foreground} -body {
+ .t element configure eBitmap -foreground {blue open red !selected}
+ .t element cget eBitmap -foreground
+} -result {blue open red !selected}
+
+test tree-3.18 {element create: a border} -body {
+ .t element create eBorder border
+} -result {eBorder}
+
+test tree-3.19 {element configure: for a border} -body {
+ .t element configure eBorder
+} -result {{-background {} {} {} {}} {-filled {} {} {} {}} {-height {} {} {} {}} {-relief {} {} {} {}} {-thickness {} {} {} {}} {-width {} {} {} {}}}
+
+test tree-3.20 {element configure: border invalid -background} -body {
+ .t element configure eBorder -background #
+} -returnCodes error -result {invalid color name "#"}
+
+test tree-3.21 {element configure/cget: border -background} -body {
+ .t element configure eBorder -background #010101
+ .t element cget eBorder -background
+} -result {#010101}
+
+test tree-3.22 {element configure: border invalid psd -background} -body {
+ .t element configure eBorder -background {blue active red !}
+} -returnCodes error -result {unknown state ""}
+
+test tree-3.23 {element configure/cget: border psd -background} -body {
+ .t element configure eBorder -background {blue !open red selected}
+ .t element cget eBorder -background
+} -result {blue !open red selected}
+
+test tree-3.24 {element configure: border invalid -filled} -body {
+ .t element configure eBorder -filled foo
+} -returnCodes error -result {expected boolean value but got "foo"}
+
+test tree-3.25 {element configure/cget: border -filled} -body {
+ .t element configure eBorder -filled 1
+ .t element cget eBorder -filled
+} -result {1}
+
+test tree-3.26 {element configure: border invalid -height} -body {
+ .t element configure eBorder -height {200 300}
+} -returnCodes error -result {bad screen distance "200 300"}
+
+test tree-3.27 {element configure/cget: border -height} -body {
+ .t element configure eBorder -height 200
+ .t element cget eBorder -height
+} -result {200}
+
+test tree-3.28 {element configure: border invalid -relief} -body {
+ .t element configure eBorder -relief groovy
+} -returnCodes error -result {bad relief "groovy": must be flat, groove, raised, ridge, solid, or sunken}
+
+test tree-3.29 {element configure/cget: border -relief} -body {
+ .t element configure eBorder -relief ridge
+ .t element cget eBorder -relief
+} -result {ridge}
+
+test tree-3.30 {element configure: border invalid psd -relief} -body {
+ .t element configure eBorder -relief {groove open ridge}
+} -returnCodes error -result {list must have event number of elements}
+
+test tree-3.31 {element configure/cget: border psd -relief} -body {
+ .t element configure eBorder -relief {groove !open ridge {}}
+ .t element cget eBorder -relief
+} -result {groove !open ridge {}}
+
+test tree-3.32 {element configure: border invalid -thickness} -body {
+ .t element configure eBorder -thickness jup
+} -returnCodes error -result {bad screen distance "jup"}
+
+test tree-3.33 {element configure/cget: border -thickness} -body {
+ .t element configure eBorder -thickness 8
+ .t element cget eBorder -thickness
+} -result {8}
+
+test tree-3.34 {element configure: border invalid -width} -body {
+ .t element configure eBorder -width {300 200}
+} -returnCodes error -result {bad screen distance "300 200"}
+
+test tree-3.35 {element configure/cget: border -width} -body {
+ .t element configure eBorder -width 300
+ .t element cget eBorder -width
+} -result {300}
+
+test tree-3.36 {element create: an image} -body {
+ .t element create eImage image
+} -result {eImage}
+
+test tree-3.37 {element configure: for an image} -body {
+ .t element configure eImage
+} -result {{-height {} {} {} {}} {-image {} {} {} {}} {-width {} {} {} {}}}
+
+test tree-3.38 {element configure: image invalid -height} -body {
+ .t element configure eImage -height {101 open 200 {}}
+} -returnCodes error -result {bad screen distance "101 open 200 {}"}
+
+test tree-3.39 {element configure/cget: image -height} -body {
+ .t element configure eImage -height 101
+ .t element cget eImage -height
+} -result {101}
+
+test tree-3.40 {element configure: image unknown -image} -body {
+ .t element configure eImage -image foo
+} -returnCodes error -result {image "foo" doesn't exist}
+
+test tree-3.41 {element configure/cget: image -image} -body {
+ .t element configure eImage -image emptyImg
+ .t element cget eImage -image
+} -result {emptyImg}
+
+test tree-3.42 {element configure: image invalid psd -image} -body {
+ .t element configure eImage -image {emptyImg open dirImg}
+} -returnCodes error -result {list must have event number of elements}
+
+test tree-3.43 {element configure/cget: image psd -image} -body {
+ .t element configure eImage -image {emptyImg {}}
+ .t element cget eImage -image
+} -result {emptyImg {}}
+
+test tree-3.44 {element configure: image invalid -width} -body {
+ .t element configure eImage -width {202 boo}
+} -returnCodes error -result {bad screen distance "202 boo"}
+
+test tree-3.45 {element configure/cget: image -width} -body {
+ .t element configure eImage -width 202
+ .t element cget eImage -width
+} -result {202}
+
+test tree-3.46 {element create: a rectangle} -body {
+ .t element create eRect rect
+} -result {eRect}
+
+test tree-3.47 {element configure: for a rectangle} -body {
+ .t element configure eRect
+} -result {{-fill {} {} {} {}} {-height {} {} {} {}} {-open {} {} {} {}} {-outline {} {} {} {}} {-outlinewidth {} {} {} {}} {-showfocus {} {} {} {}} {-width {} {} {} {}}}
+
+test tree-3.48 {element configure: rectangle invalid -fill} -body {
+ .t element configure eRect -fill baz
+} -returnCodes error -result {unknown color name "baz"}
+
+test tree-3.49 {element configure/cget: rectangle -fill} -body {
+ .t element configure eRect -fill blue
+ .t element cget eRect -fill
+} -result {blue}
+
+test tree-3.50 {element configure: rectangle invalid psd -fill} -body {
+ .t element configure eRect -fill {red blue yellow green}
+} -returnCodes error -result {unknown state "blue"}
+
+test tree-3.51 {element configure/cget: rectangle psd -fill} -body {
+ .t element configure eRect -fill {red open blue {}}
+ .t element cget eRect -fill
+} -result {red open blue {}}
+
+test tree-3.52 {element configure: rectangle invalid -height} -body {
+ .t element configure eRect -height 100b
+} -returnCodes error -result {bad screen distance "100b"}
+
+test tree-3.53 {element configure/cget: rectangle -height} -body {
+ .t element configure eRect -height 200
+ .t element cget eRect -height
+} -result {200}
+
+test tree-3.54 {element configure: rectangle invalid -open} -body {
+ .t element configure eRect -open now
+} -returnCodes error -result {bad open value "now": must be a string containing zero or more of n, e, s, and w}
+
+test tree-3.55 {element configure/cget: rectangle -open} -body {
+ .t element configure eRect -open n
+ .t element cget eRect -open
+} -result {n}
+
+test tree-3.56 {element configure: rectangle invalid -outline} -body {
+ .t element configure eRect -outline baz
+} -returnCodes error -result {unknown color name "baz"}
+
+test tree-3.57 {element configure/cget: rectangle -outline} -body {
+ .t element configure eRect -outline blue
+ .t element cget eRect -outline
+} -result {blue}
+
+test tree-3.58 {element configure: rectangle invalid psd -outline} -body {
+ .t element configure eRect -outline {red blue yellow green}
+} -returnCodes error -result {unknown state "blue"}
+
+test tree-3.59 {element configure/cget: rectangle psd -outline} -body {
+ .t element configure eRect -outline {red {} blue open}
+ .t element cget eRect -outline
+} -result {red {} blue open}
+
+test tree-3.60 {element configure: rectangle invalid -outlinewidth} -body {
+ .t element configure eRect -outlinewidth baz
+} -returnCodes error -result {bad screen distance "baz"}
+
+test tree-3.61 {element configure/cget: rectangle -outlinewidth} -body {
+ .t element configure eRect -outlinewidth 1c
+ .t element cget eRect -outlinewidth
+} -result {1c}
+
+test tree-3.62 {element configure: rectangle invalid -showfocus} -body {
+ .t element configure eRect -showfocus baz
+} -returnCodes error -result {expected boolean value but got "baz"}
+
+test tree-3.63 {element configure/cget: rectangle -showfocus} -body {
+ .t element configure eRect -showfocus 1
+ .t element cget eRect -showfocus
+} -result {1}
+
+test tree-3.64 {element configure: rectangle invalid -width} -body {
+ .t element configure eRect -width baz
+} -returnCodes error -result {bad screen distance "baz"}
+
+test tree-3.65 {element configure/cget: rectangle -width} -body {
+ .t element configure eRect -width 10c
+ .t element cget eRect -width
+} -result {10c}
+
+test tree-3.66 {element create: a text} -body {
+ .t element create eText text
+} -result {eText}
+
+test tree-3.67 {element configure: for a text} -body {
+ .t element configure eText
+} -result {{-data {} {} {} {}} {-datatype {} {} {} {}} {-format {} {} {} {}} {-fill {} {} {} {}} {-font {} {} {} {}} {-justify {} {} {} {}} {-lines {} {} {} {}} {-text {} {} {} {}} {-width {} {} {} {}} {-wrap {} {} {} {}}}
+
+test tree-3.68 {element configure/cget: text -data} -body {
+ .t element configure eText -data "1.23456789"
+ .t element cget eText -data
+} -result {1.23456789}
+
+test tree-3.69 {element configure: text invalid -datatype} -body {
+ .t element configure eText -datatype float
+} -returnCodes error -result {bad datatype "float": must be double, integer, long, string, or time}
+
+test tree-3.70 {element configure/cget: text -datatype} -body {
+ .t element configure eText -datatype double
+ .t element cget eText -datatype
+} -result {double}
+
+test tree-3.71 {element configure: text invalid -fill} -body {
+ .t element configure eText -fill baz
+} -returnCodes error -result {unknown color name "baz"}
+
+test tree-3.72 {element configure/cget: text -fill} -body {
+ .t element configure eText -fill blue
+ .t element cget eText -fill
+} -result {blue}
+
+test tree-3.73 {element configure: text invalid psd -fill} -body {
+ .t element configure eText -fill {red blue yellow green}
+} -returnCodes error -result {unknown state "blue"}
+
+test tree-3.74 {element configure/cget: text psd -fill} -body {
+ .t element configure eText -fill {red open blue {}}
+ .t element cget eText -fill
+} -result {red open blue {}}
+
+test tree-3.75 {element configure/cget: text -format} -body {
+ .t element configure eText -format "The value of the double is a secret"
+ .t element cget eText -format
+} -result {The value of the double is a secret}
+
+test tree-3.76 {element configure: text invalid -font} -body {
+ # Invalid font doesn't generate an error...
+ .t element configure eText -font {"Australia 12"}
+ .t element cget eText -font
+} -result {"Australia 12"}
+
+test tree-3.77 {element configure/cget: text -font} -body {
+ .t element configure eText -font {"Helvetica 12"}
+ .t element cget eText -font
+} -result {"Helvetica 12"}
+
+test tree-3.78 {element configure: text invalid psd -font} -body {
+ .t element configure eText -font {"Australia 12" opened}
+} -returnCodes error -result {unknown state "opened"}
+
+test tree-3.79 {element configure/cget: text -font} -body {
+ .t element configure eText -font {"Helvetica 12" open "Times 18" {}}
+ .t element cget eText -font
+} -result {"Helvetica 12" open "Times 18" {}}
+
+test tree-3.80 {element configure: text invalid -justify} -body {
+ .t element configure eText -justify north
+} -returnCodes error -result {bad justification "north": must be left, right, or center}
+
+test tree-3.81 {element configure/cget: text -justify} -body {
+ .t element configure eText -justify center
+ .t element cget eText -justify
+} -result {center}
+
+test tree-3.82 {element configure: text invalid -lines} -body {
+ .t element configure eText -lines asap
+} -returnCodes error -result {expected integer but got "asap"}
+
+test tree-3.83 {element configure/cget: text -lines} -body {
+ .t element configure eText -lines 5
+ .t element cget eText -lines
+} -result {5}
+
+test tree-3.84 {element configure/cget: text -text} -body {
+ .t element configure eText -text "Hallo Welt"
+ .t element cget eText -text
+} -result {Hallo Welt}
+
+test tree-3.85 {element configure: text invalid -wrap} -body {
+ .t element configure eText -wrap none
+} -returnCodes error -result {bad wrap "none": must be char or word}
+
+test tree-3.86 {element configure/cget: text -wrap} -body {
+ .t element configure eText -wrap char
+ .t element cget eText -wrap
+} -result {char}
+
+test tree-3.87 {element types} -body {
+ set res {}
+ foreach e {eBitmap eBorder eImage eRect eText} {
+ lappend res [.t element type $e]
+ }
+ set res
+} -result {bitmap border image rect text}
+
+test tree-3.88 {element names} -body {
+ lsort [.t element names]
+} -result {eBitmap eBorder eImage eRect eText}
+
+test tree-3.89 {element delete with something unknown in middle} -body {
+ .t element delete eBitmap eNotExist eBorder
+} -returnCodes error -result {element "eNotExist" doesn't exist}
+
+test tree-3.90 {element names} -body {
+ lsort [.t element names]
+} -result {eBorder eImage eRect eText}
+
+# Disabled since it triggers a panic() in Range_ItemUnderPoint()
+test tree-3.91 {element delete while item is still displayed} -constraints knownBug -body {
+ .t element create elText text -text hallo
+ .t style create stText
+ .t style element stText elText
+ set new [.t item create]
+ .t item style set $new 0 stText
+ .t item lastchild 0 $new
+ .t element delete elText
+ place [frame .obscure] -in .t -relwidth 1.0 -relheight 1.0
+ update
+ destroy .obscure
+ update
+} -result {}
+
+test tree-4.1 {style: missing args} -body {
+ .t style
+} -returnCodes error -result {wrong # args: should be ".t style command ?arg arg...?"}
+
+test tree-4.2 {style: invalid command} -body {
+ .t style foo
+} -returnCodes error -result {bad command "foo": must be cget, configure, create, delete, elements, layout, or names}
+
+test tree-4.3 {style names: no style exists yet} -body {
+ .t style names
+} -result {}
+
+test tree-4.4 {style create: missing args} -body {
+ .t style create
+} -returnCodes error -result {wrong # args: should be ".t style create name ?option value...?"}
+
+test tree-4.5 {style create: invalid option} -body {
+ .t style create testStyle -foo bar
+} -returnCodes error -result {unknown option "-foo"}
+
+test tree-4.6 {style create} -body {
+ .t style create testStyle
+} -result {testStyle}
+
+test tree-4.7 {style create: already existing style} -body {
+ .t style create testStyle
+} -returnCodes error -result {style "testStyle" already exists}
+
+test tree-4.8 {style configure: invalid option} -body {
+ .t style configure testStyle -foo bar
+} -returnCodes error -result {unknown option "-foo"}
+
+test tree-4.9 {style configure: all options} -body {
+ .t style configure testStyle
+} -result {{-orient {} {} horizontal horizontal}}
+
+test tree-4.10 {style configure: the only option} -body {
+ .t style configure testStyle -orient
+} -result {-orient {} {} horizontal horizontal}
+
+test tree-4.11 {style configure: invalid option -orient} -body {
+ .t style configure testStyle -orient diagonal
+} -returnCodes error -result {bad orient "diagonal": must be horizontal or vertical}
+
+test tree-4.12 {style configure/cget: option -orient} -body {
+ .t style configure testStyle -orient vertical
+ .t style cget testStyle -orient
+} -result {vertical}
+
+test tree-4.13 {style delete: unknown style} -body {
+ .t style delete testStyle2
+} -returnCodes error -result {style "testStyle2" doesn't exist}
+
+test tree-4.14 {style delete: unknown style} -body {
+ .t style names
+} -result {testStyle}
+
+test tree-4.15 {style delete} -body {
+ .t style delete testStyle
+} -result {}
+
+test tree-4.16 {style names: no style defined} -body {
+ .t style names
+} -result {}
+
+test tree-4.17 {style elements: missing args} -body {
+ .t style elements
+} -returnCodes error -result {wrong # args: should be ".t style elements name ?element element...?"}
+
+test tree-4.18 {style elements: unknown style} -body {
+ .t style elements testStyle
+} -returnCodes error -result {style "testStyle" doesn't exist}
+
+test tree-4.19 {style elements: no element yet} -body {
+ .t style create testStyle
+ .t style elements testStyle
+} -result {}
+
+test tree-4.20 {style elements: empty element list} -body {
+ .t style elements testStyle {}
+} -result {}
+
+test tree-4.21 {style elements: add some elements} -body {
+ .t style elements testStyle {eBorder eImage eText}
+ .t style elements testStyle
+} -result {eBorder eImage eText}
+
+test tree-4.22 {style layout: missing args} -body {
+ .t style layout
+} -returnCodes error -result {wrong # args: should be ".t style layout name element ?option? ?value? ?option value ...?"}
+
+test tree-4.23 {style layout: no options specified} -body {
+ .t style layout testStyle eText
+} -result {-padw 0 -padn 0 -pade 0 -pads 0 -ipadw 0 -ipadn 0 -ipade 0 -ipads 0 -expand {} -iexpand {} -detach no -squeeze {} -union {}}
+
+test tree-4.24 {style layout: option -pads} -body {
+ .t style layout testStyle eText -pads 3
+ .t style layout testStyle eText -pads
+} -result {3}
+
+test tree-4.25 {style layout: option -expand} -body {
+ .t style layout testStyle eText -expand "hello world"
+ .t style layout testStyle eText -expand
+} -result {we}
+
+test tree-4.26 {style layout: option -squeeze} -body {
+ .t style layout testStyle eText -squeeze "xyzzy"
+ .t style layout testStyle eText -squeeze
+} -result {xy}
+
+test tree-4.27 {style layout: option -union invalid list} -body {
+ .t style layout testStyle eText -union "\{"
+} -returnCodes error -result {unmatched open brace in list}
+
+test tree-4.28 {style layout: option -union unknown elements} -body {
+ .t style layout testStyle eText -union {foo bar}
+} -returnCodes error -result {element "foo" doesn't exist}
+
+test tree-4.29 {style layout: option -union element not in style} -body {
+ .t style layout testStyle eText -union {eBorder eRect}
+} -returnCodes error -result {style testStyle does not use element eRect}
+
+test tree-4.30 {style layout: option -union with itself} -body {
+ .t style layout testStyle eText -union {eBorder eText}
+} -returnCodes error -result {element eText can't form union with itself}
+
+test tree-4.31 {style layout: option -union} -body {
+ .t style layout testStyle eText -union {eBorder eImage}
+ .t style layout testStyle eText -union
+} -result {eBorder eImage}
+
+test tree-4.32 {style layout: option invalid -detach} -body {
+ .t style layout testStyle eText -detach {x y}
+} -returnCodes error -result {expected boolean value but got "x y"}
+
+test tree-4.33 {style layout: option -detach} -body {
+ .t style layout testStyle eText -detach true
+ .t style layout testStyle eText -detach
+} -result {1}
+
+test tree-5.1 {item: missing command} -body {
+ .t item
+} -returnCodes error -result {wrong # args: should be ".t item command ?arg arg...?"}
+
+test tree-5.2 {item: invalid command} -body {
+ .t item foo
+} -returnCodes error -result {bad command "foo": must be ancestors, children, create, delete, firstchild, lastchild, nextsibling, numchildren, parent, prevsibling, remove, bbox, complex, dump, element, hasbutton, index, isancestor, isopen, rnc, sort, state, style, text, or visible}
+
+test tree-5.3 {item create: too many args} -body {
+ .t item create foo
+} -returnCodes error -result {wrong # args: should be ".t item create"}
+
+test tree-5.4 {item create} -body {
+ list [.t item create] [.t item create] [.t item create]
+} -result {9 10 11}
+
+test tree-5.5 {item delete: missing itemDesc} -body {
+ .t item delete
+} -returnCodes error -result {wrong # args: should be ".t item delete first ?last?"}
+
+test tree-5.6 {item delete: unknown item} -body {
+ .t item delete 999
+} -returnCodes error -result {item "999" doesn't exist}
+
+test tree-5.7 {item delete: one item} -body {
+ .t item delete 9
+} -result {}
+
+test tree-5.8 {item delete: item range without common ancestor} -body {
+ .t item delete 10 11
+} -returnCodes error -result {item 10 and item 11 don't share a common ancestor}
+
+test tree-5.9 {item delete: item range without common ancestor} -body {
+ .t item lastchild 8 10
+ .t item lastchild 8 11
+ .t item delete 10 11
+} -result {}
+
+test tree-5.10 {item ancestors: no ancestor yet} -body {
+ .t item create
+ .t item ancestors 12
+} -result {}
+
+test tree-5.11 {item ancestors} -body {
+ .t item lastchild 7 12
+ .t item ancestors 12
+} -result {7 5 0}
+
+test tree-5.12 {item children: no children} -body {
+ .t item children 12
+} -result {}
+
+test tree-5.13 {item children} -body {
+ .t item children 0
+} -result {1 5 8}
+
+test tree-5.14 {item firstchild: missing itemDesc} -body {
+ .t item firstchild
+} -returnCodes error -result {wrong # args: should be ".t item firstchild item ?newFirstChild?"}
+
+test tree-5.15 {item firstchild: no children} -body {
+ .t item firstchild 12
+} -result {}
+
+test tree-5.16 {item firstchild} -body {
+ .t item firstchild 1
+} -result {2}
+
+test tree-5.17 {item lastchild: no children} -body {
+ .t item lastchild 1
+} -result {3}
+
+test tree-5.18 {item nextsibling: no sibling} -body {
+ .t item nextsibling 12
+} -result {}
+
+test tree-5.19 {item nextsibling: no sibling} -body {
+ .t item nextsibling 2
+} -result {3}
+
+test tree-5.20 {item numchildren: no children} -body {
+ .t item numchildren 12
+} -result {0}
+
+test tree-5.21 {item numchildren} -body {
+ .t item numchildren 1
+} -result {2}
+
+test tree-5.22 {item parent: no parent} -body {
+ .t item parent root
+} -result {}
+
+test tree-5.23 {item parent} -body {
+ .t item parent "root firstchild"
+} -result {0}
+
+test tree-5.24 {item prevsibling: missing arg} -body {
+ .t item prevsibling
+} -returnCodes error -result {wrong # args: should be ".t item prevsibling item ?newPrevSibling?"}
+
+test tree-5.25 {item prevsibling: no prevsibling} -body {
+ .t item prevsibling 1
+} -result {}
+
+test tree-5.26 {item prevsibling} -body {
+ .t item prevsibling 3
+} -result {2}
+
+test tree-5.27 {item remove: invalid item} -body {
+ .t item remove 999
+} -returnCodes error -result {item "999" doesn't exist}
+
+test tree-5.28 {item remove} -body {
+ .t item remove 12
+} -result {}
+
+test tree-5.29 {item complex: missing args} -body {
+ .t item complex 8
+} -returnCodes error -result {wrong # args: should be ".t item complex item list..."}
+
+test tree-5.30 {item complex: only allowed if column style is defined} -body {
+ .t item complex 8 {{e1 -text Hallo}}
+} -returnCodes error -result {item 8 doesn't have column 0}
+
+test tree-5.31 {item complex: invalid list} -body {
+ .t item style set 8 0 testStyle
+ .t item complex 8 {{e1 -text}}
+} -returnCodes error -result {wrong # args: should be "element option value..."}
+
+test tree-5.32 {item complex: element name not defined in style} -body {
+ .t item complex 8 {{e1 -text Hallo}}
+} -returnCodes error -result {element "e1" doesn't exist}
+
+test tree-5.33 {item complex: option not known in element} -body {
+ .t item complex 8 {{eText -bitmap questhead}}
+} -returnCodes error -result {unknown option "-bitmap"}
+
+test tree-5.34 {item complex: invalid option value in element} -body {
+ .t item complex 8 {{eText -fill foo}}
+} -returnCodes error -result {unknown color name "foo"}
+
+test tree-5.35 {item element: missing command} -body {
+ .t item element
+} -returnCodes error -result {wrong # args: should be ".t item element command item column element ?arg ...?"}
+
+test tree-5.36 {item element: invalid command} -body {
+ .t item element foo 8 0 eText
+} -returnCodes error -result {bad command "foo": must be actual, cget, or configure}
+
+test tree-5.37 {item element actual: missing arg} -body {
+ .t item element actual 8 0 eText
+} -returnCodes error -result {wrong # args: should be ".t item element actual item column element option"}
+
+test tree-5.38 {item element actual} -body {
+ .t item element actual 8 0 eText -fill
+} -result {red}
+
+test tree-5.39 {item element cget: missing arg} -body {
+ .t item element cget 8 0 eText
+} -returnCodes error -result {wrong # args: should be ".t item element cget item column element option"}
+
+test tree-5.40 {item element cget} -body {
+ .t item element cget 8 0 eText -fill
+} -result {}
+
+test tree-5.41 {item element configure} -body {
+ .t item element configure 8 0 eText
+} -result {{-data {} {} {} {}} {-datatype {} {} {} {}} {-format {} {} {} {}} {-fill {} {} {} {}} {-font {} {} {} {}} {-justify {} {} {} {}} {-lines {} {} {} {}} {-text {} {} {} {}} {-width {} {} {} {}} {-wrap {} {} {} {}}}
+
+test tree-5.42 {item element configure/cget} -body {
+ .t item element configure 8 0 eText -fill yellow
+ .t item element cget 8 0 eText -fill
+} -result {yellow}
+
+test tree-5.43 {item element configure} -body {
+ .t item element configure 8 0 eText -fill
+} -result {-fill {} {} {} yellow}
+
+# cleanup
+image delete emptyImg
+::tcltest::cleanupTests
+return