winDialog.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:9k
- # This file is a Tcl script to test the Windows specific behavior of
- # the common dialog boxes. It is organized in the standard
- # fashion for Tcl tests.
- #
- # Copyright (c) 1997 Sun Microsystems, Inc.
- # Copyright (c) 1998-1999 by Scriptics Corporation.
- # Copyright (c) 1998-1999 ActiveState Corporation.
- #
- # RCS: @(#) $Id: winDialog.test,v 1.9 2002/07/13 20:28:36 dgp Exp $
- package require tcltest 2.1
- namespace import -force tcltest::configure
- namespace import -force tcltest::testsDirectory
- configure -testdir [file join [pwd] [file dirname [info script]]]
- configure -loadfile [file join [testsDirectory] constraints.tcl]
- tcltest::loadTestedCommands
- testConstraint testwinevent [llength [info commands testwinevent]]
- catch {testwinevent debug 1}
- proc start {arg} {
- set ::tk_dialog 0
- set ::iter_after 0
- after 1 $arg
- }
- proc then {cmd} {
- set ::command $cmd
- set ::dialogresult {}
- afterbody
- vwait ::dialogresult
- return $::dialogresult
- }
- proc afterbody {} {
- if {$::tk_dialog == 0} {
- if {[incr ::iter_after] > 30} {
- set ::dialogresult ">30 iterations waiting on tk_dialog"
- return
- }
- after 150 {afterbody}
- return
- }
- uplevel #0 {set dialogresult [eval $command]}
- }
- proc Click {button} {
- testwinevent $::tk_dialog $button WM_LBUTTONDOWN 1 0x000a000b
- testwinevent $::tk_dialog $button WM_LBUTTONUP 0 0x000a000b
- }
- proc GetText {button} {
- return [testwinevent $::tk_dialog $button WM_GETTEXT]
- }
- proc SetText {button text} {
- return [testwinevent $::tk_dialog $button WM_SETTEXT $text]
- }
- test winDialog-1.1 {Tk_ChooseColorObjCmd} {nt} {
- } {}
- test winDialog-2.1 {ColorDlgHookProc} {nt} {
- } {}
- test winDialog-3.1 {Tk_GetOpenFileObjCmd} {nt testwinevent} {
- start {tk_getOpenFile}
- then {
- set x [GetText 2]
- Click 2
- }
- set x
- } {Cancel}
- test winDialog-4.1 {Tk_GetSaveFileObjCmd} {nt testwinevent} {
- start {tk_getSaveFile}
- then {
- set x [GetText 2]
- Click 2
- }
- set x
- } {Cancel}
- test winDialog-5.1 {GetFileName: no arguments} {nt testwinevent} {
- start {tk_getOpenFile -title Open}
- then {
- Click cancel
- }
- } {0}
- test winDialog-5.2 {GetFileName: one argument} {nt} {
- list [catch {tk_getOpenFile -foo} msg] $msg
- } {1 {bad option "-foo": must be -defaultextension, -filetypes, -initialdir, -initialfile, -multiple, -parent, or -title}}
- test winDialog-5.4 {GetFileName: many arguments} {nt testwinevent} {
- start {tk_getOpenFile -initialdir c:/ -parent . -title test -initialfile foo}
- then {
- Click cancel
- }
- } {0}
- test winDialog-5.5 {GetFileName: Tcl_GetIndexFromObj() != TCL_OK} {nt} {
- list [catch {tk_getOpenFile -foo bar -abc} msg] $msg
- } {1 {bad option "-foo": must be -defaultextension, -filetypes, -initialdir, -initialfile, -multiple, -parent, or -title}}
- test winDialog-5.6 {GetFileName: Tcl_GetIndexFromObj() == TCL_OK} {nt testwinevent} {
- start {tk_getOpenFile -title bar}
- then {
- Click cancel
- }
- } {0}
- test winDialog-5.7 {GetFileName: valid option, but missing value} {nt} {
- list [catch {tk_getOpenFile -initialdir bar -title} msg] $msg
- } {1 {value for "-title" missing}}
- test winDialog-5.8 {GetFileName: extension begins with .} {nt testwinevent} {
- # if (string[0] == '.') {
- # string++;
- # }
- start {set x [tk_getSaveFile -defaultextension .foo -title Save]}
- then {
- SetText 0x480 bar
- Click 1
- }
- string totitle $x
- } [string totitle [file join [pwd] bar.foo]]
- test winDialog-5.9 {GetFileName: extension doesn't begin with .} {nt testwinevent} {
- start {set x [tk_getSaveFile -defaultextension foo -title Save]}
- then {
- SetText 0x480 bar
- Click 1
- }
- string totitle $x
- } [string totitle [file join [pwd] bar.foo]]
- test winDialog-5.10 {GetFileName: file types} {nt testwinevent} {
- # case FILE_TYPES:
- start {tk_getSaveFile -filetypes {{"foo files" .foo FOOF}} -title Foo}
- then {
- set x [GetText 0x470]
- Click cancel
- }
- set x
- } {foo files (*.foo)}
- test winDialog-5.11 {GetFileName: file types: MakeFilter() fails} {nt} {
- # if (MakeFilter(interp, string, &utfFilterString) != TCL_OK)
- list [catch {tk_getSaveFile -filetypes {{"foo" .foo FOO}}} msg] $msg
- } {1 {bad Macintosh file type "FOO"}}
- test winDialog-5.12 {GetFileName: initial directory} {nt testwinevent} {
- # case FILE_INITDIR:
- start {set x [tk_getSaveFile -initialdir c:/ -initialfile "12x 455" -title Foo]}
- then {
- Click 1
- }
- set x
- } {C:/12x 455}
- test winDialog-5.13 {GetFileName: initial directory: Tcl_TranslateFilename()}
- {nt} {
- # if (Tcl_TranslateFileName(interp, string, &ds) == NULL)
-
- list [catch {tk_getOpenFile -initialdir ~12x/455} msg] $msg
- } {1 {user "12x" doesn't exist}}
- test winDialog-5.14 {GetFileName: initial file} {nt testwinevent} {
- # case FILE_INITFILE:
- start {set x [tk_getSaveFile -initialfile "12x 456" -title Foo]}
- then {
- Click 1
- }
- string totitle $x
- } [string totitle [file join [pwd] "12x 456"]]
- test winDialog-5.15 {GetFileName: initial file: Tcl_TranslateFileName()} {nt} {
- # if (Tcl_TranslateFileName(interp, string, &ds) == NULL)
- list [catch {tk_getOpenFile -initialfile ~12x/455} msg] $msg
- } {1 {user "12x" doesn't exist}}
- set a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- append a $a
- append a $a
- append a $a
- append a $a
- test winDialog-5.16 {GetFileName: initial file: long name} {nt testwinevent} {
- start {set x [tk_getSaveFile -initialfile $a -title Long]}
- then {
- Click 1
- }
- string totitle $x
- } [string totitle [string range [file join [pwd] $a] 0 257]]
- test winDialog-5.17 {GetFileName: parent} {nt} {
- # case FILE_PARENT:
- toplevel .t
- set x 0
- start {tk_getOpenFile -parent .t -title Parent; set x 1}
- then {
- destroy .t
- }
- set x
- } {1}
- test winDialog-5.18 {GetFileName: title} {nt testwinevent} {
- # case FILE_TITLE:
-
- start {tk_getOpenFile -title Narf}
- then {
- Click 2
- }
- } {0}
- test winDialog-5.19 {GetFileName: no filter specified} {nt testwinevent} {
- # if (ofn.lpstrFilter == NULL)
- start {tk_getOpenFile -title Filter}
- then {
- set x [GetText 0x470]
- Click 2
- }
- set x
- } {All Files (*.*)}
- test winDialog-5.20 {GetFileName: parent HWND doesn't yet exist} {nt} {
- # if (Tk_WindowId(parent) == None)
- toplevel .t
- start {tk_getOpenFile -parent .t -title Open}
- then {
- destroy .t
- }
- } {}
- test winDialog-5.21 {GetFileName: parent HWND already exists} {nt} {
- toplevel .t
- update
- start {tk_getOpenFile -parent .t -title Open}
- then {
- destroy .t
- }
- } {}
- test winDialog-5.22 {GetFileName: call GetOpenFileName} {nt testwinevent} {
- # winCode = GetOpenFileName(&ofn);
-
- start {tk_getOpenFile -title Open}
- then {
- set x [GetText 1]
- Click 2
- }
- set x
- } {&Open}
- test winDialog-5.23 {GetFileName: call GetSaveFileName} {nt testwinevent} {
- # winCode = GetSaveFileName(&ofn);
- start {tk_getSaveFile -title Save}
- then {
- set x [GetText 1]
- Click 2
- }
- set x
- } {&Save}
- test winDialog-5.24 {GetFileName: convert to /} {nt testwinevent} {
- start {set x [tk_getSaveFile -title Back]}
- then {
- SetText 0x480 "c:\12x 457"
- Click 1
- }
- set x
- } {c:/12x 457}
- test winDialog-6.1 {MakeFilter} {emptyTest nt} {} {}
- test winDialog-7.1 {Tk_MessageBoxObjCmd} {emptyTest nt} {} {}
- test winDialog-8.1 {OFNHookProc} {emptyTest nt} {} {}
- ## The Tk_ChooseDirectoryObjCmd hang on the static build of Windows
- ## because somehow the GetOpenFileName ends up a noop in the static
- ## build.
- ##
- test winDialog-9.1 {Tk_ChooseDirectoryObjCmd: no arguments} {nt testwinevent} {
- start {tk_chooseDirectory}
- then {
- Click cancel
- }
- } {0}
- test winDialog-9.2 {Tk_ChooseDirectoryObjCmd: one argument} {nt} {
- list [catch {tk_chooseDirectory -foo} msg] $msg
- } {1 {bad option "-foo": must be -initialdir, -mustexist, -parent, or -title}}
- test winDialog-9.3 {Tk_ChooseDirectoryObjCmd: many arguments} {nt testwinevent} {
- start {
- tk_chooseDirectory -initialdir c:/ -mustexist 1 -parent . -title test
- }
- then {
- Click cancel
- }
- } {0}
- test winDialog-9.4 {Tk_ChooseDirectoryObjCmd:
- Tcl_GetIndexFromObj() != TCL_OK} {nt} {
- list [catch {tk_chooseDirectory -foo bar -abc} msg] $msg
- } {1 {bad option "-foo": must be -initialdir, -mustexist, -parent, or -title}}
- test winDialog-9.5 {Tk_ChooseDirectoryObjCmd:
- Tcl_GetIndexFromObj() == TCL_OK} {nt testwinevent} {
- start {tk_chooseDirectory -title bar}
- then {
- Click cancel
- }
- } {0}
- test winDialog-9.6 {Tk_ChooseDirectoryObjCmd:
- valid option, but missing value} {nt} {
- list [catch {tk_chooseDirectory -initialdir bar -title} msg] $msg
- } {1 {value for "-title" missing}}
- test winDialog-9.7 {Tk_ChooseDirectoryObjCmd: -initialdir} {nt testwinevent} {
- # case DIR_INITIAL:
- start {set x [tk_chooseDirectory -initialdir c:/ -title Foo]}
- then {
- Click 1
- }
- string tolower [set x]
- } {c:/}
- test winDialog-9.8 {Tk_ChooseDirectoryObjCmd:
- initial directory: Tcl_TranslateFilename()} {nt} {
- # if (Tcl_TranslateFileName(interp, string,
- # &utfDirString) == NULL)
-
- list [catch {tk_chooseDirectory -initialdir ~12x/455} msg] $msg
- } {1 {user "12x" doesn't exist}}
- catch {testwinevent debug 0}
- # cleanup
- ::tcltest::cleanupTests
- return