diff options
Diffstat (limited to 'tests/column.test')
-rw-r--r-- | tests/column.test | 433 |
1 files changed, 433 insertions, 0 deletions
diff --git a/tests/column.test b/tests/column.test new file mode 100644 index 0000000..efb3752 --- /dev/null +++ b/tests/column.test @@ -0,0 +1,433 @@ +# Commands covered: treectrl's widget command column +# +# This file contains a collection of tests for the column widget 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. +# +# CVS: @(#) $Id: column.test,v 1.1 2002/12/30 21:42:19 krischan Exp $ + +if {[lsearch [namespace children] ::tcltest] == -1} { + package require tcltest 2 + namespace import ::tcltest::* +} + +package require Tk +package_require treectrl + +test column-0.1 {some needed preparations} -body { + pack [treectrl .t] +} -result {} + +test column-0.2 {create an image} -body { + image create photo emptyImg +} -result {emptyImg} + +test column-1.1 {missing args} -body { + .t column +} -returnCodes error -result {wrong # args: should be ".t column command ?arg arg...?"} + +test column-1.2 {unknown command} -body { + .t column foo +} -returnCodes error -result {bad command "foo": must be bbox, cget, configure, delete, index, move, neededwidth, or width} + +test column-1.3 {configure: no column exists with numerical index} -body { + .t column configure 0 +} -returnCodes error -result {bad column index "0": there are no columns} + +test column-1.4 {configure: no column exists with tag} -body { + .t column configure column0 +} -returnCodes error -result {column with tag "column0" doesn't exist} + +test column-1.5 {configure: create and fill a column} -body { + .t column configure 0 -tag column0 + .t element create e rect -width 482 + .t style create s + .t style elements s e + set i [.t item create] + .t item style set $i 0 s + .t item lastchild root $i +} -result {1} + +test column-1.6 {configure: create another column} -body { + .t column configure 1 -tag column1 +} -result {} + +test column-2.1 {column bbox: missing args} -body { + .t column bbox +} -returnCodes error -result {wrong # args: should be ".t column bbox column"} + +test column-2.2 {column bbox: invalid column} -body { + .t column bbox foo +} -returnCodes error -result {column with tag "foo" doesn't exist} + +test column-2.3 {column bbox: tree doesn't show headers} -body { + .t configure -showheader 0 + .t column bbox column0 +} -result {} + +test column-2.4 {column bbox} -body { + .t configure -showheader 1 + .t column bbox 0 +} -result {0 3 501 7} + +test column-2.5 {column bbox: tail column not allowed} -body { + .t column bbox tail +} -returnCodes error -result {can't specify "tail" for this command} + +test column-3.1 {column configure: missing args} -body { + .t column configure +} -returnCodes error -result {wrong # args: should be ".t column configure column ?option? ?value?"} + +test column-3.2 {column configure: invalid column} -body { + .t column configure foo +} -returnCodes error -result {column with tag "foo" doesn't exist} + +test column-3.3 {column configure: list all options} -body { + .t column configure column1 +} -result {{-arrow {} {} none none} {-arrowside {} {} right right} {-arrowgravity {} {} left left} {-arrowpade {} {} 6 6} {-arrowpadw {} {} 6 6} {-bitmap {} {} {} {}} {-background {} {} #d9d9d9 #d9d9d9} {-borderwidth {} {} 2 2} {-button {} {} 1 1} {-expand {} {} 0 0} {-font {} {} {} {}} {-image {} {} {} {}} {-imagepade {} {} 6 6} {-imagepadn {} {} 0 0} {-imagepads {} {} 0 0} {-imagepadw {} {} 6 6} {-itembackground {} {} {} {}} {-justify {} {} left left} {-minwidth {} {} {} {}} {-relief {} {} raised raised} {-stepwidth {} {} {} {}} {-sunken {} {} 0 0} {-tag {} {} {} column1} {-text {} {} {} {}} {-textcolor {} {} Black Black} {-textpade {} {} 6 6} {-textpadn {} {} 0 0} {-textpads {} {} 0 0} {-textpadw {} {} 6 6} {-width {} {} {} {}} {-visible {} {} 1 1} {-widthhack {} {} 0 0}} + +test column-3.4 {column configure: tail column} -body { + .t column configure tail +} -result {{-arrow {} {} none none} {-arrowside {} {} right right} {-arrowgravity {} {} left left} {-arrowpade {} {} 6 6} {-arrowpadw {} {} 6 6} {-bitmap {} {} {} {}} {-background {} {} #d9d9d9 #d9d9d9} {-borderwidth {} {} 2 2} {-button {} {} 1 1} {-expand {} {} 0 0} {-font {} {} {} {}} {-image {} {} {} {}} {-imagepade {} {} 6 6} {-imagepadn {} {} 0 0} {-imagepads {} {} 0 0} {-imagepadw {} {} 6 6} {-itembackground {} {} {} {}} {-justify {} {} left left} {-minwidth {} {} {} {}} {-relief {} {} raised raised} {-stepwidth {} {} {} {}} {-sunken {} {} 0 0} {-tag {} {} {} tail} {-text {} {} {} {}} {-textcolor {} {} Black Black} {-textpade {} {} 6 6} {-textpadn {} {} 0 0} {-textpads {} {} 0 0} {-textpadw {} {} 6 6} {-width {} {} {} {}} {-visible {} {} 1 1} {-widthhack {} {} 0 0}} + +test column-3.5 {column configure: invalid -arrow} -body { + .t column configure column1 -arrow straight +} -returnCodes error -result {bad arrow "straight": must be none, up, or down} + +test column-3.6 {column configure/cget: -arrow} -body { + .t column configure column1 -arrow up + .t column cget column1 -arrow +} -result {up} + +test column-3.7 {column configure: invalid -arrowside} -body { + .t column configure column1 -arrowside up +} -returnCodes error -result {bad arrowside "up": must be left or right} + +test column-3.8 {column configure/cget: -arrowside} -body { + .t column configure column1 -arrowside left + .t column cget column1 -arrowside +} -result {left} + +test column-3.9 {column configure: invalid -arrowgravity} -body { + .t column configure column1 -arrowgravity both +} -returnCodes error -result {bad arrowgravity "both": must be left or right} + +test column-3.10 {column configure/cget: -arrowgravity} -body { + .t column configure column1 -arrowgravity right + .t column cget column1 -arrowgravity +} -result {right} + +test column-3.11 {column configure: invalid -arrowpadw} -body { + .t column configure column1 -arrowpadw x +} -returnCodes error -result {bad screen distance "x"} + +test column-3.12 {column configure/cget: -arrowpadw/e} -body { + .t column configure column1 -arrowpadw 8 -arrowpade 5 + list [.t column cget column1 -arrowpadw] \ + [.t column cget column1 -arrowpade] +} -result {8 5} + +test column-3.13 {column configure: invalid -bitmap} -body { + .t column configure column1 -bitmap foo +} -returnCodes error -result {bitmap "foo" not defined} + +test column-3.14 {column configure/cget: -bitmap} -body { + .t column configure column1 -bitmap questhead + .t column cget column1 -bitmap +} -result {questhead} + +test column-3.15 {column configure: invalid -background} -body { + .t column configure column1 -background foo +} -returnCodes error -result {unknown color name "foo"} + +test column-3.16 {column configure/cget: -background} -body { + .t column configure column1 -background magenta + .t column cget column1 -background +} -result {magenta} + +test column-3.17 {column configure: invalid -borderwidth} -body { + .t column configure column1 -borderwidth x +} -returnCodes error -result {bad screen distance "x"} + +test column-3.18 {column configure/cget: -borderwidth} -body { + .t column configure column1 -borderwidth 4 + .t column cget column1 -borderwidth +} -result {4} + +test column-3.19 {column configure: invalid -button} -body { + .t column configure column1 -button "" +} -returnCodes error -result {expected boolean value but got ""} + +test column-3.20 {column configure/cget: -button} -body { + .t column configure column1 -button off + .t column cget column1 -button +} -result {0} + +test column-3.21 {column configure: invalid -expand} -body { + .t column configure column1 -expand ew +} -returnCodes error -result {expected boolean value but got "ew"} + +test column-3.22 {column configure/cget: -expand} -body { + .t column configure column1 -expand true + .t column cget column1 -expand +} -result {1} + +test column-3.23 {column configure: invalid -image} -body { + .t column configure column1 -image questhead +} -returnCodes error -result {image "questhead" doesn't exist} + +test column-3.24 {column configure/cget: -image} -body { + .t column configure column1 -image emptyImg + .t column cget column1 -image +} -result {emptyImg} + +test column-3.25 {column configure: invalid -imagepade} -body { + .t column configure column1 -imagepade y +} -returnCodes error -result {bad screen distance "y"} + +test column-3.26 {column configure/cget: -imagepadw/e} -body { + .t column configure column1 -imagepadw 9 -imagepade 4 + list [.t column cget column1 -imagepadw] \ + [.t column cget column1 -imagepade] +} -result {9 4} + +test column-3.27 {column configure: invalid -itembackground} -body { + .t column configure column1 -itembackground no +} -returnCodes error -result {unknown color name "no"} + +test column-3.28 {column configure/cget: simple -itembackground} -body { + .t column configure column1 -itembackground blue + .t column cget column1 -itembackground +} -result {blue} + +test column-3.29 {column configure: invalid -itembackground list} -body { + .t column configure column1 -itembackground {blue selected green active} +} -returnCodes error -result {unknown color name "selected"} + +test column-3.30 {column configure/cget: -itembackground list} -body { + .t column configure column1 -itembackground {blue green magenta red} + .t column cget column1 -itembackground +} -result {blue green magenta red} + +test column-3.31 {column configure: invalid -justify} -body { + .t column configure column1 -justify no +} -returnCodes error -result {bad justification "no": must be left, right, or center} + +test column-3.32 {column configure/cget: simple -justify} -body { + .t column configure column1 -justify center + .t column cget column1 -justify +} -result {center} + +test column-3.33 {column configure: invalid -minwidth} -body { + .t column configure column1 -minwidth z +} -returnCodes error -result {bad screen distance "z"} + +test column-3.34 {column configure/cget: -minwidth} -body { + .t column configure column1 -minwidth 25 + .t column cget column1 -minwidth +} -result {25} + +test column-3.35 {column configure: invalid -relief} -body { + .t column configure column1 -relief yes +} -returnCodes error -result {bad relief "yes": must be flat, groove, raised, ridge, solid, or sunken} + +test column-3.36 {column configure/cget: -relief} -body { + .t column configure column1 -relief sunken + .t column cget column1 -relief +} -result {sunken} + +test column-3.37 {column configure: invalid -stepwidth} -body { + .t column configure column1 -stepwidth "\t" +} -returnCodes error -result {bad screen distance " "} + +test column-3.38 {column configure/cget: -stepwidth} -body { + .t column configure column1 -stepwidth 125 + .t column cget column1 -stepwidth +} -result {125} + +test column-3.39 {column configure: invalid -sunken} -body { + .t column configure column1 -sunken groove +} -returnCodes error -result {expected boolean value but got "groove"} + +test column-3.40 {column configure/cget: -sunken} -body { + .t column configure column1 -sunken on + .t column cget column1 -sunken +} -result {1} + +test column-3.41 {column configure: -text} -body { + .t column configure column1 -text "Text above Column 1" + .t column cget column1 -text +} -result {Text above Column 1} + +test column-3.42 {column configure: invalid -textpadw} -body { + .t column configure column1 -textpadw baz +} -returnCodes error -result {bad screen distance "baz"} + +test column-3.43 {column configure/cget: -textpadw/e} -body { + .t column configure column1 -textpadw 8 -textpade 5 + list [.t column cget column1 -textpadw] \ + [.t column cget column1 -textpade] +} -result {8 5} + +test column-3.44 {column configure: invalid -width} -body { + .t column configure column1 -width all +} -returnCodes error -result {bad screen distance "all"} + +test column-3.45 {column configure/cget: -width} -body { + .t column configure column1 -width 250 + .t column cget column1 -width +} -result {250} + +test column-3.46 {column configure: invalid -visible} -body { + .t column configure column1 -visible never +} -returnCodes error -result {expected boolean value but got "never"} + +test column-3.47 {column configure/cget: -visible} -body { + .t column configure column1 -visible no + .t column cget column1 -visible +} -result {0} + +test column-3.48 {column configure: invalid -widthhack} -body { + .t column configure column1 -widthhack ok +} -returnCodes error -result {expected boolean value but got "ok"} + +test column-3.49 {column configure/cget: -widthhack} -body { + .t column configure column1 -widthhack yes + .t column cget column1 -widthhack +} -result {1} + +test column-4.1 {column configure: -tag} -body { + .t column configure column1 -tag column2 + .t column cget column1 -tag +} -returnCodes error -result {column with tag "column1" doesn't exist} + +test column-4.2 {column configure: -tag} -body { + .t column cget column2 -tag +} -result {column2} + +test column-4.3 {column cget: -tag of tail} -body { + .t column cget tail -tag +} -result {tail} + +test column-4.4 {column configure/cget: -tag of tail} -body { + .t column configure tail -tag head +} -returnCodes error -result {can't change tag of tail column} + +test column-4.5 {column cget: specify tail by its tag} -body { + .t column cget head -tag +} -returnCodes error -result {column with tag "head" doesn't exist} + +test column-5.1 {column delete: missing args} -body { + .t column delete +} -returnCodes error -result {wrong # args: should be ".t column delete column"} + +test column-5.2 {column delete: column tail} -body { + .t column delete tail +} -returnCodes error -result {can't specify "tail" for this command} + +test column-5.3 {column delete: first column} -body { + .t column delete 0 +} -result {} + +test column-5.4 {suprise, surprise: column 0 still exists} -body { + .t column cget 0 -tag +} -result {column2} + +test column-6.1 {column index: missing args} -body { + .t column index +} -returnCodes error -result {wrong # args: should be ".t column index column"} + +test column-6.2 {column index: the easy case} -body { + .t column index 0 +} -result {0} + +test column-6.3 {column index} -body { + .t column index column2 +} -result {0} + +test column-6.4 {column index: tail column} -body { + .t column index tail +} -result {1} + +test column-7.1 {column move: missing args} -body { + .t column move +} -returnCodes error -result {wrong # args: should be ".t column move column before"} + +test column-7.2 {column move: invalid column} -body { + .t column move 0 2 +} -returnCodes error -result {bad column index "2": must be from 0 to 0} + +test column-7.3 {column move: invalid column} -body { + .t column configure 1 -tag column1 + .t column configure 2 -tag column3 + .t column move 0 2 + .t column index column2 +} -result {1} + +test column-7.4 {correct moved?} -body { + set res {} + for {set x 0} {$x < [.t numcolumns]} {incr x} { + lappend res [.t column cget $x -tag] + } + set res +} -result {column1 column2 column3} + +test column-7.5 {column move: tail to the left} -body { + .t column move tail 0 +} -returnCodes error -result {can't specify "tail" for this command} + +test column-7.6 {column move: tail as before is ok} -body { + .t column move 0 tail + .t column index column1 +} -result {2} + +test column-8.1 {column width: missing args} -body { + .t column width +} -returnCodes error -result {wrong # args: should be ".t column width column"} + +test column-8.2 {column width: invalid column} -body { + .t column width foo +} -returnCodes error -result {column with tag "foo" doesn't exist} + +test column-8.3 {column width: tail column returns always 0} -body { + .t column width tail +} -result {0} + +test column-8.4 {column width} -body { + .t element create eText2 text -font {{courier -12}} -text "Hello World" + .t style create testStyle3 + .t style elements testStyle3 eText2 + .t item style set 1 column1 testStyle3 + update idletasks + list [.t column width column1] [font measure {courier -12} "Hello World"] +} -result {77 77} + +test column-9.1 {column neededwidth: missing args} -body { + .t column neededwidth +} -returnCodes error -result {wrong # args: should be ".t column neededwidth column"} + +test column-9.2 {column neededwidth: invalid column} -body { + .t column neededwidth foo +} -returnCodes error -result {column with tag "foo" doesn't exist} + +test column-9.3 {column neededwidth: tail column returns always 0} -body { + .t column neededwidth tail +} -result {0} + +test column-9.4 {column neededwidth} -body { + .t column neededwidth column1 +} -result {77} + +test column-99.1 {some needed cleanup} -body { + destroy .t +} -result {} + +# cleanup +::tcltest::cleanupTests +return |