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

通讯编程

开发平台:

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. It tests
  3. # the common implementation of Macintosh and Windows menus.
  4. #
  5. # Copyright (c) 1995-1996 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: macWinMenu.test,v 1.4 2002/07/13 20:28:35 dgp Exp $
  10. package require tcltest 2.1
  11. namespace import -force tcltest::configure
  12. namespace import -force tcltest::testsDirectory
  13. configure -testdir [file join [pwd] [file dirname [info script]]]
  14. configure -loadfile [file join [testsDirectory] constraints.tcl]
  15. tcltest::loadTestedCommands
  16. test macWinMenu-1.1 {PreprocessMenu} {macOrPc nonUnixUserInteraction} {
  17.     catch {destroy .m1}
  18.     menu .m1 -postcommand "destroy .m1"
  19.     .m1 add command -label "macWinMenu-1.1: Hit Escape"
  20.     list [catch {.m1 post 40 40} msg] $msg
  21. } {0 {}}
  22. test macWinMenu-1.2 {PreprocessMenu} {macOrPc nonUnixUserInteraction} {
  23.     catch {destroy .m1}
  24.     catch {destroy .m2}
  25.     set foo1 foo
  26.     set foo2 foo
  27.     menu .m1 -postcommand "set foo1 .m1"
  28.     .m1 add cascade -menu .m2 -label "macWinMenu-1.2: Hit Escape"
  29.     menu .m2 -postcommand "set foo2 .m2"
  30.     update idletasks
  31.     list [catch {.m1 post 40 40} msg] $msg [set foo1] [set foo2] 
  32.     [destroy .m1 .m2] [catch {unset foo1}] [catch {unset foo2}]
  33. } {0 .m2 .m1 .m2 {} 0 0}
  34. test macWinMenu-1.3 {PreprocessMenu} {macOrPc nonUnixUserInteraction} {
  35.     catch {destroy .l1}
  36.     catch {destroy .m1}
  37.     catch {destroy .m2}
  38.     catch {destroy .m3}
  39.     label .l1 -text "Preparing menus..."
  40.     pack .l1
  41.     update idletasks
  42.     menu .m1 -postcommand ".l1 configure -text "Destroying .m1..."; update idletasks; destroy .m1"
  43.     menu .m2 -postcommand ".l1 configure -text "Destroying .m2..."; update idletasks; destroy .m2"
  44.     menu .m3 -postcommand ".l1 configure -text "Destroying .m3..."; update idletasks; destroy .m3"
  45.     .m1 add cascade -menu .m2 -label "macWinMenu-1.3: Hit Escape (.m2)"
  46.     .m1 add cascade -menu .m3 -label ".m3"
  47.     update idletasks
  48.     list [catch {.m1 post 40 40} msg] $msg [destroy .l1 .m2 .m3]
  49. } {0 {} {}}
  50. test macWinMenu-1.4 {PreprocessMenu} {macOrPc} {
  51.     catch {destroy .l1}
  52.     catch {destroy .m1}
  53.     catch {destroy .m2}
  54.     catch {destroy .m3}
  55.     catch {destroy .m4}
  56.     label .l1 -text "Preparing menus..."
  57.     pack .l1
  58.     update idletasks
  59.     menu .m1 -postcommand ".l1 configure -text "Destroying .m1..."; update idletasks; destroy .m1"
  60.     .m1 add cascade -menu .m2 -label "macWinMenu-1.4: Hit Escape (.m2)"
  61.     .m1 add cascade -menu .m3 -label ".m3"
  62.     menu .m2 -postcommand ".l1 configure -text "Destroying .m2..."; update idletasks; destroy .m2"
  63.     .m2 add cascade -menu .m4 -label ".m4"
  64.     menu .m3 -postcommand ".l1 configure -text "Destroying .m3..."; update idletasks; destroy .m3"
  65.     menu .m4 -postcommand ".l1 configure -text "Destroying .m4..."; update idletasks; destroy .m4"
  66.     update idletasks
  67.     list [catch {.m1 post 40 40} msg] $msg [destroy .l1 .m2 .m3 .m4]
  68. } {0 {} {}}
  69. test macWinMenu-1.5 {PreprocessMenu} {macOrPc} {
  70.     catch {destroy .m1}
  71.     catch {destroy .m2}
  72.     menu .m1
  73.     .m1 add cascade -menu .m2 -label "You may need to hit Escape to get this menu to go away."
  74.     menu .m2 -postcommand glorp
  75.     list [catch {.m1 post 40 40} msg] $msg [destroy .m1 .m2]
  76. } {1 {invalid command name "glorp"} {}}
  77. test macWinMenu-2.1 {TkPreprocessMenu} {macOrPc nonUnixUserInteraction} {
  78.     catch {destroy .m1}
  79.     set foo test
  80.     menu .m1 -postcommand "set foo 2.1"
  81.     .m1 add command -label "macWinMenu-2.1: Hit Escape"
  82.     list [catch {.m1 post 40 40} msg] $msg [set foo] [destroy .m1] [unset foo]
  83. } {0 2.1 2.1 {} {}}
  84. # cleanup
  85. deleteWindows
  86. ::tcltest::cleanupTests
  87. return