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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out images of type "bitmap" (i.e.,
  2. # the procedures in the file tkImgBmap.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-1995 Sun Microsystems, Inc.
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # All rights reserved.
  9. #
  10. # RCS: @(#) $Id: imgBmap.test,v 1.4 2002/07/13 21:52:34 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::makeFile
  18. namespace import -force tcltest::removeFile
  19. set data1 {#define foo_width 16
  20. #define foo_height 16
  21. #define foo_x_hot 3
  22. #define foo_y_hot 3
  23. static unsigned char foo_bits[] = {
  24.    0xff, 0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
  25.    0x81, 0x81, 0xff, 0xff, 0xff, 0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
  26.    0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xff, 0xff};
  27. }
  28. set data2 {
  29.     #define foo2_width 16
  30.     #define foo2_height 16
  31.     static char foo2_bits[] = {
  32.        0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  33.        0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  34.        0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0xff};
  35. }
  36. makeFile $data1 foo.bm
  37. makeFile $data2 foo2.bm
  38. eval image delete [image names]
  39. canvas .c
  40. pack .c
  41. update
  42. image create bitmap i1
  43. .c create image 200 100 -image i1
  44. update
  45. proc bgerror msg {
  46.     global errMsg
  47.     set errMsg $msg
  48. }
  49. test imageBmap-1.1 {options for bitmap images} {
  50.     image create bitmap i1 -background #123456
  51.     lindex [i1 configure -background] 4
  52. } {#123456}
  53. test imageBmap-1.2 {options for bitmap images} {
  54.     set errMsg {}
  55.     image create bitmap i1 -background lousy
  56.     update
  57.     list $errMsg $errorInfo
  58. } {{unknown color name "lousy"} {unknown color name "lousy"
  59.     (while configuring image "i1")}}
  60. test imageBmap-1.3 {options for bitmap images} {
  61.     image create bitmap i1 -data $data1
  62.     lindex [i1 configure -data] 4
  63. } $data1
  64. test imageBmap-1.4 {options for bitmap images} {
  65.     list [catch {image create bitmap i1 -data bogus} msg] $msg
  66. } {1 {format error in bitmap data}}
  67. test imageBmap-1.5 {options for bitmap images} {
  68.     image create bitmap i1 -file foo.bm
  69.     lindex [i1 configure -file] 4
  70. } foo.bm
  71. test imageBmap-1.6 {options for bitmap images} {
  72.     list [catch {image create bitmap i1 -file bogus} msg] [string tolower $msg]
  73. } {1 {couldn't read bitmap file "bogus": no such file or directory}}
  74. test imageBmap-1.7 {options for bitmap images} {
  75.     image create bitmap i1 -foreground #00ff00
  76.     lindex [i1 configure -foreground] 4
  77. } {#00ff00}
  78. test imageBmap-1.8 {options for bitmap images} {
  79.     set errMsg {}
  80.     image create bitmap i1 -foreground bad_color
  81.     update
  82.     list $errMsg $errorInfo
  83. } {{unknown color name "bad_color"} {unknown color name "bad_color"
  84.     (while configuring image "i1")}}
  85. test imageBmap-1.9 {options for bitmap images} {
  86.     image create bitmap i1 -data $data1 -maskdata $data2
  87.     lindex [i1 configure -maskdata] 4
  88. } $data2
  89. test imageBmap-1.10 {options for bitmap images} {
  90.     list [catch {image create bitmap i1 -data $data1 -maskdata bogus} msg] $msg
  91. } {1 {format error in bitmap data}}
  92. test imageBmap-1.11 {options for bitmap images} {
  93.     image create bitmap i1 -file foo.bm -maskfile foo2.bm
  94.     lindex [i1 configure -maskfile] 4
  95. } foo2.bm
  96. test imageBmap-1.12 {options for bitmap images} {
  97.     list [catch {image create bitmap i1 -data $data1 -maskfile bogus} msg] 
  98.     [string tolower $msg]
  99. } {1 {couldn't read bitmap file "bogus": no such file or directory}}
  100. rename bgerror {}
  101. test imageBmap-2.1 {ImgBmapCreate procedure} {
  102.     eval image delete [image names]
  103.     .c delete all
  104.     list [catch {image create bitmap -gorp dum} msg] $msg [image names]
  105. } {1 {unknown option "-gorp"} {}}
  106. test imageBmap-2.2 {ImgBmapCreate procedure} {
  107.     eval image delete [image names]
  108.     .c delete all
  109.     image create bitmap image1
  110.     list [info commands image1] [image names] 
  111.     [image width image1] [image height image1] 
  112.     [lindex [image1 configure -foreground] 4] 
  113.     [lindex [image1 configure -background] 4]
  114. } {image1 image1 0 0 #000000 {}}
  115. test imageBmap-3.1 {ImgBmapConfigureMaster procedure, memory de-allocation} {
  116.     image create bitmap i1 -data $data1
  117.     i1 configure -data $data1
  118. } {}
  119. test imageBmap-3.2 {ImgBmapConfigureMaster procedure} {
  120.     image create bitmap i1 -data $data1
  121.     list [catch {i1 configure -data bogus} msg] $msg [image width i1] 
  122.     [image height i1]
  123. } {1 {format error in bitmap data} 16 16}
  124. test imageBmap-3.3 {ImgBmapConfigureMaster procedure, memory de-allocation} {
  125.     image create bitmap i1 -data $data1 -maskdata $data2
  126.     i1 configure -maskdata $data2
  127. } {}
  128. test imageBmap-3.4 {ImgBmapConfigureMaster procedure} {
  129.     image create bitmap i1
  130.     list [catch {i1 configure -maskdata $data2} msg] $msg
  131. } {1 {can't have mask without bitmap}}
  132. test imageBmap-3.5 {ImgBmapConfigureMaster procedure} {
  133.     list [catch {image create bitmap i1 -data $data1 -maskdata {
  134. #define foo_width 8
  135. #define foo_height 16
  136. static char foo_bits[] = {
  137.    0xff, 0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
  138.    0x81, 0x81, 0xff, 0xff, 0xff, 0xff, 0x81, 0x81};
  139. }
  140.     } msg] $msg
  141. } {1 {bitmap and mask have different sizes}}
  142. test imageBmap-3.6 {ImgBmapConfigureMaster procedure} {
  143.     list [catch {image create bitmap i1 -data $data1 -maskdata {
  144. #define foo_width 16
  145. #define foo_height 8
  146. static char foo_bits[] = {
  147.    0xff, 0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
  148.    0x81, 0x81, 0xff, 0xff, 0xff, 0xff, 0x81, 0x81};
  149. }
  150.     } msg] $msg
  151. } {1 {bitmap and mask have different sizes}}
  152. test imageBmap-3.7 {ImgBmapConfigureMaster procedure} {
  153.     image create bitmap i1 -data $data1
  154.     .c create image 100 100 -image i1 -tags i1.1 -anchor nw
  155.     .c create image 200 100 -image i1 -tags i1.2 -anchor nw
  156.     update
  157.     i1 configure -data {
  158. #define foo2_height 14
  159. #define foo2_width 15
  160. static char foo2_bits[] = {
  161.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  162.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  163.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  164.    0xff, 0xff};
  165.     }
  166.     update
  167.     list [image width i1] [image height i1] [.c bbox i1.1] [.c bbox i1.2]
  168. } {15 14 {100 100 115 114} {200 100 215 114}}
  169. test imageBmap-4.1 {ImgBmapConfigureInstance procedure: check error handling} {
  170.     proc bgerror args {}
  171.     .c delete all
  172.     image create bitmap i1 -file foo.bm
  173.     .c create image 100 100 -image i1
  174.     update
  175.     i1 configure -foreground bogus
  176.     update
  177. } {}
  178. test imageBmap-5.1 {GetBitmapData procedure} {
  179.     list [catch {image create bitmap -file ~bad_user/a/b} msg] 
  180.     [string tolower $msg]
  181. } {1 {user "bad_user" doesn't exist}}
  182. test imageBmap-5.2 {GetBitmapData procedure} {
  183.     list [catch {image create bitmap -file bad_name} msg] [string tolower $msg]
  184. } {1 {couldn't read bitmap file "bad_name": no such file or directory}}
  185. test imageBmap-5.3 {GetBitmapData procedure} {
  186.     eval image delete [image names]
  187.     .c delete all
  188.     list [catch {image create bitmap -data { }} msg] $msg
  189. } {1 {format error in bitmap data}}
  190. test imageBmap-5.4 {GetBitmapData procedure} {
  191.     eval image delete [image names]
  192.     .c delete all
  193.     list [catch {image create bitmap -data {#define foo2_width}} msg] $msg
  194. } {1 {format error in bitmap data}}
  195. test imageBmap-5.5 {GetBitmapData procedure} {
  196.     eval image delete [image names]
  197.     .c delete all
  198.     list [catch {image create bitmap -data {#define foo2_width gorp}} msg] $msg
  199. } {1 {format error in bitmap data}}
  200. test imageBmap-5.6 {GetBitmapData procedure} {
  201.     eval image delete [image names]
  202.     .c delete all
  203.     list [catch {image create bitmap -data {#define foo2_width 1.4}} msg] $msg
  204. } {1 {format error in bitmap data}}
  205. test imageBmap-5.7 {GetBitmapData procedure} {
  206.     eval image delete [image names]
  207.     .c delete all
  208.     list [catch {image create bitmap -data {#define foo2_height}} msg] $msg
  209. } {1 {format error in bitmap data}}
  210. test imageBmap-5.8 {GetBitmapData procedure} {
  211.     eval image delete [image names]
  212.     .c delete all
  213.     list [catch {image create bitmap -data {#define foo2_height gorp}} msg] $msg
  214. } {1 {format error in bitmap data}}
  215. test imageBmap-5.9 {GetBitmapData procedure} {
  216.     eval image delete [image names]
  217.     .c delete all
  218.     list [catch {image create bitmap -data {#define foo2_height 1.4}} msg] $msg
  219. } {1 {format error in bitmap data}}
  220. test imageBmap-5.10 {GetBitmapData procedure} {
  221.     eval image delete [image names]
  222.     .c delete all
  223.     image create bitmap i1 -data {
  224. #define foo2_height 14
  225. #define foo2_width 15 xx _widtg 18 xwidth 18 _heighz 18 xheight 18
  226. static char foo2_bits[] = {
  227.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  228.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  229.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  230.    0xff, 0xff};
  231.     }
  232.     list [image width i1] [image height i1]
  233. } {15 14}
  234. test imageBmap-5.11 {GetBitmapData procedure} {
  235.     eval image delete [image names]
  236.     .c delete all
  237.     image create bitmap i1 -data {
  238. _height 14 _width 15
  239. char {
  240.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  241.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  242.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  243.    0xff, 0xff}
  244.     }
  245.     list [image width i1] [image height i1]
  246. } {15 14}
  247. test imageBmap-5.12 {GetBitmapData procedure} {
  248.     eval image delete [image names]
  249.     .c delete all
  250.     list [catch {image create bitmap i1 -data {
  251. #define foo2_height 14
  252. #define foo2_width 15
  253. static short foo2_bits[] = {
  254.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  255.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  256.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  257.    0xff, 0xff};
  258.     }} msg] $msg
  259. } {1 {format error in bitmap data; looks like it's an obsolete X10 bitmap file}}
  260. test imageBmap-5.13 {GetBitmapData procedure} {
  261.     eval image delete [image names]
  262.     .c delete all
  263.     list [catch {image create bitmap i1 -data {
  264. #define foo2_height 16
  265. #define foo2_width 16
  266. static char foo2_bits[] =
  267.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  268.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  269.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  270.    0xff, 0xff;
  271.     }} msg] $msg
  272. } {1 {format error in bitmap data}}
  273. test imageBmap-5.14 {GetBitmapData procedure} {
  274.     eval image delete [image names]
  275.     .c delete all
  276.     list [catch {image create bitmap i1 -data {
  277. #define foo2_width 16
  278. static char foo2_bits[] = {
  279.    0xff, 0xff, 0xff, }}} msg] $msg
  280. } {1 {format error in bitmap data}}
  281. test imageBmap-5.15 {GetBitmapData procedure} {
  282.     eval image delete [image names]
  283.     .c delete all
  284.     list [catch {image create bitmap i1 -data {
  285. #define foo2_height 16
  286. static char foo2_bits[] = {
  287.    0xff, 0xff, 0xff, }}} msg] $msg
  288. } {1 {format error in bitmap data}}
  289. test imageBmap-5.16 {GetBitmapData procedure} {
  290.     eval image delete [image names]
  291.     .c delete all
  292.     list [catch {image create bitmap i1 -data {
  293. #define foo2_height 16
  294. #define foo2_width 16
  295. static char foo2_bits[] = {
  296.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  297.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  298.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  299.    0xff, foo};
  300.     }} msg] $msg
  301. } {1 {format error in bitmap data}}
  302. test imageBmap-5.17 {GetBitmapData procedure} {
  303.     eval image delete [image names]
  304.     .c delete all
  305.     list [catch {image create bitmap i1 -data "
  306. #define foo2_height 16
  307. #define foo2_width 16
  308. static char foo2_bits[] = {
  309.    0xff, 0xff, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  310.    0xff, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81,
  311.    0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81, 0xff, 0x81,
  312.    0xff
  313.     "} msg] $msg
  314. } {1 {format error in bitmap data}}
  315. test imageBmap-6.1 {NextBitmapWord procedure} {
  316.     eval image delete [image names]
  317.     .c delete all
  318.     list [catch {image create bitmap i1 -data {1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890}} msg] $msg
  319. } {1 {format error in bitmap data}}
  320. test imageBmap-6.2 {NextBitmapWord procedure} {
  321.     eval image delete [image names]
  322.     .c delete all
  323.     makeFile {1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890} foo3.bm
  324.     list [catch {image create bitmap i1 -file foo3.bm} msg] $msg
  325. } {1 {format error in bitmap data}}
  326. test imageBmap-6.3 {NextBitmapWord procedure} {
  327.     eval image delete [image names]
  328.     .c delete all
  329.     makeFile {   } foo3.bm
  330.     list [catch {image create bitmap i1 -file foo3.bm} msg] $msg
  331. } {1 {format error in bitmap data}}
  332. removeFile foo3.bm
  333. eval image delete [image names]
  334. .c delete all
  335. image create bitmap i1
  336. test imageBmap-7.1 {ImgBmapCmd procedure} {
  337.     list [catch {i1} msg] $msg
  338. } {1 {wrong # args: should be "i1 option ?arg arg ...?"}}
  339. test imageBmap-7.2 {ImgBmapCmd procedure, "cget" option} {
  340.     list [catch {i1 cget} msg] $msg
  341. } {1 {wrong # args: should be "i1 cget option"}}
  342. test imageBmap-7.3 {ImgBmapCmd procedure, "cget" option} {
  343.     list [catch {i1 cget a b} msg] $msg
  344. } {1 {wrong # args: should be "i1 cget option"}}
  345. test imageBmap-7.4 {ImgBmapCmd procedure, "cget" option} {
  346.     i1 co -foreground #123456
  347.     i1 cget -foreground
  348. } {#123456}
  349. test imageBmap-7.5 {ImgBmapCmd procedure, "cget" option} {
  350.     list [catch {i1 cget -stupid} msg] $msg
  351. } {1 {unknown option "-stupid"}}
  352. test imageBmap-7.6 {ImgBmapCmd procedure} {
  353.     llength [i1 configure]
  354. } {6}
  355. test imageBmap-7.7 {ImgBmapCmd procedure} {
  356.     i1 co -foreground #001122
  357.     i1 configure -foreground
  358. } {-foreground {} {} #000000 #001122}
  359. test imageBmap-7.8 {ImgBmapCmd procedure} {
  360.     list [catch {i1 configure -gorp} msg] $msg
  361. } {1 {unknown option "-gorp"}}
  362. test imageBmap-7.9 {ImgBmapCmd procedure} {
  363.     list [catch {i1 configure -foreground #221100 -background} msg] $msg
  364. } {1 {value for "-background" missing}}
  365. test imageBmap-7.10 {ImgBmapCmd procedure} {
  366.     list [catch {i1 gorp} msg] $msg
  367. } {1 {bad option "gorp": must be cget or configure}}
  368. test imageBmap-8.1 {ImgBmapGet/Free procedures, shared instances} {
  369.     eval image delete [image names]
  370.     .c delete all
  371.     image create bitmap i1 -data $data1
  372.     .c create image 50 100 -image i1 -tags i1.1
  373.     .c create image 150 100 -image i1 -tags i1.2
  374.     .c create image 250 100 -image i1 -tags i1.3
  375.     update
  376.     .c delete i1.1
  377.     i1 configure -background black
  378.     update
  379.     .c delete i1.2
  380.     i1 configure -background white
  381.     update
  382.     .c delete i1.3
  383.     i1 configure -background black
  384.     update
  385.     image delete i1
  386. } {}
  387. test imageBmap-9.1 {ImgBmapDisplay procedure, nothing to display} {
  388.     proc bgerror args {}
  389.     eval image delete [image names]
  390.     .c delete all
  391.     image create bitmap i1 -data $data1
  392.     .c create image 50 100 -image i1 -tags i1.1
  393.     i1 configure -data {}
  394.     update
  395. } {}
  396. test imageBmap-9.2 {ImgBmapDisplay procedure, nothing to display} {
  397.     proc bgerror args {}
  398.     eval image delete [image names]
  399.     .c delete all
  400.     image create bitmap i1 -data $data1
  401.     .c create image 50 100 -image i1 -tags i1.1
  402.     i1 configure -foreground bogus
  403.     update
  404. } {}
  405. if {[info exists bgerror]} {
  406.     rename bgerror {}
  407. }
  408. test imageBmap-10.1 {ImgBmapFree procedure, resource freeing} {
  409.     eval image delete [image names]
  410.     .c delete all
  411.     image create bitmap i1 -data $data1 -maskdata $data2 -foreground #112233 
  412.     -background #445566
  413.     .c create image 100 100 -image i1
  414.     update
  415.     .c delete all
  416.     image delete i1
  417. } {}
  418. test imageBmap-10.2 {ImgBmapFree procedures, unlinking} {
  419.     eval image delete [image names]
  420.     .c delete all
  421.     image create bitmap i1 -data $data1 -maskdata $data2 -foreground #112233 
  422.     -background #445566
  423.     .c create image 100 100 -image i1
  424.     button .b1 -image i1
  425.     button .b2 -image i1
  426.     button .b3 -image i1
  427.     pack .b1 .b2 .b3
  428.     update
  429.     destroy .b2
  430.     update
  431.     destroy .b3
  432.     update
  433.     destroy .b1
  434.     update
  435.     .c delete all
  436. } {}
  437. test imageBmap-11.1 {ImgBmapDelete procedure} {
  438.     image create bitmap i2 -file foo.bm -maskfile foo2.bm
  439.     image delete i2
  440.     info command i2
  441. } {}
  442. test imageBmap-11.2 {ImgBmapDelete procedure} {
  443.     image create bitmap i2 -file foo.bm -maskfile foo2.bm
  444.     rename i2 newi2
  445.     set x [list [info command i2] [info command new*] [newi2 cget -file]]
  446.     image delete i2
  447.     lappend x [info command new*]
  448. } {{} newi2 foo.bm {}}
  449. test imageBmap-12.1 {ImgBmapCmdDeletedProc procedure} {
  450.     image create bitmap i2 -file foo.bm -maskfile foo2.bm
  451.     rename i2 {}
  452.     list [lsearch -exact [image names] i2] [catch {i2 foo} msg] $msg
  453. } {-1 1 {invalid command name "i2"}}
  454. removeFile foo.bm
  455. removeFile foo2.bm
  456. destroy .c
  457. eval image delete [image names]
  458. # cleanup
  459. ::tcltest::cleanupTests
  460. return