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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test menus in Tk.  It is
  2. # organized in the standard fashion for Tcl tests. This
  3. # file tests the Macintosh-specific features of the menu
  4. # system.
  5. #
  6. # Copyright (c) 1995-1997 Sun Microsystems, Inc.
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # All rights reserved.
  9. #
  10. # RCS: @(#) $Id: macMenu.test,v 1.7 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. test macMenu-1.0 {TkMacUseMenuID} {macOnly} {
  18.     # Can't really test TkMacUseMenuID; it's only called on startup.
  19. } {}
  20. test macMenu-2.1 {GetNewID} {macOnly} {
  21.     catch {destroy .m1}
  22.     list [catch {menu .m1} msg] $msg [destroy .m1]
  23. } {0 .m1 {}}
  24. test macMenu-2.2 {GetNewID - cascade menu} {macOnly} {
  25.     catch {destroy .m1}
  26.     menu .m1
  27.     .m1 add cascade -menu .m2
  28.     list [catch {menu .m2} msg] $msg [destroy .m1] [destroy .m2]
  29. } {0 .m2 {} {}}
  30. test macMenu-2.3 {GetNewID - running out of ids} {macOnly} {
  31.     deleteWindows
  32.     menu .menu
  33.     for {set i 0} {$i < 230} {incr i} {
  34.      menu .m$i
  35.      .menu add cascade -label ".m$i" -menu .m$i
  36.     }
  37.     menu .breaker
  38.     list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows]
  39. } {1 {No more menus can be allocated.} {}}
  40. test macMenu-3.1 {FreeID} {macOnly} {
  41.     catch {destroy .m1}
  42.     menu .m1
  43.     list [catch {destroy .m1} msg] $msg
  44. } {0 {}}
  45. # No way to test running out of ids in TkpNewPlatformMenu
  46. test macMenu-4.1 {TkpNewMenu} {macOnly} {
  47.     catch {destroy .m1}
  48.     list [catch {menu .m1} msg] $msg [catch {destroy .m1} msg2] $msg2
  49. } {0 .m1 0 {}}
  50. test macMenu-4.2 {TkpNewMenu - checking for help menu when one is there} {macOnly} {
  51.     catch {destroy .m1}
  52.     catch {destroy .m2}
  53.     menu .m1
  54.     menu .m1.help -tearoff 0
  55.     .m1.help add command -label Test
  56.     . configure -menu .m1
  57.     raise .
  58.     update
  59.     list [catch {menu .m2} msg] $msg [destroy .m1] [destroy .m2] [. configure -menu ""]
  60. } {0 .m2 {} {} {}}
  61. test macMenu-4.3 {TkpNewMenu - menubar set but different interp} {macOnly} {
  62.     catch {interp delete testinterp}
  63.     catch {destroy .m1}
  64.     interp create testinterp
  65.     load {} Tk testinterp
  66.     interp eval testinterp {raise .}
  67.     interp eval testinterp {menu .m1}
  68.     interp eval testinterp {. configure -menu .m1}
  69.     interp eval testinterp {update}
  70.     list [catch {menu .m1} msg] $msg [destroy .m1] [interp delete testinterp]
  71. } {0 .m1 {} {}}
  72. test macMenu-4.4 {TkpNewMenu - menubar set but new menu has different parent} {macOnly} {
  73.     catch {destroy .m1}
  74.     catch {destroy .m2}
  75.     menu .m1 -tearoff 0
  76.     .m1 add cascade -menu .m1.help
  77.     menu .m2
  78.     .m2 add cascade -menu .m2.help
  79.     . configure -menu .m1
  80.     raise .
  81.     update
  82.     list [catch {menu .m2.help} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .m2]
  83. } {0 .m2.help {} {} {}}
  84. test macMenu-4.5 {TkpNewMenu - menubar set, same parent, not .help} {macOnly} {
  85.     catch {destroy .m1}
  86.     menu .m1 -tearoff 0
  87.     .m1 add cascade -menu .m1.help
  88.     . configure -menu .m1
  89.     raise .
  90.     update
  91.     list [catch {menu .m1.foo} msg] $msg [. configure -menu ""] [destroy .m1]
  92. } {0 .m1.foo {} {}}
  93. test macMenu-4.6 {TkpNewMenu - creating the help menu} {macOnly} {
  94.     catch {destroy .m1}
  95.     menu .m1 -tearoff 0
  96.     .m1 add cascade -menu .m1.help
  97.     . configure -menu .m1
  98.     raise .
  99.     update
  100.     list [catch {menu .m1.help} msg] $msg [. configure -menu ""] [destroy .m1]
  101. } {0 .m1.help {} {}}
  102. test macMenu-5.1 {TkpDestroyMenu} {macOnly} {
  103.     catch {destroy .m1}
  104.     menu .m1
  105.     list [catch {destroy .m1} msg] $msg
  106. } {0 {}}
  107. test macMenu-5.2 {TkpDestroyMenu - help menu} {macOnly} {
  108.     catch {destroy .m1}
  109.     menu .m1 -tearoff 0
  110.     .m1 add cascade -menu .m1.help
  111.     . configure -menu .m1
  112.     menu .m1.help
  113.     raise .
  114.     update
  115.     list [catch {destroy .m1.help} msg] $msg [. configure -menu ""] [destroy .m1]
  116. } {0 {} {} {}}
  117. test macMenu-5.3 {TkpDestroyMenu - idle handler pending} {macOnly} {
  118.     catch {destroy .m1}
  119.     menu .m1
  120.     .m1 add command -label test
  121.     list [catch {destroy .m1} msg] $msg
  122. } {0 {}}
  123. test macMenu-5.4 {TkpDestroyMenu - idle handler not pending} {macOnly} {
  124.     catch {destroy .m1}
  125.     menu .m1
  126.     .m1 add command -label test
  127.     update idletasks
  128.     list [catch {destroy .m1} msg] $msg
  129. } {0 {}}
  130. test macMenu-6.1 {SetMenuCascade} {macOnly} {
  131.     catch {destroy .m1}
  132.     catch {destroy .m2}
  133.     menu .m1
  134.     menu .m2
  135.     list [catch {.m2 add cascade -menu .m1} msg] $msg [destroy .m1 .m2]
  136. } {0 {} {}}
  137. test macMenu-6.2 {SetMenuCascade - running out of ids} {macOnly} {
  138.     deleteWindows
  139.     menu .menu
  140.     for {set i 0} {$i < 230} {incr i} {
  141.      menu .m$i
  142.      .menu add cascade -label ".m$i" -menu .m$i
  143.     }
  144.     menu .breaker
  145.     list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows]
  146. } {1 {No more menus can be allocated.} {}}
  147. test macMenu-7.1 {TkpDestroyMenuEntry} {macOnly} {
  148.     catch {destroy .m1}
  149.     menu .m1
  150.     .m1 add command -label "test"
  151.     list [catch {.m1 delete 1} msg] $msg [destroy .m1]
  152. } {0 {} {}}
  153. test macMenu-7.2 {TkpDestroyMenuEntry - help menu} {macOnly} {
  154.     catch {destroy .m1}
  155.     menu .m1
  156.     .m1 add cascade -menu .m1.help
  157.     menu .m1.help -tearoff 0
  158.     .m1.help add command -label "test"
  159.     . configure -menu .m1
  160.     raise .
  161.     update
  162.     list [catch {.m1.help delete test} msg] $msg [. configure -menu ""] [destroy .m1]
  163. } {0 {} {} {}}
  164. test macMenu-8.1 {GetEntryText} {macOnly} {
  165.     catch {destroy .m1}
  166.     list [catch {menu .m1} msg] $msg [destroy .m1]
  167. } {0 .m1 {}}
  168. test macMenu-8.2 {GetEntryText} {macOnly testImageType} {
  169.     catch {destroy .m1}
  170.     catch {image delete image1}
  171.     menu .m1
  172.     image create test image1
  173.     list [catch {.m1 add command -image image1} msg] $msg [destroy .m1] [image delete image1]
  174. } {0 {} {} {}}
  175. test macMenu-8.3 {GetEntryText} {macOnly} {
  176.     catch {destroy .m1}
  177.     menu .m1
  178.     list [catch {.m1 add command -bitmap questhead} msg] $msg [destroy .m1]
  179. } {0 {} {}}
  180. test macMenu-8.4 {GetEntryText} {macOnly} {
  181.     catch {destroy .m1}
  182.     menu .m1
  183.     list [catch {.m1 add command} msg] $msg [destroy .m1]
  184. } {0 {} {}}
  185. test macMenu-8.5 {GetEntryText} {macOnly} {
  186.     catch {destroy .m1}
  187.     menu .m1
  188.     .m1 add command -label "foo"
  189.     list [catch {.m1 add command -label "foo"} msg] $msg [destroy .m1]
  190. } {0 {} {}}
  191. test macMenu-8.6 {GetEntryText} {macOnly} {
  192.     catch {destroy .m1}
  193.     menu .m1
  194.     list [catch {.m1 add command -label "This is a very long string. 9012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890"} 
  195.          msg] $msg [destroy .m1]
  196. } {0 {} {}}
  197. test macMenu-8.7 {GetEntryText - elipses character} {macOnly} {
  198.     catch {destroy .m1}
  199.     menu .m1
  200.     list [catch {.m1 add command -label "foo..."} msg] $msg [destroy .m1]
  201. } {0 {} {}}
  202. test macMenu-8.8 {GetEntryText - false elipses character} {macOnly} {
  203.     catch {destroy .m1}
  204.     menu .m1
  205.     list [catch {.m1 add command -label "foo."} msg] $msg [destroy .m1]
  206. } {0 {} {}}
  207. test macMenu-8.9 {GetEntryText - false elipses character} {macOnly} {
  208.     catch {destroy .m1}
  209.     menu .m1
  210.     list [catch {.m1 add command -label "foo.."} msg] $msg [destroy .m1]
  211. } {0 {} {}}
  212. test macMenu-8.10 {GetEntryText - false elipses character} {macOnly} {
  213.     catch {destroy .m1}
  214.     menu .m1
  215.     list [catch {.m1 add command -label "foo.b"} msg] $msg [destroy .m1]
  216. } {0 {} {}}
  217. test macMenu-8.11 {GetEntryText - false elipses character} {macOnly} {
  218.     catch {destroy .m1}
  219.     menu .m1
  220.     list [catch {.m1 add command -label "foo..b"} msg] $msg [destroy .m1]
  221. } {0 {} {}}
  222. # test macMenu-9.1 - assumes some fonts
  223. test macMenu-9.1 {FindMarkCharacter} {macOnly} {
  224.     catch {destroy .m1}
  225.     menu .m1 -font "Helvetica 12" -tearoff 0
  226.     .m1 add checkbutton -label test
  227.     .m1 invoke test
  228.     list [catch {update idletasks} msg] $msg [destroy .m1]
  229. } {0 {} {}}
  230. # All standard fonts have "