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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the procedures in tkMacFont.c. 
  2. # It is organized in the standard fashion for Tcl tests.
  3. #
  4. # Some of these tests are visually oriented and cannot be checked
  5. # programmatically (such as "does an underlined font appear to be
  6. # underlined?"); these tests attempt to exercise the code in question,
  7. # but there are no results that can be checked.  
  8. #
  9. # Copyright (c) 1996 Sun Microsystems, Inc.
  10. # Copyright (c) 1998-1999 by Scriptics Corporation.
  11. # All rights reserved.
  12. #
  13. # RCS: @(#) $Id: macFont.test,v 1.6 2002/07/14 05:48:46 dgp Exp $
  14. package require tcltest 2.1
  15. namespace import -force tcltest::configure
  16. namespace import -force tcltest::testsDirectory
  17. configure -testdir [file join [pwd] [file dirname [info script]]]
  18. configure -loadfile [file join [testsDirectory] constraints.tcl]
  19. tcltest::loadTestedCommands
  20. catch {destroy .b}
  21. toplevel .b
  22. update idletasks
  23. set courier {Courier 12}
  24. set cx [font measure $courier 0]
  25. set fixed {Monaco 12}
  26. label .b.l -padx 0 -pady 0 -bd 0 -highlightthickness 0 -justify left -text "0" -font $fixed
  27. pack .b.l
  28. canvas .b.c -closeenough 0
  29. set t [.b.c create text 0 0 -anchor nw -just left -font $courier]
  30. pack .b.c
  31. update
  32. set ax [winfo reqwidth .b.l]
  33. set ay [winfo reqheight .b.l]
  34. proc getsize {} {
  35.     update
  36.     return "[winfo reqwidth .b.l] [winfo reqheight .b.l]"
  37. }
  38. testConstraint gothic 0
  39. set gothic {gothic 12}
  40. set mx [font measure  $gothic u4e4e]
  41. if {[font actual $gothic -family] != [font actual system -family]} {
  42.     testConstraint gothic 1
  43. }
  44. test macFont-1.1 {TkpFontPkgInit} {macOnly} {
  45. } {}
  46. test macfont-2.1 {TkpGetNativeFont: not native} {macOnly} {
  47.     list [catch {font measure {} xyz} msg] $msg
  48. } {1 {font "" doesn't exist}}
  49. test macFont-2.2 {TkpGetNativeFont: native} {macOnly} {
  50.     font measure system "0"
  51.     font measure application "0"
  52.     set x {}
  53. } {}
  54. test macFont-3.1 {TkpGetFontFromAttributes: no family} {macOnly} {
  55.     font actual {-underline 1} -family
  56. } [font actual system -family]
  57. test macFont-3.2 {TkpGetFontFromAttributes: long family name} {macOnly} {
  58.     set x "12345678901234567890123456789012345678901234567890"
  59.     set x "$x$x$x$x$x$x"
  60.     font actual "-family $x" -family
  61. } [font actual system -family]
  62. test macFont-3.3 {TkpGetFontFromAttributes: family} {macOnly} {
  63.     font actual {-family Courier} -family
  64. } {Courier}
  65. test macFont-3.4 {TkpGetFontFromAttributes: Times fonts} {macOnly} {
  66.     set x {}
  67.     lappend x [font actual {-family "Times"} -family]
  68.     lappend x [font actual {-family "Times New Roman"} -family]
  69. } {Times Times}
  70. test macFont-3.5 {TkpGetFontFromAttributes: Courier fonts} {macOnly} {
  71.     set x {}
  72.     lappend x [font actual {-family "Courier"} -family]
  73.     lappend x [font actual {-family "Courier New"} -family]
  74. } {Courier Courier}
  75. test macFont-3.6 {TkpGetFontFromAttributes: Helvetica fonts} {macOnly} {
  76.     set x {}
  77.     lappend x [font actual {-family "Geneva"} -family]
  78.     lappend x [font actual {-family "Helvetica"} -family]
  79.     lappend x [font actual {-family "Arial"} -family]
  80. } {Geneva Helvetica Helvetica}
  81. test macFont-3.7 {TkpGetFontFromAttributes: try aliases} {macOnly} {
  82.     font actual {arial 10} -family
  83. } {Helvetica}    
  84. test macFont-3.8 {TkpGetFontFromAttributes: try fallbacks} {macOnly} {
  85.     font actual {{ms sans serif} 10} -family
  86. } {Chicago}
  87. test macFont-3.9 {TkpGetFontFromAttributes: styles} {macOnly} {
  88.     font actual {-weight normal} -weight
  89. } {normal}
  90. test macFont-3.10 {TkpGetFontFromAttributes: styles} {macOnly} {
  91.     font actual {-weight bold} -weight
  92. } {bold}
  93. test macFont-3.11 {TkpGetFontFromAttributes: styles} {macOnly} {
  94.     font actual {-slant roman} -slant
  95. } {roman}
  96. test macFont-3.12 {TkpGetFontFromAttributes: styles} {macOnly} {
  97.     font actual {-slant italic} -slant
  98. } {italic}
  99. test macFont-3.13 {TkpGetFontFromAttributes: styles} {macOnly} {
  100.     font actual {-underline false} -underline
  101. } {0}
  102. test macFont-3.14 {TkpGetFontFromAttributes: styles} {macOnly} {
  103.     font actual {-underline true} -underline
  104. } {1}
  105. test macFont-3.15 {TkpGetFontFromAttributes: styles} {macOnly} {
  106.     font actual {-overstrike false} -overstrike
  107. } {0}
  108. test macFont-3.16 {TkpGetFontFromAttributes: styles} {macOnly} {
  109.     font actual {-overstrike true} -overstrike
  110. } {0}
  111. test macFont-4.1 {TkpDeleteFont} {macOnly} {
  112.     font actual {-family xyz}
  113.     set x {}
  114. } {}
  115. test macFont-5.1 {TkpGetFontFamilies} {macOnly} {
  116.     expr {[lsearch [font families] Geneva] > 0}
  117. } {1}
  118. test macFont-6.1 {TkpGetSubFonts} {testfont gothic macOnly} {
  119.     .b.l config -text "abcu4e4e" 
  120.     update
  121.     set x [testfont subfonts $fixed]
  122. } "Monaco [font actual $gothic -family]"    
  123. test macFont-7.1 {Tk_MeasureChars: unbounded right margin} {macOnly} {
  124.     .b.l config -wrap 0 -text "000000"
  125.     getsize
  126. } "[expr $ax*6] $ay"
  127. test macFont-7.2 {Tk_MeasureChars: static width buffer exceeded} {macOnly} {
  128.     .b.l config -wrap 100000 -text "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
  129.     getsize
  130. } "[expr $ax*256] $ay"
  131. test macFont-7.3 {Tk_MeasureChars: all chars did fit} {macOnly} {
  132.     .b.l config -wrap [expr $ax*10] -text "00000000"
  133.     getsize
  134. } "[expr $ax*8] $ay"
  135. test macFont-7.4 {Tk_MeasureChars: not all chars fit} {macOnly} {
  136.     .b.l config -wrap [expr $ax*6] -text "00000000"
  137.     getsize
  138. } "[expr $ax*6] [expr $ay*2]"
  139. test macFont-7.5 {Tk_MeasureChars: already saw space in line} {macOnly} {
  140.     .b.l config -wrap [expr $ax*12] -text "000000    0000000"
  141.     getsize
  142. } "[expr $ax*7] [expr $ay*2]"
  143. test macFont-7.6 {Tk_MeasureChars: internal spaces significant} {macOnly} {
  144.     .b.l config -wrap [expr $ax*12] -text "000  00   00000"
  145.     getsize
  146. } "[expr $ax*7] [expr $ay*2]"
  147. test macFont-7.7 {Tk_MeasureChars: include last partial char} {macOnly} {
  148.     .b.c dchars $t 0 end
  149.     .b.c insert $t 0 "0000"
  150.     .b.c index $t @[expr int($ax*2.5)],1
  151. } {2}
  152. test macFont-7.8 {Tk_MeasureChars: at least one char on line} { macOnly} {
  153.     .b.l config -text "000000" -wrap 1
  154.     getsize
  155. } "$ax [expr $ay*6]"
  156. test macFont-7.9 {Tk_MeasureChars: whole words} {macOnly} {
  157.     .b.l config -wrap [expr $ax*8] -text "000000 0000"
  158.     getsize
  159. } "[expr $ax*6] [expr $ay*2]"
  160. test macFont-7.10 {Tk_MeasureChars: make first part of word fit} {macOnly} {
  161.     .b.l config -wrap [expr $ax*12] -text "0000000000000000"
  162.     getsize
  163. } "[expr $ax*12] [expr $ay*2]"
  164. test macFont-7.11 {Tk_MeasureChars: numBytes == 0} {macOnly} {
  165.     font measure system {}
  166. } {0}
  167. test macFont-7.12 {Tk_MeasureChars: maxLength < 0} {macOnly} {
  168.     font measure $courier abcd
  169. } "[expr $cx*4]"
  170. test macFont-7.13 {Tk_MeasureChars: loop on each char} {macOnly} {
  171.     font measure $courier abcd
  172. } "[expr $cx*4]"
  173. test macFont-7.14 {Tk_MeasureChars: p == end} {macOnly} {
  174.     font measure $courier abcd
  175. } "[expr $cx*4]"
  176. test macFont-7.15 {Tk_MeasureChars: p > end} {macOnly} {
  177.     font measure $courier abcxc2
  178. } "[expr $cx*4]"
  179. test macFont-7.16 {Tk_MeasureChars: thisFamilyPtr != lastFamilyPtr} {gothic macOnly} {
  180.     font measure $courier abcu4e4edef
  181. } [expr $cx*6+$mx]
  182. test macFont-7.17 {Tk_MeasureChars: measure no chars (in loop)} {gothic macOnly} {
  183.     font measure $courier u4e4edef
  184. } [expr $mx+$cx*3]
  185. test macFont-7.18 {Tk_MeasureChars: final measure} {gothic macOnly} {
  186.     font measure $courier u4e4edef
  187. } [expr $mx+$cx*3]
  188. test macFont-7.19 {Tk_MeasureChars: final measure (no chars)} {gothic macOnly} {
  189.     font measure $courier u4e4e
  190. } [expr $mx]
  191. test macFont-7.20 {Tk_MeasureChars: maxLength >= 0} {macOnly} {
  192.     .b.l config -wrap [expr $ax*8] -text "000"
  193.     getsize
  194. } "[expr $ax*3] $ay"
  195. test macFont-7.21 {Tk_MeasureChars: loop on each char} {macOnly} {
  196.     .b.l config -wrap [expr $ax*8] -text "000"
  197.     getsize
  198. } "[expr $ax*3] $ay"
  199. test macFont-7.22 {Tk_MeasureChars: p == end} {macOnly} {
  200.     .b.l config -wrap [expr $ax*8] -text "000"
  201.     getsize
  202. } "[expr $ax*3] $ay"
  203. test macFont-7.23 {Tk_MeasureChars: p > end} {macOnly} {
  204.     .b.l config -wrap [expr $ax*8] -text "00xc2"
  205.     getsize
  206. } "[expr $ax*3] $ay"
  207. test macFont-7.24 {Tk_MeasureChars: thisFamilyPtr != lastFamilyPtr} {gothic macOnly} {
  208.     .b.l config -wrap [expr $ax*8] -text "00u4e4e00"
  209.     getsize
  210. } "[expr $ax*4+$mx] $ay"
  211. test macFont-7.25 {Tk_MeasureChars: measure no chars (in loop)} {gothic macOnly} {
  212.     .b.l config -wrap [expr $ax*8] -text "u4e4e00"
  213.     getsize
  214. } "[expr $mx+$ax*2] $ay"
  215. test macFont-7.26 {Tk_MeasureChars: rest == NULL} {gothic macOnly} {
  216.     .b.l config -wrap [expr $ax*20] -text "000000u4e4eu4e4e00"
  217.     getsize
  218. } "[expr $ax*8+$mx*2] $ay"
  219. test macFont-7.27 {Tk_MeasureChars: rest != NULL in first segment} {gothic macOnly} {
  220.     .b.l config -wrap [expr $ax*5] -text "000000u4e4eu4e4f00"
  221.     getsize
  222. } "[expr $ax*5] [expr $ay*3]"
  223. test macFont-7.28 {Tk_MeasureChars: rest != NULL in next segment} {gothic macOnly} {
  224.     # even some of the "0"s would fit after u4e4d, they should all wrap to next line.  
  225.     .b.l config -wrap [expr $ax*8] -text "u4e4du4e4d000000u4e4eu4e4f00"
  226.     getsize
  227. } "[expr $ax*6+$mx] [expr $ay*3]"
  228. test macFont-7.29 {Tk_MeasureChars: final measure} {gothic macOnly} {
  229.     .b.l config -wrap [expr $ax*8] -text "u4e4e00"
  230.     getsize
  231. } "[expr $mx+$ax*2] $ay"
  232. test macFont-7.30 {Tk_MeasureChars: final measure (no chars)} {gothic macOnly} {
  233.     .b.l config -wrap [expr $ax*8] -text "u4e4e"
  234.     getsize
  235. } "$mx $ay"
  236. test macFont-7.31 {Tk_MeasureChars: rest == NULL} {macOnly} {
  237.     .b.l config -wrap [expr $ax*1000] -text 0000
  238.     getsize
  239. } "[expr $ax*4] $ay"
  240. test macFont-7.32 {Tk_MeasureChars: rest != NULL} {macOnly} {
  241.     .b.l config -wrap [expr $ax*6] -text "00000000"
  242.     getsize
  243. } "[expr $ax*6] [expr $ay*2]"
  244. test macFont-8.1 {Tk_DrawChars procedure} {macOnly} {
  245.     .b.l config -text "a"
  246.     update
  247. } {}
  248. test macFont-9.1 {AllocMacFont: use old font} {macOnly} {
  249.     font create xyz
  250.     button .c -font xyz
  251.     font configure xyz -family times
  252.     update
  253.     destroy .c
  254.     font delete xyz
  255. } {}
  256. test macFont-9.2 {AllocMacFont: extract info from style} {macOnly} {
  257.     font actual {Monaco 9 bold italic underline overstrike}
  258. } {-family Monaco -size 9 -weight bold -slant italic -underline 1 -overstrike 0}
  259. test macFont-9.3 {AllocMacFont: extract text metrics} {macOnly} {
  260.     font metric {Geneva 10} -fixed
  261. } {0}
  262. test macFont-9.4 {AllocMacFont: extract text metrics} {macOnly} {
  263.     font metric "Monaco 9" -fixed
  264. } {1}
  265. destroy .b
  266. # cleanup
  267. ::tcltest::cleanupTests
  268. return