1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
# xmfbox.test --
#
# This file is a Tcl script to test the file dialog that's used
# when the tk_strictMotif flag is set. Because the file dialog
# runs in a modal loop, the only way to test it sufficiently is
# to call the internal Tcl procedures in xmfbox.tcl directly.
#
# Copyright (c) 1997 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
# Contributions from Don Porter, NIST, 2002. (not subject to US copyright)
# All rights reserved.
package require tcltest 2.1
eval tcltest::configure $argv
tcltest::loadTestedCommands
set testPWD [pwd]
catch {unset foo}
catch {unset data foo}
proc cleanup {} {
global testPWD
set err0 [catch {
cd $testPWD
} msg0]
set err1 [catch {
if [file exists ./~nosuchuser1] {
file delete ./~nosuchuser1
}
} msg1]
set err2 [catch {
if [file exists ./~nosuchuser2] {
file delete ./~nosuchuser2
}
} msg2]
set err3 [catch {
if [file exists ./~nosuchuser3] {
file delete ./~nosuchuser3
}
} msg3]
set err4 [catch {
if [file exists ./~nosuchuser4] {
file delete ./~nosuchuser4
}
} msg4]
if {$err0 || $err1 || $err2 || $err3 || $err4} {
error [list $msg0 $msg1 $msg2 $msg3 $msg4]
}
catch {unset foo}
catch {destroy .foo}
}
test xmfbox-1.1 {tk::MotifFDialog_Create, -parent switch} unix {
catch {unset foo}
set x [tk::MotifFDialog_Create foo open {-parent .}]
catch {destroy $x}
set x
} .foo
test xmfbox-1.2 {tk::MotifFDialog_Create, -parent switch} unix {
catch {unset foo}
toplevel .bar
wm geometry .bar +0+0
set x [tk::MotifFDialog_Create foo open {-parent .bar}]
catch {destroy $x}
catch {destroy .bar}
set x
} .bar.foo
test xmfbox-2.1 {tk::MotifFDialog_InterpFilter, ~ in dir names} unix {
cleanup
file mkdir ./~nosuchuser1
set x [tk::MotifFDialog_Create foo open {}]
$::tk::dialog::file::foo(fEnt) delete 0 end
$::tk::dialog::file::foo(fEnt) insert 0 [pwd]/~nosuchuser1
set kk [tk::MotifFDialog_InterpFilter $x]
} [list $testPWD/~nosuchuser1 *]
test xmfbox-2.2 {tk::MotifFDialog_InterpFilter, ~ in file names} unix {
cleanup
close [open ./~nosuchuser1 {CREAT TRUNC WRONLY}]
set x [tk::MotifFDialog_Create foo open {}]
$::tk::dialog::file::foo(fEnt) delete 0 end
$::tk::dialog::file::foo(fEnt) insert 0 [pwd]/~nosuchuser1
set kk [tk::MotifFDialog_InterpFilter $x]
} [list $testPWD ./~nosuchuser1]
test xmfbox-2.3 {tk::MotifFDialog_Update, ~ in file names} unix {
cleanup
close [open ./~nosuchuser1 {CREAT TRUNC WRONLY}]
set x [tk::MotifFDialog_Create foo open {}]
$::tk::dialog::file::foo(fEnt) delete 0 end
$::tk::dialog::file::foo(fEnt) insert 0 [pwd]/~nosuchuser1
tk::MotifFDialog_InterpFilter $x
tk::MotifFDialog_Update $x
$::tk::dialog::file::foo(fList) get end
} ~nosuchuser1
test xmfbox-2.4 {tk::MotifFDialog_LoadFile, ~ in file names} unix {
cleanup
close [open ./~nosuchuser1 {CREAT TRUNC WRONLY}]
set x [tk::MotifFDialog_Create foo open {}]
set i [lsearch [$::tk::dialog::file::foo(fList) get 0 end] ~nosuchuser1]
expr {$i >= 0}
} 1
test xmfbox-2.5 {tk::MotifFDialog_BrowseFList, ~ in file names} unix {
cleanup
close [open ./~nosuchuser1 {CREAT TRUNC WRONLY}]
set x [tk::MotifFDialog_Create foo open {}]
set i [lsearch [$::tk::dialog::file::foo(fList) get 0 end] ~nosuchuser1]
$::tk::dialog::file::foo(fList) selection clear 0 end
$::tk::dialog::file::foo(fList) selection set $i
tk::MotifFDialog_BrowseFList $x
$::tk::dialog::file::foo(sEnt) get
} $testPWD/~nosuchuser1
test xmfbox-2.6 {tk::MotifFDialog_ActivateFList, ~ in file names} unix {
cleanup
close [open ./~nosuchuser1 {CREAT TRUNC WRONLY}]
set x [tk::MotifFDialog_Create foo open {}]
set i [lsearch [$::tk::dialog::file::foo(fList) get 0 end] ~nosuchuser1]
$::tk::dialog::file::foo(fList) selection clear 0 end
$::tk::dialog::file::foo(fList) selection set $i
tk::MotifFDialog_BrowseFList $x
tk::MotifFDialog_ActivateFList $x
list $::tk::dialog::file::foo(selectPath) \
$::tk::dialog::file::foo(selectFile) $tk::Priv(selectFilePath)
} [list $testPWD ~nosuchuser1 $testPWD/~nosuchuser1]
# cleanup
cleanup
cleanupTests
return
|