summaryrefslogtreecommitdiffstats
path: root/tests/macWinMenu.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/macWinMenu.test')
-rw-r--r--tests/macWinMenu.test117
1 files changed, 117 insertions, 0 deletions
diff --git a/tests/macWinMenu.test b/tests/macWinMenu.test
new file mode 100644
index 0000000..7b6ac12
--- /dev/null
+++ b/tests/macWinMenu.test
@@ -0,0 +1,117 @@
+# This file is a Tcl script to test menus in Tk. It is
+# organized in the standard fashion for Tcl tests. It tests
+# the common implementation of Macintosh and Windows menus.
+#
+# Copyright (c) 1995-1996 Sun Microsystems, Inc.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# SCCS: @(#) macWinMenu.test 1.13 97/04/10 14:41:29
+
+if {$tcl_platform(platform) == "unix"} {
+ return
+}
+
+if {[lsearch [image types] test] < 0} {
+ puts "This application hasn't been compiled with the \"test\" image"
+ puts "type, so I can't run this test. Are you sure you're using"
+ puts "tktest instead of wish?"
+ return
+}
+
+if {[info procs test] != "test"} {
+ source defs
+}
+
+proc deleteWindows {} {
+ foreach i [winfo children .] {
+ catch [destroy $i]
+ }
+}
+
+deleteWindows
+wm geometry . {}
+raise .
+
+if {$tcl_platform(platform) == "windows" && ![info exists INTERACTIVE]} {
+ puts " Some tests were skipped because they could not be performed"
+ puts " automatically on this platform. If you wish to execute them"
+ puts " interactively, set the TCL variable INTERACTIVE and re-run"
+ puts " the test."
+}
+
+test macWinMenu-1.1 {PreprocessMenu} {
+ catch {destroy .m1}
+ menu .m1 -postcommand "destroy .m1"
+ .m1 add command -label "macWinMenu-1.1: Hit Escape"
+ list [catch {.m1 post 40 40} msg] $msg
+} {0 {}}
+if {$tcl_platform(platform) != "windows" || [info exists INTERACTIVE]} {
+ test macWinMenu-1.2 {PreprocessMenu} {
+ catch {destroy .m1}
+ catch {destroy .m2}
+ set foo1 foo
+ set foo2 foo
+ menu .m1 -postcommand "set foo1 .m1"
+ .m1 add cascade -menu .m2 -label "macWinMenu-1.2: Hit Escape"
+ menu .m2 -postcommand "set foo2 .m2"
+ update idletasks
+ list [catch {.m1 post 40 40} msg] $msg [set foo1] [set foo2] [destroy .m1 .m2] [catch {unset foo1}] [catch {unset foo2}]
+ } {0 .m2 .m1 .m2 {} 0 0}
+}
+test macWinMenu-1.3 {PreprocessMenu} {
+ catch {destroy .l1}
+ catch {destroy .m1}
+ catch {destroy .m2}
+ catch {destroy .m3}
+ label .l1 -text "Preparing menus..."
+ pack .l1
+ update idletasks
+ menu .m1 -postcommand ".l1 configure -text \"Destroying .m1...\"; update idletasks; destroy .m1"
+ menu .m2 -postcommand ".l1 configure -text \"Destroying .m2...\"; update idletasks; destroy .m2"
+ menu .m3 -postcommand ".l1 configure -text \"Destroying .m3...\"; update idletasks; destroy .m3"
+ .m1 add cascade -menu .m2 -label "macWinMenu-1.3: Hit Escape (.m2)"
+ .m1 add cascade -menu .m3 -label ".m3"
+ update idletasks
+ list [catch {.m1 post 40 40} msg] $msg [destroy .l1 .m2 .m3]
+} {0 {} {}}
+test macWinMenu-1.4 {PreprocessMenu} {
+ catch {destroy .l1}
+ catch {destroy .m1}
+ catch {destroy .m2}
+ catch {destroy .m3}
+ catch {destroy .m4}
+ label .l1 -text "Preparing menus..."
+ pack .l1
+ update idletasks
+ menu .m1 -postcommand ".l1 configure -text \"Destroying .m1...\"; update idletasks; destroy .m1"
+ .m1 add cascade -menu .m2 -label "macWinMenu-1.4: Hit Escape (.m2)"
+ .m1 add cascade -menu .m3 -label ".m3"
+ menu .m2 -postcommand ".l1 configure -text \"Destroying .m2...\"; update idletasks; destroy .m2"
+ .m2 add cascade -menu .m4 -label ".m4"
+ menu .m3 -postcommand ".l1 configure -text \"Destroying .m3...\"; update idletasks; destroy .m3"
+ menu .m4 -postcommand ".l1 configure -text \"Destroying .m4...\"; update idletasks; destroy .m4"
+ update idletasks
+ list [catch {.m1 post 40 40} msg] $msg [destroy .l1 .m2 .m3 .m4]
+} {0 {} {}}
+test macWinMenu-1.5 {PreprocessMenu} {
+ catch {destroy .m1}
+ catch {destroy .m2}
+ menu .m1
+ .m1 add cascade -menu .m2 -label "You may need to hit Escape to get this menu to go away."
+ menu .m2 -postcommand glorp
+ list [catch {.m1 post 40 40} msg] $msg [destroy .m1 .m2]
+} {1 {invalid command name "glorp"} {}}
+
+if {$tcl_platform(platform) != "windows" || [info exists INTERACTIVE]} {
+ test macWinMenu-2.1 {TkPreprocessMenu} {
+ catch {destroy .m1}
+ set foo test
+ menu .m1 -postcommand "set foo 2.1"
+ .m1 add command -label "macWinMenu-2.1: Hit Escape"
+ list [catch {.m1 post 40 40} msg] $msg [set foo] [destroy .m1] [unset foo]
+ } {0 2.1 2.1 {} {}}
+}
+
+deleteWindows