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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the procedures in the file 
  2. # tkMacEmbed.c.  It is organized in the standard fashion for Tcl
  3. # tests.
  4. #
  5. # Copyright (c) 1997 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: macEmbed.test,v 1.8 2002/07/14 05:48:46 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 macEmbed-1.1 {TkpUseWindow procedure, bad window identifier} {macOnly} {
  17.     catch {destroy .t}
  18.     list [catch {toplevel .t -use xyz} msg] $msg
  19. } {1 {expected integer but got "xyz"}}
  20. test macEmbed-1.2 {TkpUseWindow procedure, bad window identifier} {macOnly} {
  21.     catch {destroy .t}
  22.     list [catch {toplevel .t -use 47} msg] $msg
  23. } {1 {The window ID 47 does not correspond to a valid Tk Window.}}
  24. test macEmbed-1.3 {TkpUseWindow procedure, creating Container records} {testembed macOnly} {
  25.     deleteWindows
  26.     frame .f1 -container 1 -width 200 -height 50
  27.     frame .f2 -container 1 -width 200 -height 50
  28.     pack .f1 .f2
  29.     set w [winfo id .f1]
  30. toplevel .t -use $w
  31. list [testembed] [expr [lindex [lindex [testembed all] 1] 0] - $w]
  32. } {{{XXX .f2 {} {}} {XXX .f1 XXX .t}} 0}
  33. test macEmbed-1.4 {TkpUseWindow procedure, creating Container records} {testembed macOnly} {
  34.     deleteWindows
  35.     frame .f1 -container 1 -width 200 -height 50
  36.     frame .f2 -container 1 -width 200 -height 50
  37.     pack .f1 .f2
  38.     set w1 [winfo id .f1]
  39.     set w2 [winfo id .f2]
  40. toplevel .t1 -use $w1
  41. toplevel .t2 -use $w2
  42. testembed
  43. } {{XXX .f2 XXX .t2} {XXX .f1 XXX .t1}}
  44. # Can't think of any way to test the procedures TkpMakeWindow,
  45. # TkpMakeContainer, or EmbedErrorProc.
  46. test macEmbed-2.1 {EmbeddedEventProc procedure} {testembed macOnly} {
  47.     deleteWindows
  48.     frame .f1 -container 1 -width 200 -height 50
  49.     pack .f1
  50.     set w1 [winfo id .f1]
  51. toplevel .t1 -use $w1
  52. testembed
  53.     destroy .t1
  54.     update
  55. testembed
  56. } {}
  57. test macEmbed-2.2 {EmbeddedEventProc procedure} {testembed macOnly} {
  58.     deleteWindows
  59.     frame .f1 -container 1 -width 200 -height 50
  60.     pack .f1
  61.     toplevel .t1 -use [winfo id .f1]
  62.     update
  63.     destroy .f1
  64.     testembed
  65. } {}
  66. test macEmbed-2.3 {EmbeddedEventProc procedure} {testembed macOnly} {
  67.     deleteWindows
  68.     frame .f1 -container 1 -width 200 -height 50
  69.     pack .f1
  70.     toplevel .t1 -use [winfo id .f1]
  71.     update
  72.     destroy .t1
  73.     update
  74.     list [testembed] [winfo children .]
  75. } {{} {}}
  76. test macEmbed-3.1 {EmbeddedEventProc procedure, detect creation} {testembed macOnly} {
  77.     deleteWindows
  78.     frame .f1 -container 1 -width 200 -height 50
  79.     pack .f1
  80.     set w1 [winfo id .f1]
  81.     set x [testembed]
  82. toplevel .t1 -use $w1
  83. wm withdraw .t1
  84.     list $x [testembed]
  85. } {{{XXX .f1 {} {}}} {{XXX .f1 XXX .t1}}}
  86. test macEmbed-3.2 {EmbeddedEventProc procedure, disallow position changes} 
  87. {macOnly} {
  88.     deleteWindows
  89.     frame .f1 -container 1 -width 200 -height 50
  90.     pack .f1
  91.     set w1 [winfo id .f1]
  92. toplevel .t1 -use $w1 -bd 2 -relief raised
  93. update
  94. wm geometry .t1 +30+40
  95.     update
  96. wm geometry .t1
  97. } {200x200+0+0}
  98. test macEmbed-3.3 {EmbeddedEventProc procedure, disallow position changes} 
  99. {macOnly} {
  100.     deleteWindows
  101.     frame .f1 -container 1 -width 200 -height 50
  102.     pack .f1
  103.     set w1 [winfo id .f1]
  104. toplevel .t1 -use $w1
  105. update
  106. wm geometry .t1 300x100+30+40
  107.     update
  108. wm geometry .t1
  109. } {300x100+0+0}
  110. test macEmbed-3.4 {EmbeddedEventProc procedure, geometry requests} {macOnly} {
  111.     deleteWindows
  112.     toplevel .t1 -container 1 -width 200 -height 50
  113.     set w1 [winfo id .t1]
  114. toplevel .t2 -use $w1
  115.     update
  116. .t1 configure -width 300 -height 80
  117.     update
  118.     list [winfo width .t1] [winfo height .t1] [wm geometry .t2]
  119. } {300 80 300x80+0+0}
  120. test macEmbed-3.5 {EmbeddedEventProc procedure, map requests} {macOnly} {
  121.     deleteWindows
  122.     frame .f1 -container 1 -width 200 -height 50
  123.     pack .f1
  124.     set w1 [winfo id .f1]
  125. toplevel .t1 -use $w1
  126. set x unmapped
  127. bind .t1 <Map> {set x mapped}
  128.     update
  129. after 100
  130. update
  131. set x
  132. } {mapped}
  133. test macEmbed-3.6 {EmbeddedEventProc procedure, destroy events} {macOnly} {
  134.     deleteWindows
  135.     frame .f1 -container 1 -width 200 -height 50
  136.     pack .f1
  137.     set w1 [winfo id .f1]
  138.     bind .f1 <Destroy> {set x dead}
  139.     set x alive
  140. toplevel .t1 -use $w1
  141.     update
  142. destroy .t1
  143.     update
  144.     list $x [winfo exists .f1]
  145. } {dead 0}
  146. test macEmbed-4.1 {EmbedStructureProc procedure, configure events} {macOnly} {
  147.     deleteWindows
  148.     frame .f1 -container 1 -width 200 -height 50
  149.     pack .f1
  150.     set w1 [winfo id .f1]
  151. toplevel .t1 -use $w1
  152.     update
  153. .t1 configure -width 180 -height 100
  154.     update
  155. winfo geometry .t1
  156. } {180x100+0+0}
  157. test macEmbed-4.2 {EmbedStructureProc procedure, destroy events} {testembed macOnly} {
  158.     deleteWindows
  159.     frame .f1 -container 1 -width 200 -height 50
  160.     pack .f1
  161.     set w1 [winfo id .f1]
  162. toplevel .t1 -use $w1
  163.     update
  164.     set x [testembed]
  165.     destroy .f1
  166.     list $x [testembed]
  167. } {{{XXX .f1 XXX .t1}} {}}
  168. # Can't think up any tests for TkpGetOtherWindow procedure.
  169. test unixEmbed-5.1 {TkpClaimFocus procedure} {macOnly tempNotMac} {
  170.     catch {interp delete child}
  171.     deleteWindows
  172.     frame .f1 -container 1 -width 200 -height 50
  173.     frame .f2 -width 200 -height 50
  174.     pack .f1 .f2
  175.     interp create child
  176.     child eval "set argv {-use [winfo id .f1]}"
  177.     load {} Tk child
  178.     child eval {
  179. . configure -bd 2 -highlightthickness 2 -relief sunken
  180.     }
  181.     focus -force .f2
  182.     update
  183.     list [child eval {
  184. focus .
  185. set x [list [focus]]
  186. update
  187. lappend x [focus]
  188.     }] [focus]
  189. } {{{} .} .f1}
  190. catch {interp delete child}
  191. test macEmbed-6.1 {EmbedWindowDeleted procedure, check parentPtr} {testembed macOnly} {
  192.     deleteWindows
  193.     frame .f1 -container 1 -width 200 -height 50
  194.     frame .f2 -container 1 -width 200 -height 50
  195.     frame .f3 -container 1 -width 200 -height 50
  196.     frame .f4 -container 1 -width 200 -height 50
  197.     pack .f1 .f2 .f3 .f4
  198.     set x {}
  199.     lappend x [testembed]
  200.     foreach w {.f3 .f4 .f1 .f2} {
  201. destroy $w
  202. lappend x [testembed]
  203.     }
  204.     set x
  205. } {{{XXX .f4 {} {}} {XXX .f3 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f4 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}}} {}}
  206. test macEmbed-6.2 {EmbedWindowDeleted procedure, check embeddedPtr} {testembed macOnly} {
  207.     deleteWindows
  208.     frame .f1 -container 1 -width 200 -height 50
  209.     pack .f1
  210.     set w1 [winfo id .f1]
  211. toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
  212. set x {}
  213. lappend x [testembed]
  214. destroy .t1
  215. update
  216. lappend x [testembed]
  217. } {{{XXX .f1 XXX .t1}} {}}
  218. test macEmbed-7.1 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {macOnly} {
  219.     deleteWindows
  220.     frame .f1 -container 1 -width 200 -height 50
  221.     pack .f1
  222.     toplevel .t1 -use [winfo id .f1] -width 150 -height 80
  223.     update
  224.     wm geometry .t1 +40+50
  225.     update
  226.     wm geometry .t1
  227. } {150x80+0+0}
  228. test macEmbed-7.2 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {macOnly} {
  229.     deleteWindows
  230.     frame .f1 -container 1 -width 200 -height 50
  231.     pack .f1
  232.     toplevel .t1 -use [winfo id .f1] -width 150 -height 80
  233.     update
  234.     wm geometry .t1 70x300+10+20
  235.     update
  236.     wm geometry .t1
  237. } {70x300+0+0}
  238. deleteWindows
  239. # cleanup
  240. ::tcltest::cleanupTests
  241. return