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