cursor.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:8k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the procedures in the file
  2. # tkCursor.c.  It is organized in the standard white-box fashion for
  3. # Tcl tests.
  4. #
  5. # Copyright (c) 1998 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: cursor.test,v 1.8.2.1 2004/01/28 23:37:23 patthoyts Exp $
  10. package require tcltest 2.1
  11. namespace import -force tcltest::configure
  12. namespace import -force tcltest::testsDirectory
  13. configure -testdir [file join [pwd] [file dirname [info script]]]
  14. configure -loadfile [file join [testsDirectory] constraints.tcl]
  15. tcltest::loadTestedCommands
  16. testConstraint testcursor [llength [info commands testcursor]]
  17. test cursor-1.1 {Tk_AllocCursorFromObj - converting internal reps} {testcursor} {
  18.     set x watch
  19.     lindex $x 0
  20.     destroy .b1
  21.     button .b1 -cursor $x
  22.     lindex $x 0
  23.     testcursor watch
  24. } {{1 0}}
  25. test cursor-1.2 {Tk_AllocCursorFromObj - discard stale cursor} {testcursor} {
  26.     set x watch
  27.     destroy .b1 .b2
  28.     button .b1 -cursor $x
  29.     destroy .b1
  30.     set result {}
  31.     lappend result [testcursor watch]
  32.     button .b2 -cursor $x
  33.     lappend result [testcursor watch]
  34. } {{} {{1 1}}}
  35. test cursor-1.3 {Tk_AllocCursorFromObj - reuse existing cursor} {testcursor} {
  36.     set x watch
  37.     destroy .b1 .b2
  38.     button .b1 -cursor $x
  39.     set result {}
  40.     lappend result [testcursor watch]
  41.     button .b2 -cursor $x
  42.     pack .b1 .b2 -side top
  43.     lappend result [testcursor watch]
  44. } {{{1 1}} {{2 1}}}
  45. test cursor-2.1 {Tk_GetCursor procedure} {
  46.     destroy .b1
  47.     list [catch {button .b1 -cursor bad_name} msg] $msg
  48. } {1 {bad cursor spec "bad_name"}}
  49. test cursor-2.2 {Tk_GetCursor procedure} {
  50.     destroy .b1
  51.     list [catch {button .b1 -cursor @xyzzy} msg] $msg
  52. } {1 {bad cursor spec "@xyzzy"}}
  53. # Next two tests need a helper file with a very specific name and
  54. # controlled format.
  55. set wincur(data_octal) {
  56.     000 000 002 000 001 000 040 040 000 000 007 000 007 000 060 001
  57.     000 000 026 000 000 000 050 000 000 000 040 000 000 000 100 000
  58.     000 000 001 000 001 000 000 000 000 000 000 000 000 000 000 000
  59.     000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
  60.     000 000 377 377 377 000 000 000 000 000 000 000 000 000 000 000
  61.     000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
  62.     000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
  63.     000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
  64.     000 000 000 000 000 000 000 000 000 000 160 016 000 000 170 036
  65.     000 000 174 076 000 000 076 174 000 000 037 370 000 000 017 360
  66.     000 000 007 340 000 000 007 340 000 000 017 360 000 000 037 370
  67.     000 000 076 174 000 000 174 076 000 000 170 036 000 000 160 016
  68.     000 000 000 000 000 000 377 377 377 377 377 377 377 377 377 377
  69.     377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
  70.     377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
  71.     377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
  72.     377 377 377 377 377 377 017 360 377 377 007 340 377 377 003 300
  73.     377 377 001 200 377 377 200 001 377 377 300 003 377 377 340 007
  74.     377 377 360 017 377 377 360 017 377 377 340 007 377 377 300 003
  75.     377 377 200 001 377 377 001 200 377 377 003 300 377 377 007 340
  76.     377 377 017 360 377 377
  77. }
  78. set wincur(data_binary) {}
  79. foreach wincur(num) $wincur(data_octal) {
  80.     append wincur(data_binary) [binary format c 0$wincur(num)]
  81. }
  82. set wincur(dir) [::tcltest::makeDirectory {dir with spaces}]
  83. set wincur(file) [::tcltest::makeFile $wincur(data_binary) "test file.cur" $wincur(dir)]
  84. test cursor-2.3 {Tk_GetCursor procedure: cursor specs are lists} {pcOnly} {
  85.     destroy .b1
  86.     button .b1 -cursor [list @$wincur(file)]
  87. } {.b1}
  88. test cursor-2.4 {Tk_GetCursor procedure: cursor specs are lists} {pcOnly} {
  89.     destroy .b1
  90.     button .b1 -cursor @[regsub -all {[][ \{}""$#]} $wincur(file) {\&}]
  91. } {.b1}
  92. ::tcltest::removeDirectory $wincur(dir)
  93. unset wincur
  94. test cursor-3.1 {Tk_FreeCursorFromObj - reference counts} {testcursor} {
  95.     set x heart
  96.     destroy .b1 .b2 .b3
  97.     button .b1 -cursor $x
  98.     button .b3 -cursor $x
  99.     button .b2 -cursor $x
  100.     set result {}
  101.     lappend result [testcursor heart]
  102.     destroy .b1
  103.     lappend result [testcursor heart]
  104.     destroy .b2
  105.     lappend result [testcursor heart]
  106.     destroy .b3
  107.     lappend result [testcursor heart]
  108. } {{{3 1}} {{2 1}} {{1 1}} {}}
  109. test cursor-4.1 {FreeCursorObjProc} {testcursor} {
  110.     destroy .b
  111.     set x [format heart]
  112.     button .b -cursor $x
  113.     set y [format heart]
  114.     .b configure -cursor $y
  115.     set z [format heart]
  116.     .b configure -cursor $z
  117.     set result {}
  118.     lappend result [testcursor heart]
  119.     set x red
  120.     lappend result [testcursor heart]
  121.     set z 32
  122.     lappend result [testcursor heart]
  123.     destroy .b
  124.     lappend result [testcursor heart]
  125.     set y bogus
  126.     set result
  127. } {{{1 3}} {{1 2}} {{1 1}} {}}
  128. # -------------------------------------------------------------------------
  129. test cursor-5.1 {assert consistent cursor configuration command} 
  130.     -setup { button .b } 
  131.     -body {
  132.         list [catch {.b configure -cursor {watch red black}} msg] $msg
  133.     } 
  134.     -cleanup {destroy .b} 
  135.     -result {0 {}}
  136. # -------------------------------------------------------------------------
  137. # Check for the standard set of cursors.
  138. set n 0
  139. foreach cursor {
  140.     X_cursor
  141.     arrow
  142.     based_arrow_down
  143.     based_arrow_up
  144.     boat
  145.     bogosity
  146.     bottom_left_corner
  147.     bottom_right_corner
  148.     bottom_side
  149.     bottom_tee
  150.     box_spiral
  151.     center_ptr
  152.     circle
  153.     clock
  154.     coffee_mug
  155.     cross
  156.     cross_reverse
  157.     crosshair
  158.     diamond_cross
  159.     dot
  160.     dotbox
  161.     double_arrow
  162.     draft_large
  163.     draft_small
  164.     draped_box
  165.     exchange
  166.     fleur
  167.     gobbler
  168.     gumby
  169.     hand1
  170.     hand2
  171.     heart
  172.     icon
  173.     iron_cross
  174.     left_ptr
  175.     left_side
  176.     left_tee
  177.     leftbutton
  178.     ll_angle
  179.     lr_angle
  180.     man
  181.     middlebutton
  182.     mouse
  183.     pencil
  184.     pirate
  185.     plus
  186.     question_arrow
  187.     right_ptr
  188.     right_side
  189.     right_tee
  190.     rightbutton
  191.     rtl_logo
  192.     sailboat
  193.     sb_down_arrow
  194.     sb_h_double_arrow
  195.     sb_left_arrow
  196.     sb_right_arrow
  197.     sb_up_arrow
  198.     sb_v_double_arrow
  199.     shuttle
  200.     sizing
  201.     spider
  202.     spraycan
  203.     star
  204.     target
  205.     tcross
  206.     top_left_arrow
  207.     top_left_corner
  208.     top_right_corner
  209.     top_side
  210.     top_tee
  211.     trek
  212.     ul_angle
  213.     umbrella
  214.     ur_angle
  215.     watch
  216.     xterm
  217. } {
  218.     test cursor-6.$n {check cursor $cursor} 
  219.         -setup {button .b -text $cursor} 
  220.         -body {
  221.             list [catch {.b configure -cursor $cursor} msg] $msg
  222.         } 
  223.         -cleanup {destroy .b} 
  224.         -result {0 {}}
  225.     incr n
  226. }
  227. unset n
  228. # -------------------------------------------------------------------------
  229. # Check the Windows specific cursors
  230. set n 0
  231. foreach cursor {
  232.     no
  233.     starting
  234.     size
  235.     size_ne_sw
  236.     size_ns
  237.     size_nw_se
  238.     size_we
  239.     uparrow
  240.     wait
  241. } {
  242.     test cursor-7.$n {check cursor $cursor} 
  243.         -constraints {pcOnly} 
  244.         -setup {button .b -text $cursor} 
  245.         -body {
  246.             list [catch {.b configure -cursor $cursor} msg] $msg
  247.         } 
  248.         -cleanup {destroy .b} 
  249.         -result {0 {}}
  250.     incr n
  251. }
  252. unset n
  253. # -------------------------------------------------------------------------
  254. # Check the Mac specific cursors
  255. set n 0
  256. foreach cursor {
  257.     text
  258.     cross-hair
  259. } {
  260.     test cursor-8.$n {check cursor $cursor} 
  261.         -constraints {macOnly} 
  262.         -setup {button .b -text $cursor} 
  263.         -body {
  264.             list [catch {.b configure -cursor $cursor} msg] $msg
  265.         } 
  266.         -cleanup {destroy .b} 
  267.         -result {0 {}}
  268.     incr n
  269. }
  270. unset n
  271. # -------------------------------------------------------------------------
  272. destroy .t
  273. # cleanup
  274. ::tcltest::cleanupTests
  275. return