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

通讯编程

开发平台:

Visual C++

  1. # textImage.test -- test images embedded in text widgets
  2. #
  3. # This file contains a collection of tests for one or more of the Tcl
  4. # built-in commands.  Sourcing this file into Tcl runs the tests and
  5. # generates output for errors.  No output means no errors were found.
  6. #
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # All rights reserved.
  9. #
  10. # RCS: @(#) $Id: textImage.test,v 1.5 2002/07/13 20:28:35 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. # One time setup.  Create a font to insure the tests are font metric invariant.
  18. catch {destroy .t}
  19. font create test_font -family courier -size 14
  20. text .t -font test_font
  21. destroy .t
  22. test textImage-1.1 {basic argument checking} {
  23. catch {destroy .t}
  24. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  25. pack .t
  26. list [catch {.t image} msg] $msg
  27. } {1 {wrong # args: should be ".t image option ?arg arg ...?"}}
  28. test textImage-1.2 {basic argument checking} {
  29. catch {destroy .t}
  30. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  31. pack .t
  32. list [catch {.t image c} msg] $msg
  33. } {1 {bad image option "c": must be cget, configure, create, or names}}
  34. test textImage-1.3 {cget argument checking} {
  35. catch {destroy .t}
  36. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  37. pack .t
  38. list [catch {.t image cget} msg] $msg
  39. } {1 {wrong # args: should be ".t image cget index option"}}
  40. test textImage-1.4 {cget argument checking} {
  41. catch {destroy .t}
  42. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  43. pack .t
  44. list [catch {.t image cget blurf -flurp} msg] $msg
  45. } {1 {bad text index "blurf"}}
  46. test textImage-1.5 {cget argument checking} {
  47. catch {destroy .t}
  48. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  49. pack .t
  50. list [catch {.t image cget 1.1 -flurp} msg] $msg
  51. } {1 {no embedded image at index "1.1"}}
  52. test textImage-1.6 {configure argument checking} {
  53. catch {destroy .t}
  54. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  55. pack .t
  56. list [catch {.t image configure } msg] $msg
  57. } {1 {wrong # args: should be ".t image configure index ?option value ...?"}}
  58. test textImage-1.7 {configure argument checking} {
  59. catch {destroy .t}
  60. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  61. pack .t
  62. list [catch {.t image configure blurf } msg] $msg
  63. } {1 {bad text index "blurf"}}
  64. test textImage-1.8 {configure argument checking} {
  65. catch {destroy .t}
  66. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  67. pack .t
  68. list [catch {.t image configure 1.1 } msg] $msg
  69. } {1 {no embedded image at index "1.1"}}
  70. test textImage-1.9 {create argument checking} {
  71. catch {destroy .t}
  72. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  73. pack .t
  74. list [catch {.t image create} msg] $msg
  75. } {1 {wrong # args: should be ".t image create index ?option value ...?"}}
  76. test textImage-1.10 {create argument checking} {
  77. catch {destroy .t}
  78. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  79. pack .t
  80. list [catch {.t image create blurf } msg] $msg
  81. } {1 {bad text index "blurf"}}
  82. test textImage-1.11 {basic argument checking} {
  83. catch {
  84.     image create photo small -width 5 -height 5
  85.     small put red -to 0 0 4 4
  86. }
  87. catch {destroy .t}
  88. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  89. pack .t
  90. list [catch {.t image create 1000.1000 -image small} msg] $msg
  91. } {0 small}
  92. test textImage-1.12 {names argument checking} {
  93. catch {destroy .t}
  94. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  95. pack .t
  96. list [catch {.t image names dates places} msg] $msg
  97. } {1 {wrong # args: should be ".t image names"}}
  98. test textImage-1.13 {names argument checking} {
  99. catch {
  100.     image create photo small -width 5 -height 5
  101.     small put red -to 0 0 4 4
  102. }
  103. catch {destroy .t}
  104. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  105. pack .t
  106. set result ""
  107. lappend result [.t image names]
  108. .t image create insert -image small
  109. lappend result [.t image names]
  110. .t image create insert -image small
  111. lappend result [.t image names]
  112. .t image create insert -image small -name little
  113. lappend result [.t image names]
  114. } {{} small {small#1 small} {small#1 small little}}
  115. test textImage-1.14 {basic argument checking} {
  116. catch {destroy .t}
  117. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  118. pack .t
  119. list [catch {.t image huh} msg] $msg
  120. } {1 {bad image option "huh": must be cget, configure, create, or names}}
  121. test textImage-1.15 {align argument checking} {
  122. catch {
  123.     image create photo small -width 5 -height 5
  124.     small put red -to 0 0 4 4
  125. }
  126. catch {destroy .t}
  127. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  128. pack .t
  129. list [catch {.t image create end -image small -align wrong} msg] $msg
  130. } {1 {bad alignment "wrong": must be baseline, bottom, center, or top}}
  131. test textImage-1.16 {configure} {
  132. catch {
  133.     image create photo small -width 5 -height 5
  134.     small put red -to 0 0 4 4
  135. }
  136. catch {destroy .t}
  137. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  138. pack .t
  139. .t image create end -image small
  140. .t image configure small
  141. } {{-align {} {} center center} {-padx {} {} 0 0} {-pady {} {} 0 0} {-image {} {} {} small} {-name {} {} {} {}}}
  142. test textImage-1.17 {basic cget options} {
  143. catch {
  144.     image create photo small -width 5 -height 5
  145.     small put red -to 0 0 4 4
  146. }
  147. catch {destroy .t}
  148. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  149. pack .t
  150. .t image create end -image small
  151. set result ""
  152. foreach i {align padx pady image name} {
  153.     lappend result $i:[.t image cget small -$i]
  154. set result
  155. } {align:center padx:0 pady:0 image:small name:}
  156. test textImage-1.18 {basic configure options} {
  157. catch {
  158.     image create photo small -width 5 -height 5
  159.     small put red -to 0 0 4 4
  160.     image create photo large -width 50 -height 50
  161.     large put green -to 0 0 50 50
  162. }
  163. catch {destroy .t}
  164. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  165. pack .t
  166. .t image create end -image small
  167. set result ""
  168. foreach {option value}  {align top padx 5 pady 7 image large name none} {
  169.     .t image configure small -$option $value
  170. update
  171. .t image configure small
  172. } {{-align {} {} center top} {-padx {} {} 0 5} {-pady {} {} 0 7} {-image {} {} {} large} {-name {} {} {} none}}
  173. test textImage-1.19 {basic image naming} {
  174. catch {
  175.     image create photo small -width 5 -height 5
  176.     small put red -to 0 0 4 4
  177. }
  178. catch {destroy .t}
  179. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  180. pack .t
  181. .t image create end -image small
  182. .t image create end -image small -name small
  183. .t image create end -image small -name small#6342
  184. .t image create end -image small -name small
  185. lsort [.t image names]
  186. } {small small#1 small#6342 small#6343}
  187. test textImage-2.1 {debug} {
  188. catch {
  189.     image create photo small -width 5 -height 5
  190.     small put red -to 0 0 4 4
  191. }
  192. catch {destroy .t}
  193. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  194. pack .t
  195. .t debug 1
  196. .t insert end front
  197. .t image create end -image small
  198. .t insert end back
  199. .t delete small
  200. .t image names
  201. .t debug 0
  202. } {}
  203. test textImage-3.1 {image change propagation} {
  204. catch {
  205.     image create photo vary -width 5 -height 5
  206.     small put red -to 0 0 4 4
  207. }
  208. catch {destroy .t}
  209. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  210. pack .t
  211. .t image create end -image vary -align top
  212. update
  213. set result ""
  214. lappend result base:[.t bbox vary]
  215. foreach i {10 20 40} {
  216.     vary configure -width $i -height $i
  217.     update
  218.     lappend result $i:[.t bbox vary]
  219. set result
  220. } {{base:0 0 5 5} {10:0 0 10 10} {20:0 0 20 20} {40:0 0 40 40}}
  221. test textImage-3.2 {delayed image management} {
  222. catch {
  223.     image create photo small -width 5 -height 5
  224.     small put red -to 0 0 4 4
  225. }
  226. catch {destroy .t}
  227. text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  228. pack .t
  229. .t image create end -name test
  230. update
  231. set result ""
  232. lappend result [.t bbox test]
  233. .t image configure test -image small -align top
  234. update
  235. lappend result [.t bbox test]
  236. } {{} {0 0 5 5}}
  237. # some temporary random tests
  238. test textImage-4.1 {alignment checking - except baseline} {
  239.     catch {
  240. image create photo small -width 5 -height 5
  241. small put red -to 0 0 4 4
  242. image create photo large -width 50 -height 50
  243. large put green -to 0 0 50 50
  244.     }
  245.     catch {destroy .t}
  246.     text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  247.     pack .t
  248.     .t image create end -image large
  249.     .t image create end -image small
  250.     .t insert end test
  251.     update
  252.     set result ""
  253.     lappend result default:[.t bbox small]
  254.     foreach i {top bottom center} {
  255. .t image configure small -align $i
  256. update
  257. lappend result [.t image cget small -align]:[.t bbox small]
  258.     }
  259.     set result
  260. } {{default:50 22 5 5} {top:50 0 5 5} {bottom:50 45 5 5} {center:50 22 5 5}}
  261. test textImage-4.2 {alignment checking - baseline} {
  262.     catch {
  263. image create photo small -width 5 -height 5
  264. small put red -to 0 0 4 4
  265. image create photo large -width 50 -height 50
  266. large put green -to 0 0 50 50
  267.     }
  268.     catch {destroy .t}
  269.     font create test_font2 -size 5
  270.     text .t -font test_font2 -bd 0 -highlightthickness 0 -padx 0 -pady 0
  271.     pack .t
  272.     .t image create end -image large
  273.     .t image create end -image small -align baseline
  274.     .t insert end test
  275.     set result ""
  276.     foreach size {10 15 20 30} {
  277. font configure test_font2 -size $size
  278. array set Metrics [font metrics test_font2]
  279. update
  280. foreach {x y w h} [.t bbox small] {}
  281. set norm [expr {
  282.     (([image height large] - $Metrics(-linespace))/2
  283.     + $Metrics(-ascent) - [image height small] - $y)
  284.  }]
  285.         lappend result "$size $norm"
  286.     }
  287.     font delete test_font2
  288.     unset Metrics
  289.     set result
  290. } {{10 0} {15 0} {20 0} {30 0}}
  291. test textImage-4.3 {alignment and padding checking} {fonts} {
  292.     catch {
  293. image create photo small -width 5 -height 5
  294. small put red -to 0 0 4 4
  295. image create photo large -width 50 -height 50
  296. large put green -to 0 0 50 50
  297.     }
  298.     catch {destroy .t}
  299.     text .t -font test_font -bd 0 -highlightthickness 0 -padx 0 -pady 0
  300.     pack .t
  301.     .t image create end -image large
  302.     .t image create end -image small -padx 5 -pady 10
  303.     .t insert end test
  304.     update
  305.     set result ""
  306.     lappend result default:[.t bbox small]
  307.     foreach i {top bottom center baseline} {
  308. .t image configure small -align $i
  309. update
  310. lappend result $i:[.t bbox small]
  311.     }
  312.     set result
  313. } {{default:55 22 5 5} {top:55 10 5 5} {bottom:55 35 5 5} {center:55 22 5 5} {baseline:55 22 5 5}}
  314. # cleanup
  315. catch {destroy .t}
  316. foreach image [image names] {image delete $image}
  317. font delete test_font
  318. # cleanup
  319. ::tcltest::cleanupTests
  320. return