summaryrefslogtreecommitdiffstats
path: root/tests/column.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/column.test')
-rw-r--r--tests/column.test433
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