diff options
Diffstat (limited to 'tk/tests/cursor.test')
-rw-r--r-- | tk/tests/cursor.test | 107 |
1 files changed, 65 insertions, 42 deletions
diff --git a/tk/tests/cursor.test b/tk/tests/cursor.test index a0e80f14a95..8227c5f6f84 100644 --- a/tk/tests/cursor.test +++ b/tk/tests/cursor.test @@ -8,21 +8,16 @@ # # RCS: @(#) $Id$ -if {[lsearch [namespace children] ::tcltest] == -1} { - source [file join [pwd] [file dirname [info script]] defs.tcl] -} - -if {[info commands testcursor] != "testcursor"} { - puts "testcursor command not available; skipping tests" - ::tcltest::cleanupTests - return -} +package require tcltest 2.1 +namespace import -force tcltest::configure +namespace import -force tcltest::testsDirectory +configure -testdir [file join [pwd] [file dirname [info script]]] +configure -loadfile [file join [testsDirectory] constraints.tcl] +tcltest::loadTestedCommands -eval destroy [winfo children .] -wm geometry . {} -raise . +testConstraint testcursor [llength [info commands testcursor]] -test cursor-1.1 {Tk_AllocCursorFromObj - converting internal reps} { +test cursor-1.1 {Tk_AllocCursorFromObj - converting internal reps} {testcursor} { set x watch lindex $x 0 destroy .b1 @@ -30,7 +25,7 @@ test cursor-1.1 {Tk_AllocCursorFromObj - converting internal reps} { lindex $x 0 testcursor watch } {{1 0}} -test cursor-1.2 {Tk_AllocCursorFromObj - discard stale cursor} { +test cursor-1.2 {Tk_AllocCursorFromObj - discard stale cursor} {testcursor} { set x watch destroy .b1 .b2 button .b1 -cursor $x @@ -40,7 +35,7 @@ test cursor-1.2 {Tk_AllocCursorFromObj - discard stale cursor} { button .b2 -cursor $x lappend result [testcursor watch] } {{} {{1 1}}} -test cursor-1.3 {Tk_AllocCursorFromObj - reuse existing cursor} { +test cursor-1.3 {Tk_AllocCursorFromObj - reuse existing cursor} {testcursor} { set x watch destroy .b1 .b2 button .b1 -cursor $x @@ -59,39 +54,80 @@ test cursor-2.2 {Tk_GetCursor procedure} { destroy .b1 list [catch {button .b1 -cursor @xyzzy} msg] $msg } {1 {bad cursor spec "@xyzzy"}} +# Next two tests need a helper file with a very specific name and +# controlled format. +set wincur(data_octal) { + 000 000 002 000 001 000 040 040 000 000 007 000 007 000 060 001 + 000 000 026 000 000 000 050 000 000 000 040 000 000 000 100 000 + 000 000 001 000 001 000 000 000 000 000 000 000 000 000 000 000 + 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 + 000 000 377 377 377 000 000 000 000 000 000 000 000 000 000 000 + 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 + 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 + 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 + 000 000 000 000 000 000 000 000 000 000 160 016 000 000 170 036 + 000 000 174 076 000 000 076 174 000 000 037 370 000 000 017 360 + 000 000 007 340 000 000 007 340 000 000 017 360 000 000 037 370 + 000 000 076 174 000 000 174 076 000 000 170 036 000 000 160 016 + 000 000 000 000 000 000 377 377 377 377 377 377 377 377 377 377 + 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 + 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 + 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 + 377 377 377 377 377 377 017 360 377 377 007 340 377 377 003 300 + 377 377 001 200 377 377 200 001 377 377 300 003 377 377 340 007 + 377 377 360 017 377 377 360 017 377 377 340 007 377 377 300 003 + 377 377 200 001 377 377 001 200 377 377 003 300 377 377 007 340 + 377 377 017 360 377 377 +} +set wincur(data_binary) {} +foreach wincur(num) $wincur(data_octal) { + append wincur(data_binary) [binary format c 0$wincur(num)] +} +set wincur(dir) [::tcltest::makeDirectory {dir with spaces}] +set wincur(file) [::tcltest::makeFile $wincur(data_binary) "test file.cur" $wincur(dir)] +test cursor-2.3 {Tk_GetCursor procedure: cursor specs are lists} {pcOnly} { + destroy .b1 + button .b1 -cursor [list @$wincur(file)] +} {.b1} +test cursor-2.4 {Tk_GetCursor procedure: cursor specs are lists} {pcOnly} { + destroy .b1 + button .b1 -cursor @[regsub -all {[][ \\{}""$#]} $wincur(file) {\\&}] +} {.b1} +::tcltest::removeDirectory $wincur(dir) +unset wincur -test cursor-3.1 {Tk_FreeCursorFromObj - reference counts} { - set x arrow +test cursor-3.1 {Tk_FreeCursorFromObj - reference counts} {testcursor} { + set x heart destroy .b1 .b2 .b3 button .b1 -cursor $x button .b3 -cursor $x button .b2 -cursor $x set result {} - lappend result [testcursor arrow] + lappend result [testcursor heart] destroy .b1 - lappend result [testcursor arrow] + lappend result [testcursor heart] destroy .b2 - lappend result [testcursor arrow] + lappend result [testcursor heart] destroy .b3 - lappend result [testcursor arrow] + lappend result [testcursor heart] } {{{3 1}} {{2 1}} {{1 1}} {}} -test cursor-4.1 {FreeCursorObjProc} { +test cursor-4.1 {FreeCursorObjProc} {testcursor} { destroy .b - set x [format arrow] + set x [format heart] button .b -cursor $x - set y [format arrow] + set y [format heart] .b configure -cursor $y - set z [format arrow] + set z [format heart] .b configure -cursor $z set result {} - lappend result [testcursor arrow] + lappend result [testcursor heart] set x red - lappend result [testcursor arrow] + lappend result [testcursor heart] set z 32 - lappend result [testcursor arrow] + lappend result [testcursor heart] destroy .b - lappend result [testcursor arrow] + lappend result [testcursor heart] set y bogus set result } {{{1 3}} {{1 2}} {{1 1}} {}} @@ -101,16 +137,3 @@ destroy .t # cleanup ::tcltest::cleanupTests return - - - - - - - - - - - - - |