summaryrefslogtreecommitdiffstats
path: root/tests/macEmbed.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/macEmbed.test')
-rw-r--r--tests/macEmbed.test290
1 files changed, 290 insertions, 0 deletions
diff --git a/tests/macEmbed.test b/tests/macEmbed.test
new file mode 100644
index 0000000..f912dcd
--- /dev/null
+++ b/tests/macEmbed.test
@@ -0,0 +1,290 @@
+# This file is a Tcl script to test out the procedures in the file
+# tkMacEmbed.c. It is organized in the standard fashion for Tcl
+# tests.
+#
+# Copyright (c) 1997 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: @(#) macEmbed.test 1.1 97/08/06 21:18:53
+
+if {$tcl_platform(platform) != "macintosh"} {
+ return
+}
+
+if {[info procs test] != "test"} {
+ source defs
+}
+
+eval destroy [winfo children .]
+wm geometry . {}
+raise .
+
+
+test macEmbed-1.1 {TkpUseWindow procedure, bad window identifier} {
+ catch {destroy .t}
+ list [catch {toplevel .t -use xyz} msg] $msg
+} {1 {expected integer but got "xyz"}}
+test macEmbed-1.2 {TkpUseWindow procedure, bad window identifier} {
+ catch {destroy .t}
+ list [catch {toplevel .t -use 47} msg] $msg
+} {1 {The window ID 47 does not correspond to a valid Tk Window.}}
+test macEmbed-1.3 {TkpUseWindow procedure, creating Container records} {
+ eval destroy [winfo child .]
+ frame .f1 -container 1 -width 200 -height 50
+ frame .f2 -container 1 -width 200 -height 50
+ pack .f1 .f2
+ set w [winfo id .f1]
+ toplevel .t -use $w
+ list [testembed] [expr [lindex [lindex [testembed all] 1] 0] - $w]
+} {{{XXX .f2 {} {}} {XXX .f1 XXX .t}} 0}
+test macEmbed-1.4 {TkpUseWindow procedure, creating Container records} {
+ eval destroy [winfo child .]
+ frame .f1 -container 1 -width 200 -height 50
+ frame .f2 -container 1 -width 200 -height 50
+ pack .f1 .f2
+ set w1 [winfo id .f1]
+ set w2 [winfo id .f2]
+ toplevel .t1 -use $w1
+ toplevel .t2 -use $w2
+ testembed
+} {{XXX .f2 XXX .t2} {XXX .f1 XXX .t1}}
+
+# Can't think of any way to test the procedures TkpMakeWindow,
+# TkpMakeContainer, or EmbedErrorProc.
+
+test macEmbed-2.1 {EmbeddedEventProc procedure} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1
+ testembed
+ destroy .t1
+ update
+ testembed
+} {}
+test macEmbed-2.2 {EmbeddedEventProc procedure} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ toplevel .t1 -use [winfo id .f1]
+ update
+ destroy .f1
+ testembed
+} {}
+test macEmbed-2.3 {EmbeddedEventProc procedure} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ toplevel .t1 -use [winfo id .f1]
+ update
+ destroy .t1
+ update
+ list [testembed] [winfo children .]
+} {{} {}}
+
+test macEmbed-3.1 {EmbeddedEventProc procedure, detect creation} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ set x [testembed]
+ toplevel .t1 -use $w1
+ wm withdraw .t1
+ list $x [testembed]
+} {{{XXX .f1 {} {}}} {{XXX .f1 XXX .t1}}}
+test macEmbed-3.2 {EmbeddedEventProc procedure, disallow position changes} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1 -bd 2 -relief raised
+ update
+ wm geometry .t1 +30+40
+ update
+ wm geometry .t1
+} {200x200+0+0}
+test macEmbed-3.3 {EmbeddedEventProc procedure, disallow position changes} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1
+ update
+ wm geometry .t1 300x100+30+40
+ update
+ wm geometry .t1
+} {300x100+0+0}
+test macEmbed-3.4 {EmbeddedEventProc procedure, geometry requests} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ toplevel .t1 -container 1 -width 200 -height 50
+ set w1 [winfo id .t1]
+ toplevel .t2 -use $w1
+ update
+ .t1 configure -width 300 -height 80
+ update
+ list [winfo width .t1] [winfo height .t1] [wm geometry .t2]
+} {300 80 300x80+0+0}
+test macEmbed-3.5 {EmbeddedEventProc procedure, map requests} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1
+ set x unmapped
+ bind .t1 <Map> {set x mapped}
+ update
+ after 100
+ update
+ set x
+} {mapped}
+test macEmbed-3.6 {EmbeddedEventProc procedure, destroy events} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ bind .f1 <Destroy> {set x dead}
+ set x alive
+ toplevel .t1 -use $w1
+ update
+ destroy .t1
+ update
+ list $x [winfo exists .f1]
+} {dead 0}
+
+test macEmbed-4.1 {EmbedStructureProc procedure, configure events} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1
+ update
+ .t1 configure -width 180 -height 100
+ update
+ winfo geometry .t1
+} {180x100+0+0}
+test macEmbed-4.2 {EmbedStructureProc procedure, destroy events} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1
+ update
+ set x [testembed]
+ destroy .f1
+ list $x [testembed]
+} {{{XXX .f1 XXX .t1}} {}}
+
+# Can't think up any tests for TkpGetOtherWindow procedure.
+
+test unixEmbed-5.1 {TkpClaimFocus procedure} {tempNotMac} {
+ catch {interp delete child}
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ frame .f2 -width 200 -height 50
+ pack .f1 .f2
+ interp create child
+ child eval "set argv {-use [winfo id .f1]}"
+ load {} tk child
+ child eval {
+ . configure -bd 2 -highlightthickness 2 -relief sunken
+ }
+ focus -force .f2
+ update
+ list [child eval {
+ focus .
+ set x [list [focus]]
+ update
+ lappend x [focus]
+ }] [focus]
+} {{{} .} .f1}
+catch {interp delete child}
+
+test macEmbed-6.1 {EmbedWindowDeleted procedure, check parentPtr} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ frame .f2 -container 1 -width 200 -height 50
+ frame .f3 -container 1 -width 200 -height 50
+ frame .f4 -container 1 -width 200 -height 50
+ pack .f1 .f2 .f3 .f4
+ set x {}
+ lappend x [testembed]
+ foreach w {.f3 .f4 .f1 .f2} {
+ destroy $w
+ lappend x [testembed]
+ }
+ set x
+} {{{XXX .f4 {} {}} {XXX .f3 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f4 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}}} {}}
+test macEmbed-6.2 {EmbedWindowDeleted procedure, check embeddedPtr} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ set w1 [winfo id .f1]
+ toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
+ set x {}
+ lappend x [testembed]
+ destroy .t1
+ update
+ lappend x [testembed]
+} {{{XXX .f1 XXX .t1}} {}}
+
+test macEmbed-7.1 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ toplevel .t1 -use [winfo id .f1] -width 150 -height 80
+ update
+ wm geometry .t1 +40+50
+ update
+ wm geometry .t1
+} {150x80+0+0}
+test macEmbed-7.2 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
+ foreach w [winfo child .] {
+ catch {destroy $w}
+ }
+ frame .f1 -container 1 -width 200 -height 50
+ pack .f1
+ toplevel .t1 -use [winfo id .f1] -width 150 -height 80
+ update
+ wm geometry .t1 70x300+10+20
+ update
+ wm geometry .t1
+} {70x300+0+0}
+
+
+
+foreach w [winfo child .] {
+ catch {destroy $w}
+}