# This file is a Tcl script to test out Tk's "tk_dialog" command. # NOTE # # This test file is platform-indifferent. Tests regarding the dialogs that # are specific to the windows platform go into the test file winDialog.test. # # # TESTFILE INITIALIZATION # package require tcltest 2.2; # needed in mode -singleproc 0 # Load the main script main.tcl, which takes care of: # - setup for the application and the root window # - importing commands from the tcltest namespace # - loading of the testutils mechanism along with its utility procs # - loading of Tk specific test constraints (additionally to constraints # provided by the package tcltest) source [file join [tcltest::configure -testdir] main.tcl] # Ensure a pristine initial window state resetWindows # Import utility procs for specific functional areas testutils import dialog # # TESTS # test dialog-1.1 {tk_dialog command} -body { tk_dialog } -match glob -returnCodes error -result {wrong # args: should be "tk_dialog w title text bitmap default *"} test dialog-1.2 {tk_dialog command} -body { tk_dialog foo foo foo foo foo } -returnCodes error -result {bad window path name "foo"} test dialog-1.3 {tk_dialog command} -body { tk_dialog .d foo foo fooBitmap foo } -cleanup { destroy .d } -returnCodes error -result {bitmap "fooBitmap" not defined} test dialog-2.1 {tk_dialog operation} -body { set x [after 5000 [list set tk::Priv(button) "no response"]] after 100 { if {![winfo ismapped .d.button0]} { update } PressButton .d.button0 } set res [tk_dialog .d foo foo info 0 click] after cancel $x return $res } -cleanup { destroy .d } -result 0 test dialog-2.2 {tk_dialog operation} -setup { proc HitReturn {w} { event generate $w focus -force $w event generate $w -keysym Return } } -body { set x [after 5000 [list set tk::Priv(button) "no response"]] after 100 HitReturn .d set res [tk_dialog .d foo foo info 1 click default] after cancel $x return $res } -cleanup { destroy .d } -result 1 test dialog-2.3 {tk_dialog operation} -body { set x [after 5000 [list set tk::Priv(button) "no response"]] after 100 destroy .d set res [tk_dialog .d foo foo info 0 click] after cancel $x return $res } -cleanup { destroy .b } -result -1 # # TESTFILE CLEANUP # testutils forget dialog cleanupTests