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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the "image" command and the
  2. # other procedures in the file tkImage.c.  It is organized in the
  3. # standard fashion for Tcl tests.
  4. #
  5. # Copyright (c) 1994 The Regents of the University of California.
  6. # Copyright (c) 1994 Sun Microsystems, Inc.
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # All rights reserved.
  9. #
  10. # RCS: @(#) $Id: image.test,v 1.8.2.1 2003/09/17 23:45:05 dgp Exp $
  11. package require tcltest 2.1
  12. namespace import -force tcltest::configure
  13. namespace import -force tcltest::testsDirectory
  14. configure -testdir [file join [pwd] [file dirname [info script]]]
  15. configure -loadfile [file join [testsDirectory] constraints.tcl]
  16. tcltest::loadTestedCommands
  17. namespace import -force tcltest::interpreter
  18. namespace import -force tcltest::makeFile
  19. namespace import -force tcltest::removeFile
  20. eval image delete [image names]
  21. canvas .c -highlightthickness 2
  22. pack .c
  23. update
  24. test image-1.1 {Tk_ImageCmd procedure, "create" option} {
  25.     list [catch image msg] $msg
  26. } {1 {wrong # args: should be "image option ?args?"}}
  27. test image-1.2 {Tk_ImageCmd procedure, "create" option} {
  28.     list [catch {image gorp} msg] $msg
  29. } {1 {bad option "gorp": must be create, delete, height, inuse, names, type, types, or width}}
  30. test image-1.3 {Tk_ImageCmd procedure, "create" option} {
  31.     list [catch {image create} msg] $msg
  32. } {1 {wrong # args: should be "image create type ?name? ?options?"}}
  33. test image-1.4 {Tk_ImageCmd procedure, "create" option} {
  34.     list [catch {image c bad_type} msg] $msg
  35. } {1 {image type "bad_type" doesn't exist}}
  36. test image-1.5 {Tk_ImageCmd procedure, "create" option} testImageType {
  37.     list [image create test myimage] [image names]
  38. } {myimage myimage}
  39. test image-1.6 {Tk_ImageCmd procedure, "create" option} testImageType {
  40.     scan [image create test] image%d first
  41.     image create test myimage
  42.     scan [image create test -variable x] image%d second
  43.     expr $second-$first
  44. } {1}
  45. test image-1.7 {Tk_ImageCmd procedure, "create" option} testImageType {
  46.     image delete myimage
  47.     image create test myimage -variable x
  48.     .c create image 100 50 -image myimage
  49.     .c create image 100 150 -image myimage
  50.     update
  51.     set x {}
  52.     image create test myimage -variable x
  53.     update
  54.     set x
  55. } {{myimage free} {myimage free} {myimage delete} {myimage get} {myimage get} {myimage display 0 0 30 15 30 30} {myimage display 0 0 30 15 30 130}}
  56. test image-1.8 {Tk_ImageCmd procedure, "create" option} testImageType {
  57.     .c delete all
  58.     image create test myimage -variable x
  59.     .c create image 100 50 -image myimage
  60.     .c create image 100 150 -image myimage
  61.     image delete myimage
  62.     update
  63.     set x {}
  64.     image create test myimage -variable x
  65.     update
  66.     set x
  67. } {{myimage get} {myimage get} {myimage display 0 0 30 15 30 30} {myimage display 0 0 30 15 30 130}}
  68. test image-1.9 {Tk_ImageCmd procedure, "create" option} testImageType {
  69.     .c delete all
  70.     eval image delete [image names]
  71.     list [catch {image create test -badName foo} msg] $msg [image names]
  72. } {1 {bad option name "-badName"} {}}
  73. test image-1.10 {Tk_ImageCmd procedure, "create" option with same name as main window} {
  74.     set script [makeFile {
  75. update
  76. puts [list [catch {image create photo .} msg] $msg]
  77. exit
  78.     } script]
  79.     set x [list [catch {exec [interpreter] <$script} msg] $msg]
  80.     removeFile script
  81.     set x
  82. } {0 {1 {images may not be named the same as the main window}}}
  83. test image-1.11 {Tk_ImageCmd procedure, "create" option with same name as main window after renaming} {
  84.     set script [makeFile {
  85. update
  86. puts [list [catch {rename . foo;image create photo foo} msg] $msg]
  87. exit
  88.     } script]
  89.     set x [list [catch {exec [interpreter] <$script} msg] $msg]
  90.     removeFile script
  91.     set x
  92. } {0 {1 {images may not be named the same as the main window}}}
  93. test image-1.11 {Tk_ImageCmd, "create" option: do not generated command name in use} -setup {
  94.     set i [image create bitmap]
  95.     regexp {^image(d+)$} $i -> serial
  96.     incr serial
  97.     proc image$serial {} {return works}
  98.     set j [image create bitmap]
  99. } -body {
  100.     image$serial
  101. } -cleanup {
  102.     rename image$serial {}
  103.     image delete $i $j
  104. } -result works
  105. test image-2.1 {Tk_ImageCmd procedure, "delete" option} {
  106.     list [catch {image delete} msg] $msg
  107. } {0 {}}
  108. test image-2.2 {Tk_ImageCmd procedure, "delete" option} testImageType {
  109.     .c delete all
  110.     eval image delete [image names]
  111.     image create test myimage
  112.     image create test img2
  113.     set result {}
  114.     lappend result [lsort [image names]]
  115.     image d myimage img2
  116.     lappend result [image names]
  117. } {{img2 myimage} {}}
  118. test image-2.3 {Tk_ImageCmd procedure, "delete" option} testImageType {
  119.     .c delete all
  120.     eval image delete [image names]
  121.     image create test myimage
  122.     image create test img2
  123.     list [catch {image delete myimage gorp img2} msg] $msg [image names]
  124. } {1 {image "gorp" doesn't exist} img2}
  125. test image-3.1 {Tk_ImageCmd procedure, "height" option} {
  126.     list [catch {image height} msg] $msg
  127. } {1 {wrong # args: should be "image height name"}}
  128. test image-3.2 {Tk_ImageCmd procedure, "height" option} {
  129.     list [catch {image height a b} msg] $msg
  130. } {1 {wrong # args: should be "image height name"}}
  131. test image-3.3 {Tk_ImageCmd procedure, "height" option} {
  132.     list [catch {image height foo} msg] $msg
  133. } {1 {image "foo" doesn't exist}}
  134. test image-3.4 {Tk_ImageCmd procedure, "height" option} testImageType {
  135.     image create test myimage
  136.     set x [image h myimage]
  137.     myimage changed 0 0 0 0 60 50
  138.     list $x [image height myimage]
  139. } {15 50}
  140. test image-4.1 {Tk_ImageCmd procedure, "names" option} {
  141.     list [catch {image names x} msg] $msg
  142. } {1 {wrong # args: should be "image names"}}
  143. test image-4.2 {Tk_ImageCmd procedure, "names" option} testImageType {
  144.     .c delete all
  145.     eval image delete [image names]
  146.     image create test myimage
  147.     image create test img2
  148.     image create test 24613
  149.     lsort [image names]
  150. } {24613 img2 myimage}
  151. test image-4.3 {Tk_ImageCmd procedure, "names" option} {
  152.     .c delete all
  153.     eval image delete [image names]
  154.     lsort [image names]
  155. } {}
  156. test image-5.1 {Tk_ImageCmd procedure, "type" option} {
  157.     list [catch {image type} msg] $msg
  158. } {1 {wrong # args: should be "image type name"}}
  159. test image-5.2 {Tk_ImageCmd procedure, "type" option} {
  160.     list [catch {image type a b} msg] $msg
  161. } {1 {wrong # args: should be "image type name"}}
  162. test image-5.3 {Tk_ImageCmd procedure, "type" option} {
  163.     list [catch {image type foo} msg] $msg
  164. } {1 {image "foo" doesn't exist}}
  165. test image-5.4 {Tk_ImageCmd procedure, "type" option} testImageType {
  166.     image create test myimage
  167.     image type myimage
  168. } {test}
  169. test image-5.5 {Tk_ImageCmd procedure, "type" option} testImageType {
  170.     image create test myimage
  171.     .c create image 50 50 -image myimage
  172.     image delete myimage
  173.     image type myimage
  174. } {}
  175. test image-6.1 {Tk_ImageCmd procedure, "types" option} {
  176.     list [catch {image types x} msg] $msg
  177. } {1 {wrong # args: should be "image types"}}
  178. test image-6.2 {Tk_ImageCmd procedure, "types" option} testImageType {
  179.     lsort [image types]
  180. } {bitmap photo test}
  181. test image-7.1 {Tk_ImageCmd procedure, "width" option} {
  182.     list [catch {image width} msg] $msg
  183. } {1 {wrong # args: should be "image width name"}}
  184. test image-7.2 {Tk_ImageCmd procedure, "width" option} {
  185.     list [catch {image width a b} msg] $msg
  186. } {1 {wrong # args: should be "image width name"}}
  187. test image-7.3 {Tk_ImageCmd procedure, "width" option} {
  188.     list [catch {image width foo} msg] $msg
  189. } {1 {image "foo" doesn't exist}}
  190. test image-7.4 {Tk_ImageCmd procedure, "width" option} testImageType {
  191.     image create test myimage
  192.     set x [image w myimage]
  193.     myimage changed 0 0 0 0 60 50
  194.     list $x [image width myimage]
  195. } {30 60}
  196. test image-8.1 {Tk_ImageCmd procedure, "inuse" option} testImageType {
  197.     catch {image delete myimage2}
  198.     image create test myimage2
  199.     set res {}
  200.     lappend res [image inuse myimage2]
  201.     catch {destroy .b}
  202.     button .b -image myimage2
  203.     lappend res [image inuse myimage2]
  204.     catch {destroy .b}
  205.     image delete myimage2
  206.     set res
  207. } [list 0 1]
  208.     
  209. test image-9.1 {Tk_ImageChanged procedure} testImageType {
  210.     .c delete all
  211.     eval image delete [image names]
  212.     image create test foo -variable x
  213.     .c create image 50 50 -image foo
  214.     update
  215.     set x {}
  216.     foo changed 5 6 7 8 30 15
  217.     update
  218.     set x
  219. } {{foo display 5 6 7 8 30 30}}
  220. test image-9.2 {Tk_ImageChanged procedure} testImageType {
  221.     .c delete all
  222.     eval image delete [image names]
  223.     image create test foo -variable x
  224.     .c create image 50 50 -image foo
  225.     .c create image 90 100 -image foo
  226.     update
  227.     set x {}
  228.     foo changed 5 6 7 8 30 15
  229.     update
  230.     set x
  231. } {{foo display 5 6 25 9 30 30} {foo display 0 0 12 14 65 74}}
  232. test image-10.1 {Tk_GetImage procedure} {
  233.     list [catch {.c create image 100 10 -image bad_name} msg] $msg
  234. } {1 {image "bad_name" doesn't exist}}
  235. test image-10.2 {Tk_GetImage procedure} testImageType {
  236.     image create test mytest
  237.     catch {destroy .l}
  238.     label .l -image mytest
  239.     image delete  mytest
  240.     set result [list [catch {label .l2 -image mytest} msg] $msg]
  241.     destroy .l
  242.     set result
  243. } {1 {image "mytest" doesn't exist}}
  244. test image-11.1 {Tk_FreeImage procedure} testImageType {
  245.     .c delete all
  246.     eval image delete [image names]
  247.     image create test foo -variable x
  248.     .c create image 50 50 -image foo -tags i1
  249.     .c create image 90 100 -image foo -tags i2
  250.     pack forget .c
  251.     update
  252.     set x {}
  253.     .c delete i1
  254.     pack .c
  255.     update
  256.     list [image names] $x
  257. } {foo {{foo free} {foo display 0 0 30 15 103 121}}}
  258. test image-11.2 {Tk_FreeImage procedure} testImageType {
  259.     .c delete all
  260.     eval image delete [image names]
  261.     image create test foo -variable x
  262.     .c create image 50 50 -image foo -tags i1
  263.     image delete foo
  264.     update
  265.     set names [image names]
  266.     set x {}
  267.     .c delete i1
  268.     pack forget .c
  269.     pack .c
  270.     update
  271.     list $names [image names] $x
  272. } {foo {} {}}
  273. # Non-portable, apparently due to differences in rounding:
  274. test image-12.1 {Tk_RedrawImage procedure, redisplay area clipping} 
  275. {testImageType nonPortable} {
  276.     .c delete all
  277.     eval image delete [image names]
  278.     image create test foo -variable x
  279.     .c create image 50 60 -image foo -tags i1 -anchor nw
  280.     update
  281.     .c create rectangle 30 40 55 65 -width 0 -fill black -outline {}
  282.     set x {}
  283.     update
  284.     set x
  285. } {{foo display 0 0 5 5 50 50}}
  286. test image-12.2 {Tk_RedrawImage procedure, redisplay area clipping} 
  287. {testImageType nonPortable} {
  288.     .c delete all
  289.     eval image delete [image names]
  290.     image create test foo -variable x
  291.     .c create image 50 60 -image foo -tags i1 -anchor nw
  292.     update
  293.     .c create rectangle 60 40 100 65 -width 0 -fill black -outline {}
  294.     set x {}
  295.     update
  296.     set x
  297. } {{foo display 10 0 20 5 30 50}}
  298. test image-12.3 {Tk_RedrawImage procedure, redisplay area clipping} 
  299. {testImageType nonPortable} {
  300.     .c delete all
  301.     eval image delete [image names]
  302.     image create test foo -variable x
  303.     .c create image 50 60 -image foo -tags i1 -anchor nw
  304.     update
  305.     .c create rectangle 60 70 100 200 -width 0 -fill black -outline {}
  306.     set x {}
  307.     update
  308.     set x
  309. } {{foo display 10 10 20 5 30 30}}
  310. test image-12.4 {Tk_RedrawImage procedure, redisplay area clipping} 
  311. {testImageType nonPortable} {
  312.     .c delete all
  313.     eval image delete [image names]
  314.     image create test foo -variable x
  315.     .c create image 50 60 -image foo -tags i1 -anchor nw
  316.     update
  317.     .c create rectangle 30 70 55 200 -width 0 -fill black -outline {}
  318.     set x {}
  319.     update
  320.     set x
  321. } {{foo display 0 10 5 5 50 30}}
  322. test image-12.5 {Tk_RedrawImage procedure, redisplay area clipping} 
  323. {testImageType nonPortable} {
  324.     .c delete all
  325.     eval image delete [image names]
  326.     image create test foo -variable x
  327.     .c create image 50 60 -image foo -tags i1 -anchor nw
  328.     update
  329.     .c create rectangle 10 20 120 130 -width 0 -fill black -outline {}
  330.     set x {}
  331.     update
  332.     set x
  333. } {{foo display 0 0 30 15 70 70}}
  334. test image-12.6 {Tk_RedrawImage procedure, redisplay area clipping} 
  335. {testImageType nonPortable} {
  336.     .c delete all
  337.     eval image delete [image names]
  338.     image create test foo -variable x
  339.     .c create image 50 60 -image foo -tags i1 -anchor nw
  340.     update
  341.     .c create rectangle 55 65 75 70 -width 0 -fill black -outline {}
  342.     set x {}
  343.     update
  344.     set x
  345. } {{foo display 5 5 20 5 30 30}}
  346. test image-13.1 {Tk_SizeOfImage procedure} testImageType {
  347.     eval image delete [image names]
  348.     image create test foo -variable x
  349.     set result [list [image width foo] [image height foo]]
  350.     foo changed 0 0 0 0 85 60
  351.     lappend result [image width foo] [image height foo]
  352. } {30 15 85 60}
  353. test image-13.2 {DeleteImage procedure} testImageType {
  354.     .c delete all
  355.     eval image delete [image names]
  356.     image create test foo -variable x
  357.     .c create image 50 50 -image foo -tags i1
  358.     .c create image 90 100 -image foo -tags i2
  359.     set x {}
  360.     image delete foo
  361.     lappend x | [image names] |
  362.     image delete foo
  363.     lappend x | [image names] |
  364. } {{foo free} {foo free} {foo delete} | foo | | foo |}
  365. catch {image delete hidden}
  366. set l [image names]
  367. set h [interp hidden]
  368. test image-14.1 {image command vs hidden commands} {
  369.     catch {image delete hidden}
  370.     image create photo hidden
  371.     interp hide {} hidden
  372.     image delete hidden
  373.     list [image names] [interp hidden]
  374. } [list $l $h]
  375.     
  376. destroy .c
  377. eval image delete [image names]
  378. # cleanup
  379. ::tcltest::cleanupTests
  380. return