summaryrefslogtreecommitdiffstats
path: root/tests/wm.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wm.test')
-rw-r--r--tests/wm.test491
1 files changed, 267 insertions, 224 deletions
diff --git a/tests/wm.test b/tests/wm.test
index 44cb429..a9d9c64 100644
--- a/tests/wm.test
+++ b/tests/wm.test
@@ -7,7 +7,7 @@
# Copyright (c) 1998-1999 by Scriptics Corporation.
# All rights reserved.
#
-# RCS: @(#) $Id: wm.test,v 1.31 2005/02/09 09:32:26 dkf Exp $
+# RCS: @(#) $Id: wm.test,v 1.32 2005/02/09 10:19:31 dkf Exp $
# This file tests window manager interactions that work across
# platforms. Window manager tests that only work on a specific
@@ -54,11 +54,12 @@ test wm-1.3 {Tk_WmObjCmd procedure, miscellaneous errors} {
test wm-1.4 {Tk_WmObjCmd procedure, miscellaneous errors} {
list [catch {wm aspect bogus} msg] $msg
} {1 {bad window path name "bogus"}}
-test wm-1.5 {Tk_WmObjCmd procedure, miscellaneous errors} {
- catch {destroy .b}
+test wm-1.5 {Tk_WmObjCmd procedure, miscellaneous errors} -setup {
+ destroy .b
+} -body {
button .b -text hello
list [catch {wm geometry .b} msg] $msg
-} {1 {window ".b" isn't a top-level window}}
+} -result {1 {window ".b" isn't a top-level window}}
### wm aspect ###
@@ -159,8 +160,9 @@ test wm-colormapwindows-1.4 {usage} {
list [catch {wm colormapwindows . foo} msg] $msg
} {1 {bad window path name "foo"}}
-test wm-colormapwindows-2.1 {reading values} {
- catch {destroy .t2}
+test wm-colormapwindows-2.1 {reading values} -setup {
+ destroy .t2
+} -body {
toplevel .t2 -width 200 -height 200 -colormap new
wm geom .t2 +0+0
frame .t2.a -width 100 -height 30
@@ -172,9 +174,10 @@ test wm-colormapwindows-2.1 {reading values} {
pack .t2.c -side top
update
list $x [wm colormapwindows .t2]
-} {{.t2.b .t2} {.t2.b .t2.c .t2}}
-test wm-colormapwindows-2.2 {setting and reading values} {
- catch {destroy .t2}
+} -result {{.t2.b .t2} {.t2.b .t2.c .t2}}
+test wm-colormapwindows-2.2 {setting and reading values} -setup {
+ destroy .t2
+} -body {
toplevel .t2 -width 200 -height 200
wm geom .t2 +0+0
frame .t2.a -width 100 -height 30
@@ -183,7 +186,7 @@ test wm-colormapwindows-2.2 {setting and reading values} {
pack .t2.a .t2.b .t2.c -side top
wm colormapwindows .t2 {.t2.b .t2.a}
wm colormapwindows .t2
-} {.t2.b .t2.a}
+} -result {.t2.b .t2.a}
### wm command ###
@@ -217,31 +220,33 @@ test wm-deiconify-1.2 {usage} {
test wm-deiconify-1.3 {usage} {
list [catch {wm deiconify _} err] $err
} {1 {bad window path name "_"}}
-test wm-deiconify-1.4 {usage} {
- catch {destroy .icon}
+test wm-deiconify-1.4 {usage} -setup {
+ destroy .icon
+} -body {
toplevel .icon -width 50 -height 50 -bg red
wm iconwindow .t .icon
- set result [list [catch {wm deiconify .icon} msg] $msg]
+ wm deiconify .icon
+} -returnCodes error -cleanup {
destroy .icon
- set result
-} {1 {can't deiconify .icon: it is an icon for .t}}
-test wm-deiconify-1.5 {usage} {
- catch {destroy .embed}
+} -result {can't deiconify .icon: it is an icon for .t}
+test wm-deiconify-1.5 {usage} -setup {
+ destroy .embed
+} -body {
frame .t.f -container 1
toplevel .embed -use [winfo id .t.f]
- set result [list [catch {wm deiconify .embed} msg] $msg]
+ wm deiconify .embed
+} -returnCodes error -cleanup {
destroy .t.f .embed
- set result
-} {1 {can't deiconify .embed: it is an embedded window}}
+} -result {can't deiconify .embed: it is an embedded window}
-test wm-deiconify-2.1 {a window that has never been mapped
+test wm-deiconify-2.1 {a window that has never been mapped\
should not be mapped by a call to deiconify} {
deleteWindows
toplevel .t
wm deiconify .t
winfo ismapped .t
} 0
-test wm-deiconify-2.2 {a window that has already been
+test wm-deiconify-2.2 {a window that has already been\
mapped should be mapped by deiconify} {
deleteWindows
toplevel .t
@@ -250,8 +255,8 @@ test wm-deiconify-2.2 {a window that has already been
wm deiconify .t
winfo ismapped .t
} 1
-test wm-deiconify-2.3 {geometry for an unmapped window
- should not be calculated by a call to deiconify,
+test wm-deiconify-2.3 {geometry for an unmapped window\
+ should not be calculated by a call to deiconify,\
it should be done at idle time} {
deleteWindows
set results {}
@@ -263,8 +268,8 @@ test wm-deiconify-2.3 {geometry for an unmapped window
lappend results [lindex [split \
[wm geometry .t] +] 0]
} {1x1+0+0 1x1+0+0 200x200}
-test wm-deiconify-2.4 {invoking destroy after a deiconify
- should not result in a crash because of a callback
+test wm-deiconify-2.4 {invoking destroy after a deiconify\
+ should not result in a crash because of a callback\
set on the toplevel} {
deleteWindows
toplevel .t
@@ -434,43 +439,48 @@ test wm-iconify-1.2 {usage} {
list [catch {wm iconify .t _} msg] $msg
} {1 {wrong # args: should be "wm iconify window"}}
-test wm-iconify-2.1 {Misc errors} {
- catch {destroy .t2}
+test wm-iconify-2.1 {Misc errors} -setup {
+ destroy .t2
+} -body {
toplevel .t2
wm overrideredirect .t2 1
- set result [list [catch {wm iconify .t2} msg] $msg]
+ wm iconify .t2
+} -returnCodes error -cleanup {
destroy .t2
- set result
-} {1 {can't iconify ".t2": override-redirect flag is set}}
-test wm-iconify-2.2 {Misc errors} {
- catch {destroy .t2}
+} -result {can't iconify ".t2": override-redirect flag is set}
+test wm-iconify-2.2 {Misc errors} -setup {
+ destroy .t2
+} -body {
toplevel .t2
wm geom .t2 +0+0
wm transient .t2 .t
- set result [list [catch {wm iconify .t2} msg] $msg]
+ wm iconify .t2
+} -returnCodes error -cleanup {
destroy .t2
- set result
-} {1 {can't iconify ".t2": it is a transient}}
-test wm-iconify-2.3 {Misc errors} {
- catch {destroy .t2}
+} -result {can't iconify ".t2": it is a transient}
+test wm-iconify-2.3 {Misc errors} -setup {
+ destroy .t2
+} -body {
toplevel .t2
wm geom .t2 +0+0
wm iconwindow .t .t2
- set result [list [catch {wm iconify .t2} msg] $msg]
+ wm iconify .t2
+} -returnCodes error -cleanup {
destroy .t2
- set result
-} {1 {can't iconify .t2: it is an icon for .t}}
-test wm-iconify-2.4 {Misc errors} {
- catch {destroy .t2}
+} -result {can't iconify .t2: it is an icon for .t}
+test wm-iconify-2.4 {Misc errors} -setup {
+ destroy .t2
+} -body {
frame .t.f -container 1
toplevel .t2 -use [winfo id .t.f]
- set result [list [catch {wm iconify .t2} msg] $msg]
+ wm iconify .t2
+} -returnCodes error -cleanup {
destroy .t2 .r.f
- set result
-} {1 {can't iconify .t2: it is an embedded window}}
+} -result {can't iconify .t2: it is an embedded window}
-test wm-iconify-3.1 {} {
- catch {destroy .t2}
+test wm-iconify-3.1 {} -setup {
+ destroy .t2
+} -body {
toplevel .t2
wm geom .t2 -0+0
update
@@ -478,9 +488,9 @@ test wm-iconify-3.1 {} {
wm iconify .t2
update
lappend result [winfo ismapped .t2]
+} -cleanup {
destroy .t2
- set result
-} {1 0}
+} -result {1 0}
### wm iconmask ###
@@ -577,37 +587,38 @@ test wm-iconwindow-1.2 {usage} {
test wm-iconwindow-1.3 {usage} {
list [catch {wm iconwindow .t bogus} msg] $msg
} {1 {bad window path name "bogus"}}
-test wm-iconwindow-1.4 {usage} {
- catch {destroy .b}
+test wm-iconwindow-1.4 {usage} -setup {
+ destroy .b
+} -body {
button .b -text Help
- set result [list [catch {wm iconwindow .t .b} msg] $msg]
+ wm iconwindow .t .b
+} -returnCodes error -cleanup {
destroy .b
- set result
-} {1 {can't use .b as icon window: not at top level}}
-test wm-iconwindow-1.5 {usage} {
- catch {destroy .icon}
+} -result {can't use .b as icon window: not at top level}
+test wm-iconwindow-1.5 {usage} -setup {
+ destroy .icon .t2
+} -body {
toplevel .icon -width 50 -height 50 -bg green
- catch {destroy .t2}
toplevel .t2
wm geom .t2 -0+0
wm iconwindow .t2 .icon
- set result [list [catch {wm iconwindow .t .icon} msg] $msg]
- destroy .t2
- destroy .icon
- set result
-} {1 {.icon is already an icon for .t2}}
+ wm iconwindow .t .icon
+} -returnCodes error -cleanup {
+ destroy .t2 .icon
+} -result {.icon is already an icon for .t2}
-test wm-iconwindow-2.1 {setting and reading values} {
+test wm-iconwindow-2.1 {setting and reading values} -setup {
+ destroy .icon
+} -body {
set result {}
lappend result [wm iconwindow .t]
- catch {destroy .icon}
toplevel .icon -width 50 -height 50 -bg green
wm iconwindow .t .icon
lappend result [wm iconwindow .t]
wm iconwindow .t {}
destroy .icon
lappend result [wm iconwindow .t]
-} [list {} .icon {}]
+} -result {{} .icon {}}
### wm maxsize ###
@@ -626,36 +637,40 @@ test wm-maxsize-1.4 {usage} {
test wm-maxsize-1.5 {usage} {
list [catch {wm maxsize . 100 bogus} msg] $msg
} {1 {expected integer but got "bogus"}}
-test wm-maxsize-1.6 {usage} {
- catch {destroy .t2}
+test wm-maxsize-1.6 {usage} -setup {
+ destroy .t2
+} -body {
toplevel .t2
wm maxsize .t2 300 200
- set result [wm maxsize .t2]
+ wm maxsize .t2
+} -cleanup {
destroy .t2
- set result
-} {300 200}
-test wm-maxsize-1.7 {maxsize must be <= screen size} {
+} -result {300 200}
+test wm-maxsize-1.7 {maxsize must be <= screen size} -setup {
destroy .t
+} -body {
toplevel .t
foreach {t_width t_height} [wm maxsize .t] break
set s_width [winfo screenwidth .t]
set s_height [winfo screenheight .t]
expr {($t_width <= $s_width) && ($t_height <= $s_height)}
-} 1
+} -result 1
-test wm-maxsize-2.1 {setting the maxsize to a value smaller
- than the current size will resize a toplevel} {
+test wm-maxsize-2.1 {setting the maxsize to a value smaller\
+ than the current size will resize a toplevel} -setup {
destroy .t
+} -body {
toplevel .t -width 300 -height 300
update
wm maxsize .t 200 150
# UpdateGeometryInfo invoked at idle
update
lrange [split [wm geom .t] x+] 0 1
-} {200 150}
-test wm-maxsize-2.2 {setting the maxsize to a value smaller
- than the current size will resize a gridded toplevel} {
+} -result {200 150}
+test wm-maxsize-2.2 {setting the maxsize to a value smaller\
+ than the current size will resize a gridded toplevel} -setup {
destroy .t
+} -body {
toplevel .t
wm grid .t 0 0 50 50
wm geometry .t 6x6
@@ -664,22 +679,22 @@ test wm-maxsize-2.2 {setting the maxsize to a value smaller
# UpdateGeometryInfo invoked at idle
update
lrange [split [wm geom .t] x+] 0 1
-} {4 3}
-test wm-maxsize-2.3 {attempting to resize to a value
- bigger than the current maxsize will
- set it to the max size} {
+} -result {4 3}
+test wm-maxsize-2.3 {attempting to resize to a value\
+ bigger than the current maxsize will set it to the max size} -setup {
destroy .t
+} -body {
toplevel .t -width 200 -height 200
wm maxsize .t 300 250
update
wm geom .t 400x300
update
lrange [split [wm geom .t] x+] 0 1
-} {300 250}
-test wm-maxsize-2.4 {attempting to resize to a value
- bigger than the current maxsize will
- set it to the max size when gridded} {
+} -result {300 250}
+test wm-maxsize-2.4 {attempting to resize to a value bigger than the\
+ current maxsize will set it to the max size when gridded} -setup {
destroy .t
+} -body {
toplevel .t
wm grid .t 1 1 50 50
wm geom .t 4x4
@@ -688,20 +703,19 @@ test wm-maxsize-2.4 {attempting to resize to a value
wm geom .t 8x6
update
lrange [split [wm geom .t] x+] 0 1
-} {6 5}
-test wm-maxsize-2.5 {Use max size if window size is not
- explicitly set and the reqWidth/reqHeight are
- bigger than the max size} {
+} -result {6 5}
+test wm-maxsize-2.5 {Use max size if window size is not explicitly set\
+ and the reqWidth/reqHeight are bigger than the max size} -setup {
destroy .t
+} -body {
toplevel .t
pack [frame .t.f -width 400 -height 400]
update idletasks
- set req [list [winfo reqwidth .t] \
- [winfo reqheight .t]]
+ set req [list [winfo reqwidth .t] [winfo reqheight .t]]
wm maxsize .t 300 300
update
list $req [lrange [split [wm geom .t] x+] 0 1]
-} {{400 400} {300 300}}
+} -result {{400 400} {300 300}}
### wm minsize ###
@@ -720,28 +734,31 @@ test wm-minsize-1.4 {usage} {
test wm-minsize-1.5 {usage} {
list [catch {wm minsize . 100 bogus} msg] $msg
} {1 {expected integer but got "bogus"}}
-test wm-minsize-1.6 {usage} {
- catch {destroy .t2}
+test wm-minsize-1.6 {usage} -setup {
+ destroy .t2
+} -body {
toplevel .t2
wm minsize .t2 300 200
- set result [wm minsize .t2]
+ wm minsize .t2
+} -cleanup {
destroy .t2
- set result
-} {300 200}
+} -result {300 200}
-test wm-minsize-2.1 {setting the minsize to a value larger
- than the current size will resize a toplevel} {
+test wm-minsize-2.1 {setting the minsize to a value larger\
+ than the current size will resize a toplevel} -setup {
destroy .t
+} -body {
toplevel .t -width 200 -height 200
update
wm minsize .t 400 300
# UpdateGeometryInfo invoked at idle
update
lrange [split [wm geom .t] x+] 0 1
-} {400 300}
-test wm-minsize-2.2 {setting the minsize to a value larger
- than the current size will resize a gridded toplevel} {
+} -result {400 300}
+test wm-minsize-2.2 {setting the minsize to a value larger\
+ than the current size will resize a gridded toplevel} -setup {
destroy .t
+} -body {
toplevel .t
wm grid .t 1 1 50 50
wm geom .t 4x4
@@ -750,22 +767,22 @@ test wm-minsize-2.2 {setting the minsize to a value larger
# UpdateGeometryInfo invoked at idle
update
lrange [split [wm geom .t] x+] 0 1
-} {8 8}
-test wm-minsize-2.3 {attempting to resize to a value
- smaller than the current minsize will set
- it to the minsize} {
+} -result {8 8}
+test wm-minsize-2.3 {attempting to resize to a value\
+ smaller than the current minsize will set it to the minsize} -setup {
destroy .t
+} -body {
toplevel .t -width 400 -height 400
wm minsize .t 300 300
update
wm geom .t 200x200
update
lrange [split [wm geom .t] x+] 0 1
-} {300 300}
-test wm-minsize-2.4 {attempting to resize to a value
- smaller than the current minsize will set
- it to the minsize when gridded} {
+} -result {300 300}
+test wm-minsize-2.4 {attempting to resize to a value smaller than the\
+ current minsize will set it to the minsize when gridded} -setup {
destroy .t
+} -body {
toplevel .t
wm grid .t 1 1 50 50
wm geom .t 8x8
@@ -774,11 +791,11 @@ test wm-minsize-2.4 {attempting to resize to a value
wm geom .t 4x4
update
lrange [split [wm geom .t] x+] 0 1
-} {6 6}
-test wm-minsize-2.5 {Use min size if window size is not
- explicitly set and the reqWidth/reqHeight are
- smaller than the min size} {
+} -result {6 6}
+test wm-minsize-2.5 {Use min size if window size is not explicitly set\
+ and the reqWidth/reqHeight are smaller than the min size} -setup {
destroy .t
+} -body {
toplevel .t
pack [frame .t.f -width 250 -height 250]
update idletasks
@@ -787,7 +804,7 @@ test wm-minsize-2.5 {Use min size if window size is not
wm minsize .t 300 300
update
list $req [lrange [split [wm geom .t] x+] 0 1]
-} {{250 250} {300 300}}
+} -result {{250 250} {300 300}}
### wm overrideredirect ###
@@ -822,8 +839,9 @@ test wm-positionfrom-1.3 {usage} {
list [catch {wm positionfrom .t none} msg] $msg
} {1 {bad argument "none": must be program or user}}
-test wm-positionfrom-2.1 {setting and reading values} {
- catch {destroy .t2}
+test wm-positionfrom-2.1 {setting and reading values} -setup {
+ destroy .t2
+} -body {
toplevel .t2
set result {}
wm positionfrom .t user
@@ -832,9 +850,9 @@ test wm-positionfrom-2.1 {setting and reading values} {
lappend result [wm positionfrom .t]
wm positionfrom .t {}
lappend result [wm positionfrom .t]
+} -cleanup {
destroy .t2
- set result
-} {user program {}}
+} -result {user program {}}
### wm protocol ###
@@ -939,82 +957,91 @@ test wm-stackorder-1.5 {usage} {
test wm-stackorder-1.6 {usage} {
list [catch {wm stackorder . isabove _} err] $err
} {1 {bad window path name "_"}}
-test wm-stackorder-1.7 {usage} {
- catch {destroy .t}
+test wm-stackorder-1.7 {usage} -setup {
+ destroy .t
+} -body {
toplevel .t
button .t.b
- list [catch {wm stackorder .t.b} err] $err
-} {1 {window ".t.b" isn't a top-level window}}
-test wm-stackorder-1.8 {usage} {
- catch {destroy .t}
+ wm stackorder .t.b
+} -returnCodes error -result {window ".t.b" isn't a top-level window}
+test wm-stackorder-1.8 {usage} -setup {
+ destroy .t
+} -body {
toplevel .t
button .t.b
pack .t.b
update
- list [catch {wm stackorder . isabove .t.b} err] $err
-} {1 {window ".t.b" isn't a top-level window}}
-test wm-stackorder-1.9 {usage} {
- catch {destroy .t}
+ wm stackorder . isabove .t.b
+} -returnCodes error -result {window ".t.b" isn't a top-level window}
+test wm-stackorder-1.9 {usage} -setup {
+ destroy .t
+} -body {
toplevel .t
button .t.b
pack .t.b
update
- list [catch {wm stackorder . isbelow .t.b} err] $err
-} {1 {window ".t.b" isn't a top-level window}}
-test wm-stackorder-1.10 {usage, isabove|isbelow toplevels must be mapped} {
- catch {destroy .t}
- toplevel .t ; update
+ wm stackorder . isbelow .t.b
+} -returnCodes error -result {window ".t.b" isn't a top-level window}
+test wm-stackorder-1.10 {usage, isabove|isbelow toplevels must be mapped} -setup {
+ destroy .t
+} -body {
+ toplevel .t
+ update
wm withdraw .t
- list [catch {wm stackorder .t isabove .} err] $err
-} {1 {window ".t" isn't mapped}}
-test wm-stackorder-1.11 {usage, isabove|isbelow toplevels must be mapped} {
- catch {destroy .t}
- toplevel .t ; update
+ wm stackorder .t isabove .
+} -returnCodes error -result {window ".t" isn't mapped}
+test wm-stackorder-1.11 {usage, isabove|isbelow toplevels must be mapped} -setup {
+ destroy .t
+} -body {
+ toplevel .t
+ update
wm withdraw .t
- list [catch {wm stackorder . isbelow .t} err] $err
-} {1 {window ".t" isn't mapped}}
+ wm stackorder . isbelow .t
+} -returnCodes error -result {window ".t" isn't mapped}
deleteWindows
-test wm-stackorder-2.1 {} {
- catch {destroy .t}
+test wm-stackorder-2.1 {} -setup {
+ destroy .t
+} -body {
toplevel .t ; update
wm stackorder .
-} {. .t}
-test wm-stackorder-2.2 {} {
- catch {destroy .t}
+} -result {. .t}
+test wm-stackorder-2.2 {} -setup {
+ destroy .t
+} -body {
toplevel .t ; update
raise .
raiseDelay
wm stackorder .
-} {.t .}
-test wm-stackorder-2.3 {} {
- catch {destroy .t}
+} -result {.t .}
+test wm-stackorder-2.3 {} -setup {
+ destroy .t .t2
+} -body {
toplevel .t ; update
- catch {destroy .t2}
toplevel .t2 ; update
raise .
raise .t2
raiseDelay
wm stackorder .
-} {.t . .t2}
-test wm-stackorder-2.4 {} {
- catch {destroy .t}
+} -result {.t . .t2}
+test wm-stackorder-2.4 {} -setup {
+ destroy .t .t2
+} -body {
toplevel .t ; update
- catch {destroy .t2}
toplevel .t2 ; update
raise .
lower .t2
raiseDelay
wm stackorder .
-} {.t2 .t .}
+} -result {.t2 .t .}
test wm-stackorder-2.5 {} {
- catch {destroy .parent}
+ destroy .parent
toplevel .parent ; update
- catch {destroy .parent.child1}
+ destroy .parent.child1
toplevel .parent.child1 ; update
- catch {destroy .parent.child2}
+ destroy .parent.child2
toplevel .parent.child2 ; update
- catch {destroy .extra}
+ destroy .extra
toplevel .extra ; update
raise .parent
lower .parent.child2
@@ -1022,110 +1049,121 @@ test wm-stackorder-2.5 {} {
wm stackorder .parent
} {.parent.child2 .parent.child1 .parent}
deleteWindows
-test wm-stackorder-2.6 {non-toplevel widgets ignored} {
- catch {destroy .t1}
+test wm-stackorder-2.6 {non-toplevel widgets ignored} -setup {
+ destroy .t1
+} -body {
toplevel .t1
button .t1.b
pack .t1.b
update
wm stackorder .
-} {. .t1}
+} -result {. .t1}
deleteWindows
test wm-stackorder-2.7 {no children returns self} {
wm stackorder .
} {.}
deleteWindows
-test wm-stackorder-3.1 {unmapped toplevel} {
- catch {destroy .t1}
+test wm-stackorder-3.1 {unmapped toplevel} -setup {
+ destroy .t1 .t2
+} -body {
toplevel .t1 ; update
- catch {destroy .t2}
toplevel .t2 ; update
wm iconify .t1
wm stackorder .
-} {. .t2}
-test wm-stackorder-3.2 {unmapped toplevel} {
- catch {destroy .t1}
+} -result {. .t2}
+test wm-stackorder-3.2 {unmapped toplevel} -setup {
+ destroy .t1 .t2
+} -body {
toplevel .t1 ; update
- catch {destroy .t2}
toplevel .t2 ; update
wm withdraw .t2
wm stackorder .
-} {. .t1}
-test wm-stackorder-3.3 {unmapped toplevel} {
- catch {destroy .t1}
+} -result {. .t1}
+test wm-stackorder-3.3 {unmapped toplevel} -setup {
+ destroy .t1 .t2
+} -body {
toplevel .t1 ; update
- catch {destroy .t2}
toplevel .t2 ; update
wm withdraw .t2
wm stackorder .t2
-} {}
-test wm-stackorder-3.4 {unmapped toplevel} {
- catch {destroy .t1}
+} -result {}
+test wm-stackorder-3.4 {unmapped toplevel} -setup {
+ destroy .t1
+} -body {
toplevel .t1 ; update
toplevel .t1.t2 ; update
wm withdraw .t1.t2
wm stackorder .t1
-} {.t1}
-test wm-stackorder-3.5 {unmapped toplevel} {
- catch {destroy .t1}
+} -result {.t1}
+test wm-stackorder-3.5 {unmapped toplevel} -setup {
+ destroy .t1
+} -body {
toplevel .t1 ; update
toplevel .t1.t2 ; update
wm withdraw .t1
wm stackorder .t1
-} {.t1.t2}
-test wm-stackorder-3.6 {unmapped toplevel} {
- catch {destroy .t1}
+} -result {.t1.t2}
+test wm-stackorder-3.6 {unmapped toplevel} -setup {
+ destroy .t1
+} -body {
toplevel .t1 ; update
toplevel .t1.t2 ; update
toplevel .t1.t2.t3 ; update
wm withdraw .t1.t2
wm stackorder .t1
-} {.t1 .t1.t2.t3}
-test wm-stackorder-3.7 {unmapped toplevel, mapped children returned} {
- catch {destroy .t1}
+} -result {.t1 .t1.t2.t3}
+test wm-stackorder-3.7 {unmapped toplevel, mapped children returned} -setup {
+ destroy .t1
+} -body {
toplevel .t1 ; update
toplevel .t1.t2 ; update
wm withdraw .t1
wm stackorder .t1
-} {.t1.t2}
-test wm-stackorder-3.8 {toplevel mapped in idle callback } {
- catch {destroy .t1}
+} -result {.t1.t2}
+test wm-stackorder-3.8 {toplevel mapped in idle callback } -setup {
+ destroy .t1
+} -body {
toplevel .t1
wm stackorder .
-} {.}
+} -result {.}
deleteWindows
-test wm-stackorder-4.1 {wm stackorder isabove|isbelow} {
- catch {destroy .t}
+test wm-stackorder-4.1 {wm stackorder isabove|isbelow} -setup {
+ destroy .t
+} -body {
toplevel .t ; update
raise .t
wm stackorder . isabove .t
-} {0}
-test wm-stackorder-4.2 {wm stackorder isabove|isbelow} {
- catch {destroy .t}
+} -result {0}
+test wm-stackorder-4.2 {wm stackorder isabove|isbelow} -setup {
+ destroy .t
+} -body {
toplevel .t ; update
raise .t
wm stackorder . isbelow .t
-} {1}
-test wm-stackorder-4.3 {wm stackorder isabove|isbelow} {
- catch {destroy .t}
+} -result {1}
+test wm-stackorder-4.3 {wm stackorder isabove|isbelow} -setup {
+ destroy .t
+} -body {
toplevel .t ; update
raise .
raiseDelay
wm stackorder .t isa .
-} {0}
-test wm-stackorder-4.4 {wm stackorder isabove|isbelow} {
- catch {destroy .t}
+} -result {0}
+test wm-stackorder-4.4 {wm stackorder isabove|isbelow} -setup {
+ destroy .t
+} -body {
toplevel .t ; update
raise .
raiseDelay
wm stackorder .t isb .
-} {1}
+} -result {1}
deleteWindows
-test wm-stackorder-5.1 {a menu is not a toplevel} {
- catch {destroy .t}
+test wm-stackorder-5.1 {a menu is not a toplevel} -setup {
+ destroy .t
+} -body {
toplevel .t
menu .t.m -type menubar
.t.m add cascade -label "File"
@@ -1134,36 +1172,39 @@ test wm-stackorder-5.1 {a menu is not a toplevel} {
raise .
raiseDelay
wm stackorder .
-} {.t .}
-test wm-stackorder-5.2 {A normal toplevel can't be
- raised above an overrideredirect toplevel } {
- catch {destroy .t}
+} -result {.t .}
+test wm-stackorder-5.2 {A normal toplevel can't be\
+ raised above an overrideredirect toplevel} -setup {
+ destroy .t
+} -body {
toplevel .t
wm overrideredirect .t 1
raise .
update
raiseDelay
wm stackorder . isabove .t
-} 0
-test wm-stackorder-5.3 {An overrideredirect window
- can be explicitly lowered } {
- catch {destroy .t}
+} -result 0
+test wm-stackorder-5.3 {An overrideredirect window\
+ can be explicitly lowered} -setup {
+ destroy .t
+} -body {
toplevel .t
wm overrideredirect .t 1
lower .t
update
raiseDelay
wm stackorder .t isbelow .
-} 1
+} -result 1
-test wm-stackorder-6.1 {An embedded toplevel does not
- appear in the stacking order} {
+test wm-stackorder-6.1 {An embedded toplevel does not\
+ appear in the stacking order} -setup {
deleteWindows
+} -body {
toplevel .real -container 1
toplevel .embd -bg blue -use [winfo id .real]
update
wm stackorder .
-} {. .real}
+} -result {. .real}
stdWindow
@@ -1633,15 +1674,16 @@ test wm-withdraw-1.2 {usage} {
list [catch {wm withdraw . _} msg] $msg
} {1 {wrong # args: should be "wm withdraw window"}}
-test wm-withdraw-2.1 {Misc errors} {
+test wm-withdraw-2.1 {Misc errors} -setup {
deleteWindows
+} -body {
toplevel .t
toplevel .t2
wm iconwindow .t .t2
- set result [list [catch {wm withdraw .t2} msg] $msg]
+ wm withdraw .t2
+} -returnCodes error -cleanup {
destroy .t2
- set result
-} {1 {can't withdraw .t2: it is an icon for .t}}
+} -result {can't withdraw .t2: it is an icon for .t}
test wm-withdraw-3.1 {} {
update
@@ -1654,14 +1696,15 @@ test wm-withdraw-3.1 {} {
### Misc. wm tests ###
-test wm-deletion-epoch-1.1 {Deletion epoch on multiple displays} {altDisplay} {
- # See Tk Bug #671330 "segfault when e.g. deiconifying destroyed window"
+test wm-deletion-epoch-1.1 {Deletion epoch on multiple displays} -constraints altDisplay -setup {
deleteWindows
+} -body {
+ # See Tk Bug #671330 "segfault when e.g. deiconifying destroyed window"
set w [toplevel .t -screen $env(TK_ALT_DISPLAY)]
wm deiconify $w ;# this caches the WindowRep
destroy .t
- list [catch {wm deiconify $w} msg] $msg
-} {1 {bad window path name ".t"}}
+ wm deiconify $w
+} -returnCodes error -result {bad window path name ".t"}
# FIXME: