diff options
Diffstat (limited to 'itcl/iwidgets/tests/toolbar.test')
-rw-r--r-- | itcl/iwidgets/tests/toolbar.test | 297 |
1 files changed, 297 insertions, 0 deletions
diff --git a/itcl/iwidgets/tests/toolbar.test b/itcl/iwidgets/tests/toolbar.test new file mode 100644 index 00000000000..614ff6f321f --- /dev/null +++ b/itcl/iwidgets/tests/toolbar.test @@ -0,0 +1,297 @@ +# This file is a Tcl script to test out [incr Widgets] Toolbar class. +# It is organized in the standard fashion for Tcl tests with the following +# notation for test case labels: +# +# 1.x - Construction/Destruction tests +# 2.x - Configuration option tests +# 3.x - Method tests +# +# Copyright (c) 1995 DSC Technologies Corporation +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# @(#) $Id$ + +package require tcltest +namespace import -force ::tcltest::* + +if [catch {package require Iwidgets 4.0}] { + # Let's try modifying the auto_path. Note that the IWIDGETS_LIBRARY + # env var is initialized in the Makefile when doing a 'make test'. + # If sourcing this file independently, this variable must be set manually. + if ![info exists env(IWIDGETS_LIBRARY)] { + error "Unable to locate Iwidgets package. Set your IWIDGETS_LIBRARY\ + environment\nvariable to the directory that contains iwidgets.tcl" + } + lappend auto_path $env(IWIDGETS_LIBRARY) + package require Iwidgets 4.0 +} + +if {[string compare test [info procs test]] == 1} { + source defs +} + +wm geometry . {} +raise . + +set c 1 +set o 1 +set m 1 + +# +# Initial construction test +# +test Toolbar-1.$c {Toolbar construction} { + iwidgets::Toolbar .tb + pack .tb + update + .tb add button item1 -text item1 + update + .tb add button item2 -text item2 + update + .tb add button item3 -text item3 + update +} {} + +incr c + +# +# Option tests which are successful. +# +test Toolbar-2.$o {configuration option} { + llength [.tb configure] +} {27} + +incr o + +foreach test { + {-disabledforeground #a3a3a3 #a3a3a3 } + {-highlightthickness 0 0 } + {-selectborderwidth 4 4 } + {-balloonfont 6x10 6x10 } + {-balloondelay1 1000 1000 } + {-balloondelay2 200 200 } + {-borderwidth 2 2 } + {-selectcolor #CDCDB7B7B5B5 #CDCDB7B7B5B5 } + {-highlightcolor Black Black } + {-font -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* } + {-balloonbackground yellow yellow } + {-helpvariable testing testing} + {-troughcolor #c3c3c3 #c3c3c3 } + {-selectbackground #c3c3c3 #c3c3c3 } + {-highlightbackground #d9d9d9 #d9d9d9 } + {-background #CDCDB7B7B5B5 #CDCDB7B7B5B5 } + {-state normal normal } + {-balloonforeground black black } + {-selectforeground Black Black } + {-foreground #000000000000 #000000000000 } + {-activebackground #ececec #ececec } + {-insertbackground Black Black } + {-cursor crosshair crosshair } + {-activeforeground Black Black } + {-insertforeground Black Black } + {-orient horizontal horizontal } + } { + set option [lindex $test 0] + test Toolbar-2.$o "configuration options, $option" { + .tb configure $option [lindex $test 1] + .tb cget $option + } [lindex $test 2] + update + incr o +} + +# +# Itemconfigure Option tests which are successful. +# +# This happens to be for a button. Note that the configuration options for +# the Tk button changed in 8.4. Four new options were added. +set newoptions [list -compound -overrelief -repeatdelay -repeatinterval] +set o 0 +if {$::tk_version < 8.4} { + test Toolbar-3.$o {tab configuration option} { + llength [.tb itemconfigure 0] + } {33} +} else { + test Toolbar-3.$o {tab configuration option} { + llength [.tb itemconfigure 0] + } {37} +} + +# do itemconfigure tests also... +foreach test { + {0 -activebackground #ececec #ececec } + {0 -activeforeground Black Black } + {0 -anchor center center } + {0 -background #d9d9d9 #d9d9d9 } + {0 -bd 0 0 } + {0 -bg #d9d9d9 #d9d9d9 } + {0 -bitmap {} {} } + {0 -borderwidth 2 2 } + {0 -command {} {} } + {0 -compound none none } + {0 -cursor {} {} } + {0 -default disabled disabled } + {0 -disabledforeground #a3a3a3 #a3a3a3 } + {0 -fg Black Black } + {0 -font -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* -Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-* } + {0 -foreground Black Black } + {0 -height 0 0 } + {0 -highlightbackground #d9d9d9 #d9d9d9 } + {0 -highlightcolor Black Black } + {0 -highlightthickness 2 2 } + {0 -image {} {} } + {0 -justify center center } + {0 -overrelief {} {} } + {0 -padx 4 4 } + {0 -pady 4 4 } + {0 -relief raised raised } + {0 -repeatdelay 0 0 } + {0 -repeatinterval 0 0 } + {0 -state normal normal } + {0 -takefocus false false } + {0 -text {} {} } + {0 -textvariable {} {} } + {0 -underline -1 -1 } + {0 -width 0 0 } + {0 -wraplength 0 0 } + {0 -helpstr {} {} } + {0 -balloonstr {} {} } + } { + set option [lindex $test 1] + if {$::tk_version < 8.4} { + if {[lsearch $newoptions $option] != -1} { + # Skip it. + continue + } + } + set index [lindex $test 0] + test Toolbar-2.$o "tab configuration options, $option" { + .tb itemconfigure $index $option [lindex $test 2] + .tb itemcget $index $option + } [lindex $test 3] + update + incr o +} + + +# +# Method tests which are successful. +# +foreach test { + {{.tb delete 0 end} + {}} + {{.tb add radiobutton one} + {.tb.one}} + {{.tb index end} + {0}} + {{.tb add checkbutton two} + {.tb.two}} + {{.tb index end} + {1}} + {{.tb index one} + {0}} + {{.tb insert end button oneandhalf -text "One & half"} + {.tb.oneandhalf}} + {{.tb index oneandhalf} + {1}} + {{.tb delete oneandhalf} + {}} + {{.tb index two} + {1}} + {{.tb delete 0 end} + {}} + {{.tb index 0} + {-1}} + } { + set method [lindex [lindex $test 0] 1] + set method_invoke [lindex $test 0] + + set testContents "set msg {}\n" + append testContents \ + "set result \[catch \{[lindex $test 0]\} msg\]\n" + append testContents \ + "lappend result \[regexp -- \{[lindex $test 1]\} \$msg\] \n" + append testContents "set result\n" + test Toolbar-4.$m "\[$method_invoke\]" $testContents \ + [list 0 1] + update + incr m +} + +# +# Method tests which fail and produce errors +# +foreach test { + {1 {.tb delete 0 end} {}} + {0 {.tb add button item1} {}} + {0 {.tb delete 0} {}} + {1 {.tb delete 0} {can't delete widget, no widgets in the Toolbar}} + {0 {.tb add button item1} {}} + {1 {.tb delete 1} {bad Toolbar widget index in delete method}} + {0 {.tb delete 0} {}} + {0 {.tb add button item1} {}} + {1 {.tb delete 0 1} {bad Toolbar widget index2 in delete method}} + {1 {.tb delete 1 4} {bad Toolbar widget index1 in delete method}} + {0 {.tb add button item2} {}} + {1 {.tb delete 1 0} {bad Toolbar widget index1 in delete method}} + {0 {.tb delete 0 1} {}} + {0 {.tb add button item1} {}} + {1 {.tb delete 0 1 4 5 6} {wrong # args}} + {1 {.tb delete} {wrong # args}} + {0 {.tb delete 0} {}} + {1 {.tb delete 0} {can't delete widget, no widgets in the Toolbar}} + {1 {.tb insert 0 button itemA} {}} + {0 {.tb add button item1} {}} + {0 {.tb add button item2} {}} + {0 {.tb insert 0 button itemAA} {}} + {1 {.tb insert -1 button bogus} {bad toolbar entry index -1}} + {0 {.tb delete 0 end} {}} + } { + set method_status [lindex $test 0] + set method_invoke [lindex $test 1] + set method [lindex $method_invoke 1] + + set testContents "set msg {}\n" + append testContents \ + "set result \[catch \{$method_invoke\} msg\]\n" + append testContents \ + "lappend result \[regexp -- \{[lindex $test 2]\} \$msg\] \n" + append testContents "set result\n" + test Toolbar-5.$m "\[$method_invoke\]" $testContents \ + [list $method_status 1] + incr m + } + +# +# Conclusion of constrcution/destruction tests +# +test Toolbar-1.$c {Toolbar destruction} { + destroy .tb + update +} {} + +incr c + +test Toolbar-1.$c {Toolbar construction} { + iwidgets::Toolbar .tb + pack .tb + update + .tb add iwidgets::optionmenu opt + update + .tb add button b + update + .tb add frame filler + update +} {} + +incr c + +test Toolbar-1.$c {Toolbar destruction} { + destroy .tb + update +} {} + +::tcltest::cleanupTests +exit |