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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the "send" command and the
  2. # other procedures in the file tkSend.c.  It is organized in the
  3. # standard fashion for Tcl tests.
  4. #
  5. # Copyright (c) 1994 Sun Microsystems, Inc.
  6. # Copyright (c) 1994-1996 Sun Microsystems, Inc.
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # Copyright (c) 2001 by ActiveState Corporation.
  9. #
  10. # See the file "license.terms" for information on usage and redistribution
  11. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  12. #
  13. # RCS: @(#) $Id: send.test,v 1.8.2.1 2003/07/09 21:12:52 dkf Exp $
  14. package require tcltest 2.1
  15. namespace import -force tcltest::configure
  16. namespace import -force tcltest::testsDirectory
  17. configure -testdir [file join [pwd] [file dirname [info script]]]
  18. configure -loadfile [file join [testsDirectory] constraints.tcl]
  19. tcltest::loadTestedCommands
  20. testConstraint xhost [llength [auto_execok xhost]]
  21. testConstraint testsend [llength [info commands testsend]]
  22. # Compute a script that will load Tk into a child interpreter.
  23. foreach pkg [info loaded] {
  24.     if {[lindex $pkg 1] == "Tk"} {
  25. set loadTk "load $pkg"
  26. break
  27.     }
  28. }
  29. # Procedure to create a new application with a given name and class.
  30. proc newApp {screen name class} {
  31.     global loadTk
  32.     interp create $name
  33.     $name eval [list set argv [list -display $screen -name $name -class $class]]
  34.     eval $loadTk $name
  35. }
  36. set name [tk appname]
  37. set commId ""
  38. catch {
  39.     set registry [testsend prop root InterpRegistry]
  40.     set commId [lindex [testsend prop root InterpRegistry] 0]
  41. }
  42. tk appname tktest
  43. catch {send t_s_1 destroy .}
  44. catch {send t_s_2 destroy .}
  45. test send-1.1 {RegOpen procedure, bogus property} {secureserver testsend} {
  46.     testsend bogus
  47.     set result [winfo interps]
  48.     tk appname tktest
  49.     list $result [winfo interps]
  50. } {{} tktest}
  51. test send-1.2 {RegOpen procedure, bogus property} {secureserver testsend} {
  52.     testsend prop root InterpRegistry {}
  53.     set result [winfo interps]
  54.     tk appname tktest
  55.     list $result [winfo interps]
  56. } {{} tktest}
  57. test send-1.3 {RegOpen procedure, bogus property} {secureserver testsend} {
  58.     testsend prop root InterpRegistry abcdefg
  59.     tk appname tktest
  60.     set x [testsend prop root InterpRegistry]
  61.     string range $x [string first " " $x] end
  62. } " tktestnabcdefgn"
  63. frame .f -width 1 -height 1
  64. set id [string range [winfo id .f] 2 end]
  65. test send-2.1 {RegFindName procedure} {secureserver testsend} {
  66.     testsend prop root InterpRegistry {}
  67.     list [catch {send foo bar} msg] $msg
  68. } {1 {no application named "foo"}}
  69. test send-2.2 {RegFindName procedure} {secureserver testsend} {
  70.     testsend prop root InterpRegistry " abcn defnghinn$id foon"
  71.     tk appname foo
  72. } {foo #2}
  73. test send-2.3 {RegFindName procedure} {secureserver testsend} {
  74.     testsend prop root InterpRegistry "gyz foon"
  75.     tk appname foo
  76. } {foo}
  77. test send-2.4 {RegFindName procedure} {secureserver testsend} {
  78.     testsend prop root InterpRegistry "${id}z foon"
  79.     tk appname foo
  80. } {foo}
  81. test send-3.1 {RegDeleteName procedure} {secureserver testsend} {
  82.     tk appname tktest
  83.     testsend prop root InterpRegistry "012345 gorpn12345 foon12345 tktest"
  84.     tk appname x
  85.     set x [testsend prop root InterpRegistry]
  86.     string range $x [string first " " $x] end
  87. } " xn012345 gorpn12345 foon"
  88. test send-3.2 {RegDeleteName procedure} {secureserver testsend} {
  89.     tk appname tktest
  90.     testsend prop root InterpRegistry "012345 gorpn12345 tktestn23456 tktest"
  91.     tk appname x
  92.     set x [testsend prop root InterpRegistry]
  93.     string range $x [string first " " $x] end
  94. } " xn012345 gorpn23456 tktestn"
  95. test send-3.3 {RegDeleteName procedure} {secureserver testsend} {
  96.     tk appname tktest
  97.     testsend prop root InterpRegistry "012345 tktestn12345 barn23456 tktest"
  98.     tk appname x
  99.     set x [testsend prop root InterpRegistry]
  100.     string range $x [string first " " $x] end
  101. } " xn12345 barn23456 tktestn"
  102. test send-3.4 {RegDeleteName procedure} {secureserver testsend} {
  103.     tk appname tktest
  104.     testsend prop root InterpRegistry "foo"
  105.     tk appname x
  106.     set x [testsend prop root InterpRegistry]
  107.     string range $x [string first " " $x] end
  108. } " xnfoon"
  109. test send-3.5 {RegDeleteName procedure} {secureserver testsend} {
  110.     tk appname tktest
  111.     testsend prop root InterpRegistry ""
  112.     tk appname x
  113.     set x [testsend prop root InterpRegistry]
  114.     string range $x [string first " " $x] end
  115. } " xn"
  116. test send-4.1 {RegAddName procedure} {secureserver testsend} {
  117.     testsend prop root InterpRegistry ""
  118.     tk appname bar
  119.     testsend prop root InterpRegistry
  120. } "$commId barn"
  121. test send-4.2 {RegAddName procedure} {secureserver testsend} {
  122.     testsend prop root InterpRegistry "abc def"
  123.     tk appname bar
  124.     tk appname foo
  125.     testsend prop root InterpRegistry
  126. } "$commId foonabc defn"
  127. # Previous checks should already cover the Regclose procedure.
  128. test send-5.1 {ValidateName procedure} {secureserver testsend} {
  129.     testsend prop root InterpRegistry "123 abcn"
  130.     winfo interps
  131. } {}
  132. test send-5.2 {ValidateName procedure} {secureserver testsend} {
  133.     testsend prop root InterpRegistry "$id Hi there"
  134.     winfo interps
  135. } {{Hi there}}
  136. test send-5.3 {ValidateName procedure} {secureserver testsend} {
  137.     testsend prop root InterpRegistry "$id Bogus"
  138.     list [catch {send Bogus set a 44} msg] $msg
  139. } {1 {target application died or uses a Tk version before 4.0}}
  140. test send-5.4 {ValidateName procedure} {secureserver testsend} {
  141.     tk appname test
  142.     testsend prop root InterpRegistry "$commId Bogusn$commId testn"
  143.     winfo interps
  144. } {test}
  145. if {[testConstraint nonPortable] && [testConstraint xhost]} {
  146.     winfo interps
  147.     tk appname tktest
  148.     update
  149.     setupbg
  150.     set x [split [exec xhost] n]
  151.     foreach i [lrange $x 1 end]  {
  152. exec xhost - $i
  153.     }
  154. }
  155. test send-6.1 {ServerSecure procedure} {nonPortable secureserver} {
  156.     set a 44
  157.     list [dobg [list send [tk appname] set a 55]] $a
  158. } {55 55}
  159. test send-6.2 {ServerSecure procedure} {nonPortable secureserver xhost} {
  160.     set a 22
  161.     exec xhost [exec hostname]
  162.     list [catch {dobg [list send [tk appname] set a 33]} msg] $a $msg
  163. } {0 22 {X server insecure (must use xauth-style authorization); command ignored}}
  164. test send-6.3 {ServerSecure procedure} {nonPortable secureserver xhost} {
  165.     set a abc
  166.     exec xhost - [exec hostname]
  167.     list [dobg [list send [tk appname] set a new]] $a
  168. } {new new}
  169. cleanupbg
  170. test send-7.1 {Tk_SetAppName procedure} {secureserver testsend} {
  171.     testsend prop root InterpRegistry ""
  172.     tk appname newName
  173.     list [tk appname oldName] [testsend prop root InterpRegistry]
  174. } "oldName {$commId oldNamen}"
  175. test send-7.2 {Tk_SetAppName procedure, name not in use} {secureserver testsend} {
  176.     testsend prop root InterpRegistry ""
  177.     list [tk appname gorp] [testsend prop root InterpRegistry]
  178. } "gorp {$commId gorpn}"
  179. test send-7.3 {Tk_SetAppName procedure, name in use by us} {secureserver testsend} {
  180.     tk appname name1
  181.     testsend prop root InterpRegistry "$commId name2n"
  182.     list [tk appname name2] [testsend prop root InterpRegistry]
  183. } "name2 {$commId name2n}"
  184. test send-7.4 {Tk_SetAppName procedure, name in use} {secureserver testsend} {
  185.     tk appname name1
  186.     testsend prop root InterpRegistry "$id foon$id foo #2n$id foo #3n"
  187.     list [tk appname foo] [testsend prop root InterpRegistry]
  188. } "{foo #4} {$commId foo #4n$id foon$id foo #2n$id foo #3n}"
  189. test send-8.1 {Tk_SendCmd procedure, options} {secureserver} {
  190.     setupbg
  191.     set app [dobg {tk appname}]
  192.     set a 66
  193.     send -async $app [list send [tk appname] set a 77]
  194.     set result $a
  195.     after 200 set x 40
  196.     tkwait variable x
  197.     cleanupbg
  198.     lappend result $a
  199. } {66 77}
  200. test send-8.2 {Tk_SendCmd procedure, options} {secureserver altDisplay} {
  201.     setupbg -display $env(TK_ALT_DISPLAY)
  202.     tk appname xyzgorp
  203.     set a homeDisplay
  204.     set result [dobg "
  205.     toplevel .t -screen [winfo screen .]
  206.     wm geometry .t +0+0
  207.     set a altDisplay
  208.     tk appname xyzgorp
  209.     list [send xyzgorp set a] [send -displayof .t xyzgorp set a]
  210.     "]
  211.     cleanupbg
  212.     set result
  213. } {altDisplay homeDisplay}
  214. test send-8.3 {Tk_SendCmd procedure, options} {secureserver} {
  215.     list [catch {send -- -async foo bar baz} msg] $msg
  216. } {1 {no application named "-async"}}
  217. test send-8.4 {Tk_SendCmd procedure, options} {secureserver} {
  218.     list [catch {send -gorp foo bar baz} msg] $msg
  219. } {1 {bad option "-gorp": must be -async, -displayof, or --}}
  220. test send-8.5 {Tk_SendCmd procedure, options} {secureserver} {
  221.     list [catch {send -async foo} msg] $msg
  222. } {1 {wrong # args: should be "send ?options? interpName arg ?arg ...?"}}
  223. test send-8.6 {Tk_SendCmd procedure, options} {secureserver} {
  224.     list [catch {send foo} msg] $msg
  225. } {1 {wrong # args: should be "send ?options? interpName arg ?arg ...?"}}
  226. test send-8.7 {Tk_SendCmd procedure, local execution} {secureserver} {
  227.     set a initial
  228.     send [tk appname] {set a new}
  229.     set a
  230. } {new}
  231. test send-8.8 {Tk_SendCmd procedure, local execution} {secureserver} {
  232.     set a initial
  233.     send [tk appname] set a new
  234.     set a
  235. } {new}
  236. test send-8.9 {Tk_SendCmd procedure, local execution} {secureserver} {
  237.     set a initial
  238.     string tolower [list [catch {send [tk appname] open bad_file} msg] 
  239.     $msg $errorInfo $errorCode]
  240. } {1 {couldn't open "bad_file": no such file or directory} {couldn't open "bad_file": no such file or directory
  241.     while executing
  242. "open bad_file"
  243.     invoked from within
  244. "send [tk appname] open bad_file"} {posix enoent {no such file or directory}}}
  245. test send-8.10 {Tk_SendCmd procedure, no such interpreter} {secureserver} {
  246.     list [catch {send bogus_name bogus_command} msg] $msg
  247. } {1 {no application named "bogus_name"}}
  248. catch {
  249.     newApp "" t_s_1 Test
  250.     t_s_1 eval wm withdraw .
  251. }
  252. test send-8.11 {Tk_SendCmd procedure, local execution, different interp} {secureserver testsend} {
  253.     set a us
  254.     send t_s_1 set a them
  255.     list $a [send t_s_1 set a]
  256. } {us them}
  257. test send-8.12 {Tk_SendCmd procedure, local execution, different interp} {secureserver testsend} {
  258.     set a us
  259.     send t_s_1 {set a them}
  260.     list $a [send t_s_1 {set a}]
  261. } {us them}
  262. test send-8.13 {Tk_SendCmd procedure, local execution, different interp} {secureserver testsend} {
  263.     set a us
  264.     send t_s_1 {set a them}
  265.     list $a [send t_s_1 {set a}]
  266. } {us them}
  267. test send-8.14 {Tk_SendCmd procedure, local interp killed by send} {secureserver testsend} {
  268.     newApp "" t_s_2 Test
  269.     list [catch {send t_s_2 {destroy .; concat result}} msg] $msg
  270. } {0 result}
  271. catch {interp delete t_s_2}
  272. test send-8.15 {Tk_SendCmd procedure, local interp, error info} {secureserver testsend} {
  273.     catch {error foo}
  274.     list [catch {send t_s_1 {if 1 {open bogus_file_name}}} msg] $msg $errorInfo $errorCode
  275. } {1 {couldn't open "bogus_file_name": no such file or directory} {couldn't open "bogus_file_name": no such file or directory
  276.     while executing
  277. "open bogus_file_name"
  278.     invoked from within
  279. "if 1 {open bogus_file_name}"
  280.     invoked from within
  281. "send t_s_1 {if 1 {open bogus_file_name}}"} {POSIX ENOENT {no such file or directory}}}
  282. test send-8.16 {Tk_SendCmd procedure, bogusCommWindow} {secureserver testsend} {
  283.     testsend prop root InterpRegistry "10234 bogusn"
  284.     set result [list [catch {send bogus bogus command} msg] $msg]
  285.     winfo interps
  286.     tk appname tktest
  287.     set result
  288. } {1 {no application named "bogus"}}
  289. catch {interp delete t_s_1}
  290. test send-8.17 {Tk_SendCmd procedure, deferring events} {secureserver nonPortable} {
  291.     # Non-portable because some window managers ignore "raise"
  292.     # requests so can't guarantee that new app's window won't
  293.     # obscure .f, thereby masking the Expose event.
  294.     setupbg
  295.     set app [dobg {tk appname}]
  296.     raise . ; # Don't want new app obscuring .f
  297.     catch {destroy .f}
  298.     frame .f
  299.     place .f -x 0 -y 0
  300.     bind .f <Expose> {set a exposed}
  301.     set a {no event yet}
  302.     set result ""
  303.     lappend result [send $app send [list [tk appname]] set a]
  304.     lappend result $a
  305.     update
  306.     cleanupbg
  307.     lappend result $a
  308. } {{no event yet} {no event yet} exposed}
  309. test send-8.18 {Tk_SendCmd procedure, error in remote app} {secureserver} {
  310.     setupbg
  311.     set app [dobg {tk appname}]
  312.     set result [string tolower [list [catch {send $app open bad_name} msg] 
  313.     $msg $errorInfo $errorCode]]
  314.     cleanupbg
  315.     set result
  316. } {1 {couldn't open "bad_name": no such file or directory} {couldn't open "bad_name": no such file or directory
  317.     while executing
  318. "open bad_name"
  319.     invoked from within
  320. "send $app open bad_name"} {posix enoent {no such file or directory}}}
  321. test send-8.19 {Tk_SendCmd, using modal timeouts} {secureserver} {
  322.     setupbg
  323.     set app [dobg {tk appname}]
  324.     set x no
  325.     set result ""
  326.     after 0 {set x yes}
  327.     lappend result [send $app {concat x y z}]
  328.     lappend result $x
  329.     update
  330.     cleanupbg
  331.     lappend result $x
  332. } {{x y z} no yes}
  333. tk appname tktest
  334. catch {destroy .f}
  335. frame .f
  336. set id [string range [winfo id .f] 2 end]
  337. test send-9.1 {Tk_GetInterpNames procedure} {secureserver testsend} {
  338.     testsend prop root InterpRegistry 
  339.     "$commId tktestnfoo barn$commId tktestn$id frame .fnnn"
  340.     list [winfo interps] [testsend prop root InterpRegistry]
  341. } "{tktest tktest {frame .f}} {$commId tktestn$commId tktestn$id frame .f
  342. }"
  343. test send-9.2 {Tk_GetInterpNames procedure} {secureserver testsend} {
  344.     testsend prop root InterpRegistry 
  345.     "$commId tktestnfoobarn$commId gorpn"
  346.     list [winfo interps] [testsend prop root InterpRegistry]
  347. } "tktest {$commId tktestn}"
  348. test send-9.3 {Tk_GetInterpNames procedure} {secureserver testsend} {
  349.     testsend prop root InterpRegistry {}
  350.     list [winfo interps] [testsend prop root InterpRegistry]
  351. } {{} {}}
  352. catch {testsend prop root InterpRegistry "$commId tktestn$id dummyn"}
  353. test send-10.1 {SendEventProc procedure, bogus comm property} {secureserver testsend} {
  354.     testsend prop comm Comm {abc def}
  355.     testsend prop comm Comm {}
  356.     update
  357. } {}
  358. test send-10.2 {SendEventProc procedure, simultaneous messages} {secureserver testsend} {
  359.     testsend prop comm Comm 
  360.     "cn-n tktestn-s set a 44ncn-n tktestn-s set b 45n"
  361.     set a null
  362.     set b xyzzy
  363.     update
  364.     list $a $b
  365. } {44 45}
  366. test send-10.3 {SendEventProc procedure, simultaneous messages} {secureserver testsend} {
  367.     testsend prop comm Comm 
  368.     "cn-n tktestn-s set a newAnrn-s [testsend serial]n-r 12345ncn-n tktestn-s set b newBn"
  369.     set a null
  370.     set b xyzzy
  371.     set x [send dummy bogus]
  372.     list $x $a $b
  373. } {12345 newA newB}
  374. test send-10.4 {SendEventProc procedure, leading nulls, bogus commands} {secureserver testsend} {
  375.     testsend prop comm Comm 
  376.     "nnxn-bogusnncn-n tktestn-s set a 44n"
  377.     set a null
  378.     update
  379.     set a
  380. } {44}
  381. test send-10.5 {SendEventProc procedure, extraneous command options} {secureserver testsend} {
  382.     testsend prop comm Comm 
  383.     "cn-n tktestn-x miscellanousn-y who knows?n-s set a newn"
  384.     set a null
  385.     update
  386.     set a
  387. } {new}
  388. test send-10.6 {SendEventProc procedure, unknown interpreter} {secureserver testsend} {
  389.     testsend prop [winfo id .f] Comm {}
  390.     testsend prop comm Comm 
  391.     "cn-n unknownn-r $id 44n-s set a newn"
  392.     set a null
  393.     update
  394.     list [testsend prop [winfo id .f] Comm] $a
  395. } "{nrn-s 44n-r receiver never heard of interpreter "unknown"n-c 1n} null"
  396. test send-10.7 {SendEventProc procedure, error in script} {secureserver testsend} {
  397.     testsend prop [winfo id .f] Comm {}
  398.     testsend prop comm Comm 
  399.     "cn-n tktestn-r $id 62n-s foreach i {1 2 3} {error {test error} {Initial errorInfo} {test code}}n"
  400.     update
  401.     testsend prop [winfo id .f] Comm
  402. } {
  403. r
  404. -s 62
  405. -r test error
  406. -i Initial errorInfo
  407.     ("foreach" body line 1)
  408.     invoked from within
  409. "foreach i {1 2 3} {error {test error} {Initial errorInfo} {test code}}"
  410. -e test code
  411. -c 1
  412. }
  413. test send-10.8 {SendEventProc procedure, exceptional return} {secureserver testsend} {
  414.     testsend prop [winfo id .f] Comm {}
  415.     testsend prop comm Comm 
  416.     "cn-n tktestn-r $id 62n-s breakn"
  417.     update
  418.     testsend prop [winfo id .f] Comm
  419. } {
  420. r
  421. -s 62
  422. -r 
  423. -c 3
  424. }
  425. test send-10.9 {SendEventProc procedure, empty return} {secureserver testsend} {
  426.     testsend prop [winfo id .f] Comm {}
  427.     testsend prop comm Comm 
  428.     "cn-n tktestn-r $id 62n-s concatn"
  429.     update
  430.     testsend prop [winfo id .f] Comm
  431. } {
  432. r
  433. -s 62
  434. -r 
  435. }
  436. test send-10.10 {SendEventProc procedure, asynchronous calls} {secureserver testsend} {
  437.     testsend prop [winfo id .f] Comm {}
  438.     testsend prop comm Comm 
  439.     "cn-n tktestn-s foreach i {1 2 3} {error {test error} {Initial errorInfo} {test code}}n"
  440.     update
  441.     testsend prop [winfo id .f] Comm
  442. } {}
  443. test send-10.11 {SendEventProc procedure, exceptional return} {secureserver testsend} {
  444.     testsend prop [winfo id .f] Comm {}
  445.     testsend prop comm Comm 
  446.     "cn-n tktestn-s breakn"
  447.     update
  448.     testsend prop [winfo id .f] Comm
  449. } {}
  450. test send-10.12 {SendEventProc procedure, empty return} {secureserver testsend} {
  451.     testsend prop [winfo id .f] Comm {}
  452.     testsend prop comm Comm 
  453.     "cn-n tktestn-s concatn"
  454.     update
  455.     testsend prop [winfo id .f] Comm
  456. } {}
  457. test send-10.13 {SendEventProc procedure, return processing} {secureserver testsend} {
  458.     testsend prop comm Comm 
  459.     "rn-c 1n-e test1n-i test2n-r test3n-s [testsend serial]n"
  460.     list [catch {send dummy foo} msg] $msg $errorInfo $errorCode
  461. } {1 test3 {test2
  462.     invoked from within
  463. "send dummy foo"} test1}
  464. test send-10.14 {SendEventProc procedure, extraneous return options} {secureserver testsend} {
  465.     testsend prop comm Comm 
  466.     "rn-x test1n-y test2n-r resultn-s [testsend serial]n"
  467.     list [catch {send dummy foo} msg] $msg
  468. } {0 result}
  469. test send-10.15 {SendEventProc procedure, serial number} {secureserver testsend} {
  470.     testsend prop comm Comm 
  471.     "rn-r responsen"
  472.     list [catch {send dummy foo} msg] $msg
  473. } {1 {target application died or uses a Tk version before 4.0}}
  474. test send-10.16 {SendEventProc procedure, serial number} {secureserver testsend} {
  475.     testsend prop comm Comm 
  476.     "rn-r responsenn-s 0"
  477.     list [catch {send dummy foo} msg] $msg
  478. } {1 {target application died or uses a Tk version before 4.0}}
  479. test send-10.17 {SendEventProc procedure, errorCode and errorInfo} {secureserver testsend} {
  480.     testsend prop comm Comm 
  481.     "rn-i test1n-e test2n-c 4n-s [testsend serial]n"
  482.     set errorCode oldErrorCode
  483.     set errorInfo oldErrorInfo
  484.     list [catch {send dummy foo} msg] $msg $errorInfo $errorCode
  485. } {4 {} oldErrorInfo oldErrorCode}
  486. test send-10.18 {SendEventProc procedure, send kills application} {secureserver testsend} {
  487.     setupbg
  488.     dobg {tk appname t_s_3}
  489.     set x [list [catch {send t_s_3 destroy .} msg] $msg]
  490.     cleanupbg
  491.     set x
  492. } {0 {}}
  493. test send-10.19 {SendEventProc procedure, send exits} {secureserver testsend} {
  494.     setupbg
  495.     dobg {tk appname t_s_3}
  496.     set x [list [catch {send t_s_3 exit} msg] $msg]
  497.     cleanupbg
  498.     set x
  499. } {1 {target application died}}
  500. test send-11.1 {AppendPropCarefully and AppendErrorProc procedures} {secureserver testsend} {
  501.     testsend prop root InterpRegistry "0x21447 dummyn"
  502.     list [catch {send dummy foo} msg] $msg
  503. } {1 {no application named "dummy"}}
  504. test send-11.2 {AppendPropCarefully and AppendErrorProc procedures} {secureserver testsend} {
  505.     testsend prop comm Comm "cn-r0x123 44n-n tktestn-s concat a b cn"
  506.     update
  507. } {}
  508. winfo interps
  509. tk appname tktest
  510. catch {destroy .f}
  511. frame .f
  512. set id [string range [winfo id .f] 2 end]
  513. test send-12.1 {TimeoutProc procedure} {secureserver testsend} {
  514.     testsend prop root InterpRegistry "$id dummyn"
  515.     list [catch {send dummy foo} msg] $msg
  516. } {1 {target application died or uses a Tk version before 4.0}}
  517. catch {testsend prop root InterpRegistry ""}
  518. test send-12.2 {TimeoutProc procedure} {secureserver} {
  519.     winfo interps
  520.     tk appname tktest
  521.     update
  522.     setupbg
  523.     set app [dobg {
  524. after 10 {after 10 {after 5000; exit}}
  525. tk appname
  526.     }]
  527.     after 200
  528.     set result [list [catch {send $app foo} msg] $msg]
  529.     cleanupbg
  530.     set result
  531. } {1 {target application died}}
  532. winfo interps
  533. tk appname tktest
  534. test send-13.1 {DeleteProc procedure} {secureserver} {
  535.     setupbg
  536.     set app [dobg {rename send {}; tk appname}]
  537.     set result [list [catch {send $app foo} msg] $msg [winfo interps]]
  538.     cleanupbg
  539.     set result
  540. } {1 {no application named "tktest #2"} tktest}
  541. test send-13.2 {DeleteProc procedure} {secureserver} {
  542.     winfo interps
  543.     tk appname tktest
  544.     rename send {}
  545.     set result {}
  546.     lappend result [winfo interps] [info commands send]
  547.     tk appname foo
  548.     lappend result [winfo interps] [info commands send]
  549. } {{} {} foo send}
  550. test send-14.1 {SendRestrictProc procedure, sends crossing from different displays} {secureserver altDisplay} {
  551.     setupbg -display $env(TK_ALT_DISPLAY)
  552.     set result [dobg "
  553.     toplevel .t -screen [winfo screen .]
  554.     wm geometry .t +0+0
  555.     tk appname xyzgorp1
  556.     set x child
  557.     "]
  558.     toplevel .t -screen $env(TK_ALT_DISPLAY)
  559.     wm geometry .t +0+0
  560.     tk appname xyzgorp2
  561.     update
  562.     set y parent
  563.     set result [send -displayof .t xyzgorp1 {list $x [send -displayof .t xyzgorp2 set y]}]
  564.     destroy .t
  565.     cleanupbg
  566.     set result
  567. } {child parent}
  568. catch {
  569.     testsend prop root InterpRegister $registry
  570.     tk appname tktest
  571. }
  572. test send-15.1 {UpdateCommWindow procedure} {secureserver testsend} {
  573.     set x [list [testsend prop comm TK_APPLICATION]]
  574.     newApp "" t_s_1 Test
  575.     send t_s_1 wm withdraw .
  576.     newApp "" t_s_2 Test
  577.     send t_s_2 wm withdraw .
  578.     lappend x [testsend prop comm TK_APPLICATION]
  579.     interp delete t_s_1
  580.     lappend x [testsend prop comm TK_APPLICATION]
  581.     interp delete t_s_2
  582.     lappend x [testsend prop comm TK_APPLICATION]
  583. } {tktest {t_s_2 t_s_1 tktest} {t_s_2 tktest} tktest}
  584. catch {
  585.     tk appname $name
  586.     testsend prop root InterpRegistry $registry
  587.     testdeleteapps
  588. }
  589. rename newApp {}
  590. # cleanup
  591. ::tcltest::cleanupTests
  592. return