summaryrefslogtreecommitdiffstats
path: root/tk8.6/tests/entry.test
diff options
context:
space:
mode:
Diffstat (limited to 'tk8.6/tests/entry.test')
-rw-r--r--tk8.6/tests/entry.test3518
1 files changed, 0 insertions, 3518 deletions
diff --git a/tk8.6/tests/entry.test b/tk8.6/tests/entry.test
deleted file mode 100644
index d27ffb5..0000000
--- a/tk8.6/tests/entry.test
+++ /dev/null
@@ -1,3518 +0,0 @@
-# This file is a Tcl script to test entry widgets in Tk. It is
-# organized in the standard fashion for Tcl tests.
-#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
-
-package require tcltest 2.2
-namespace import ::tcltest::*
-eval tcltest::configure $argv
-tcltest::loadTestedCommands
-
-# For xscrollcommand
-proc scroll args {
- global scrollInfo
- set scrollInfo $args
-}
-# For trace variable
-proc override args {
- global x
- set x 12345
-}
-
-# Procedures used in widget VALIDATION tests
-proc doval {W d i P s S v V} {
- set ::vVals [list $W $d $i $P $s $S $v $V]
- return 1
-}
-proc doval2 {W d i P s S v V} {
- set ::vVals [list $W $d $i $P $s $S $v $V]
- set ::e mydata
- return 1
-}
-proc doval3 {W d i P s S v V} {
- set ::vVals [list $W $d $i $P $s $S $v $V]
- return 0
-}
-
-set cy [font metrics {Courier -12} -linespace]
-
-
-test entry-1.1 {configuration option: "background" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -background #ff0000
- .e cget -background
-} -cleanup {
- destroy .e
-} -result {#ff0000}
-test entry-1.2 {configuration option: "background" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -background non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.3 {configuration option: "bd" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -bd 4
- .e cget -bd
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-1.4 {configuration option: "bd" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -bd badValue
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad screen distance "badValue"}
-
-test entry-1.5 {configuration option: "bg" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -bg #ff0000
- .e cget -bg
-} -cleanup {
- destroy .e
-} -result {#ff0000}
-test entry-1.6 {configuration option: "bg" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -bg non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.7 {configuration option: "borderwidth" for entry} -setup {
- entry .e -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -borderwidth 1.3
- .e cget -borderwidth
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-1.8 {configuration option: "borderwidth" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -borderwidth badValue
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad screen distance "badValue"}
-
-test entry-1.9 {configuration option: "cursor" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -cursor arrow
- .e cget -cursor
-} -cleanup {
- destroy .e
-} -result {arrow}
-test entry-1.10 {configuration option: "cursor" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -cursor badValue
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad cursor spec "badValue"}
-
-test entry-1.11 {configuration option: "disabledbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -disabledbackground green
- .e cget -disabledbackground
-} -cleanup {
- destroy .e
-} -result {green}
-test entry-1.12 {configuration option: "disabledbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -disabledbackground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.13 {configuration option: "disabledforeground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -disabledforeground blue
- .e cget -disabledforeground
-} -cleanup {
- destroy .e
-} -result {blue}
-test entry-1.14 {configuration option: "disabledforeground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -disabledforeground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.15 {configuration option: "exportselection" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -exportselection yes
- .e cget -exportselection
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-1.16 {configuration option: "exportselection" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -exportselection xyzzy
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {expected boolean value but got "xyzzy"}
-
-test entry-1.17 {configuration option: "fg" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -fg #110022
- .e cget -fg
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.18 {configuration option: "fg" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -fg non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.19 {configuration option: "font" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e configure -font {Helvetica -12}
- .e cget -font
-} -cleanup {
- destroy .e
-} -result {Helvetica -12}
-test entry-1.20 {configuration option: "font" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e configure -font {}
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {font "" doesn't exist}
-
-test entry-1.21 {configuration option: "foreground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -foreground #110022
- .e cget -foreground
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.22 {configuration option: "foreground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -foreground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.23 {configuration option: "highlightbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightbackground #110022
- .e cget -highlightbackground
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.24 {configuration option: "highlightbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightbackground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.25 {configuration option: "highlightcolor" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightcolor #110022
- .e cget -highlightcolor
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.26 {configuration option: "highlightcolor" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightcolor non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.27 {configuration option: "highlightthickness" for entry} -setup {
- entry .e -borderwidth 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightthickness 6
- .e cget -highlightthickness
-} -cleanup {
- destroy .e
-} -result {6}
-test entry-1.28 {configuration option: "highlightthickness" for entry} -setup {
- entry .e -borderwidth 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightthickness -2
- .e cget -highlightthickness
-} -cleanup {
- destroy .e
-} -result {0}
-test entry-1.29 {configuration option: "highlightthickness" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -highlightthickness badValue
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad screen distance "badValue"}
-
-test entry-1.30 {configuration option: "insertbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertbackground #110022
- .e cget -insertbackground
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.31 {configuration option: "insertbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertbackground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.32 {configuration option: "insertborderwidth" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertborderwidth 1.3
- .e cget -insertborderwidth
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-1.33 {configuration option: "insertborderwidth" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertborderwidth 2.6x
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad screen distance "2.6x"}
-
-test entry-1.34 {configuration option: "insertofftime" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertofftime 100
- .e cget -insertofftime
-} -cleanup {
- destroy .e
-} -result {100}
-test entry-1.35 {configuration option: "insertofftime" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertofftime 3.2
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {expected integer but got "3.2"}
-
-test entry-1.36 {configuration option: "insertontime" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertontime 100
- .e cget -insertontime
-} -cleanup {
- destroy .e
-} -result {100}
-test entry-1.37 {configuration option: "insertontime" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -insertontime 3.2
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {expected integer but got "3.2"}
-
-test entry-1.38 {configuration option: "invalidcommand" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -invalidcommand "any string"
- .e cget -invalidcommand
-} -cleanup {
- destroy .e
-} -result {any string}
-
-test entry-1.39 {configuration option: "invcmd" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -invcmd "any string"
- .e cget -invcmd
-} -cleanup {
- destroy .e
-} -result {any string}
-
-test entry-1.40 {configuration option: "justify" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -justify right
- .e cget -justify
-} -cleanup {
- destroy .e
-} -result {right}
-test entry-1.41 {configuration option: "justify" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -justify bogus
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad justification "bogus": must be left, right, or center}
-
-test entry-1.42 {configuration option: "readonlybackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -readonlybackground green
- .e cget -readonlybackground
-} -cleanup {
- destroy .e
-} -result {green}
-test entry-1.43 {configuration option: "readonlybackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -readonlybackground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.44 {configuration option: "relief" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -relief flat
- .e cget -relief
-} -cleanup {
- destroy .e
-} -result {flat}
-
-test entry-1.45 {configuration option: "selectbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -selectbackground #110022
- .e cget -selectbackground
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.46 {configuration option: "selectbackground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -selectbackground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.47 {configuration option: "selectborderwidth" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -selectborderwidth 1.3
- .e cget -selectborderwidth
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-1.48 {configuration option: "selectborderwidth" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -selectborderwidth badValue
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad screen distance "badValue"}
-
-test entry-1.49 {configuration option: "selectforeground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -selectforeground #110022
- .e cget -selectforeground
-} -cleanup {
- destroy .e
-} -result {#110022}
-test entry-1.50 {configuration option: "selectforeground" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -selectforeground non-existent
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {unknown color name "non-existent"}
-
-test entry-1.51 {configuration option: "show" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -show *
- .e cget -show
-} -cleanup {
- destroy .e
-} -result {*}
-
-test entry-1.52 {configuration option: "state" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -state n
- .e cget -state
-} -cleanup {
- destroy .e
-} -result {normal}
-test entry-1.53 {configuration option: "state" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -state bogus
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {bad state "bogus": must be disabled, normal, or readonly}
-
-test entry-1.54 {configuration option: "takefocus" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -takefocus "any string"
- .e cget -takefocus
-} -cleanup {
- destroy .e
-} -result {any string}
-
-test entry-1.55 {configuration option: "textvariable" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -textvariable i
- .e cget -textvariable
-} -cleanup {
- destroy .e
-} -result {i}
-
-test entry-1.56 {configuration option: "width" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -width 402
- .e cget -width
-} -cleanup {
- destroy .e
-} -result {402}
-test entry-1.57 {configuration option: "width" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -width 3p
-} -cleanup {
- destroy .e
-} -returnCodes {error} -result {expected integer but got "3p"}
-
-test entry-1.58 {configuration option: "xscrollcommand" for entry} -setup {
- entry .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12 bold}
- pack .e
- update
-} -body {
- .e configure -xscrollcommand {Some command}
- .e cget -xscrollcommand
-} -cleanup {
- destroy .e
-} -result {Some command}
-
-
-
-test entry-2.1 {Tk_EntryCmd procedure} -body {
- entry
-} -returnCodes error -result {wrong # args: should be "entry pathName ?-option value ...?"}
-test entry-2.2 {Tk_EntryCmd procedure} -body {
- entry gorp
-} -returnCodes error -result {bad window path name "gorp"}
-test entry-2.3 {Tk_EntryCmd procedure} -body {
- entry .e
- pack .e
- update
- list [winfo exists .e] [winfo class .e] [info commands .e]
-} -cleanup {
- destroy .e
-} -result {1 Entry .e}
-test entry-2.4 {Tk_EntryCmd procedure} -body {
- entry .e -gorp foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {unknown option "-gorp"}
-test entry-2.4.1 {Tk_EntryCmd procedure} -body {
- catch {entry .e -gorp foo}
- list [winfo exists .e] [info commands .e]
-} -cleanup {
- destroy .e
-} -result {0 {}}
-test entry-2.5 {Tk_EntryCmd procedure} -body {
- entry .e
-} -cleanup {
- destroy .e
-} -result {.e}
-
-
-test entry-3.1 {EntryWidgetCmd procedure} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e option ?arg ...?"}
-test entry-3.2 {EntryWidgetCmd procedure, "bbox" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e bbox
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e bbox index"}
-test entry-3.3 {EntryWidgetCmd procedure, "bbox" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e bbox a b
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e bbox index"}
-test entry-3.4 {EntryWidgetCmd procedure, "bbox" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e bbox bogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "bogus"}
-test entry-3.5 {EntryWidgetCmd procedure, "bbox" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e bbox 0
-} -cleanup {
- destroy .e
-} -result [list 5 5 0 $cy]
-
-# Previously the result was count using previousli counted font measurements
-# and metrics. It was changed to less verbose solution - the result is the one
-# that passes fonts constraint (this concerns tests 3.6, 3.7, 3.8, 3.10)
-test entry-3.6 {EntryWidgetCmd procedure, "bbox" widget command} -constraints {
- fonts
-} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
-# Tcl_UtfAtIndex(): no utf chars
- .e insert 0 "abc"
- list [.e bbox 3] [.e bbox end]
-} -cleanup {
- destroy .e
-} -result {{19 5 7 13} {19 5 7 13}}
-test entry-3.7 {EntryWidgetCmd procedure, "bbox" widget command} -constraints {
- fonts
-} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
-# Tcl_UtfAtIndex(): utf at end
- .e insert 0 "ab\u4e4e"
- .e bbox end
-} -cleanup {
- destroy .e
-} -result {19 5 12 13}
-test entry-3.8 {EntryWidgetCmd procedure, "bbox" widget command} -constraints {
- fonts
-} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
-# Tcl_UtfAtIndex(): utf before index
- .e insert 0 "ab\u4e4ec"
- .e bbox 3
-} -cleanup {
- destroy .e
-} -result {31 5 7 13}
-test entry-3.9 {EntryWidgetCmd procedure, "bbox" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
-# Tcl_UtfAtIndex(): no chars
- .e bbox end
-} -cleanup {
- destroy .e
-} -result "5 5 0 $cy"
-test entry-3.10 {EntryWidgetCmd procedure, "bbox" widget command} -constraints {
- fonts
-} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert 0 "abcdefghij\u4e4eklmnop"
- list [.e bbox 0] [.e bbox 1] [.e bbox 10] [.e bbox end]
-} -cleanup {
- destroy .e
-} -result {{5 5 7 13} {12 5 7 13} {75 5 12 13} {122 5 7 13}}
-test entry-3.11 {EntryWidgetCmd procedure, "cget" widget command} -setup {
- entry .e
-} -body {
- .e cget
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e cget option"}
-test entry-3.12 {EntryWidgetCmd procedure, "cget" widget command} -setup {
- entry .e
-} -body {
- .e cget a b
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e cget option"}
-test entry-3.13 {EntryWidgetCmd procedure, "cget" widget command} -setup {
- entry .e
-} -body {
- .e cget -gorp
-} -cleanup {
- destroy .e
-} -returnCodes error -result {unknown option "-gorp"}
-test entry-3.14 {EntryWidgetCmd procedure, "cget" widget command} -setup {
- entry .e
-} -body {
- .e configure -bd 4
- .e cget -bd
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-3.15 {EntryWidgetCmd procedure, "configure" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- llength [.e configure]
-} -cleanup {
- destroy .e
-} -result {36}
-test entry-3.16 {EntryWidgetCmd procedure, "configure" widget command} -setup {
- entry .e
-} -body {
- .e configure -foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {unknown option "-foo"}
-test entry-3.17 {EntryWidgetCmd procedure, "configure" widget command} -setup {
- entry .e
-} -body {
- .e configure -bd 4
- .e configure -bg #ffffff
- lindex [.e configure -bd] 4
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-3.18 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
-} -body {
- .e delete
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e delete firstIndex ?lastIndex?"}
-test entry-3.19 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
-} -body {
- .e delete a b c
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e delete firstIndex ?lastIndex?"}
-test entry-3.20 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
-} -body {
- .e delete foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "foo"}
-test entry-3.21 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
-} -body {
- .e delete 0 bar
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "bar"}
-test entry-3.22 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e delete 2 4
- .e get
-} -cleanup {
- destroy .e
-} -result {014567890}
-test entry-3.23 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
-} -body {
- .e insert end "01234567890"
- .e delete 6
- .e get
-} -cleanup {
- destroy .e
-} -result {0123457890}
-test entry-3.24 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
- pack .e
- update
- set x {}
-} -body {
-# UTF
- .e insert end "01234\u4e4e67890"
- .e delete 6
- lappend x [.e get]
- .e delete 0 end
- .e insert end "012345\u4e4e7890"
- .e delete 6
- lappend x [.e get]
- .e delete 0 end
- .e insert end "0123456\u4e4e890"
- .e delete 6
- lappend x [.e get]
-} -cleanup {
- destroy .e
-} -result [list "01234\u4e4e7890" "0123457890" "012345\u4e4e890"]
-test entry-3.25 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e delete 6 5
- .e get
-} -cleanup {
- destroy .e
-} -result {01234567890}
-test entry-3.26 {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e configure -state disabled
- .e delete 2 8
- .e configure -state normal
- .e get
-} -cleanup {
- destroy .e
-} -result {01234567890}
-test entry-3.26a {EntryWidgetCmd procedure, "delete" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e configure -state readonly
- .e delete 2 8
- .e configure -state normal
- .e get
-} -cleanup {
- destroy .e
-} -result {01234567890}
-test entry-3.27 {EntryWidgetCmd procedure, "get" widget command} -setup {
- entry .e
-} -body {
- .e get foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e get"}
-test entry-3.28 {EntryWidgetCmd procedure, "icursor" widget command} -setup {
- entry .e
-} -body {
- .e icursor
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e icursor pos"}
-test entry-3.29 {EntryWidgetCmd procedure, "icursor" widget command} -setup {
- entry .e
-} -body {
- .e icursor foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "foo"}
-test entry-3.30 {EntryWidgetCmd procedure, "icursor" widget command} -setup {
- entry .e
-} -body {
- .e insert end "01234567890"
- .e icursor 4
- .e index insert
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-3.31 {EntryWidgetCmd procedure, "index" widget command} -setup {
- entry .e
-} -body {
- .e in
-} -cleanup {
- destroy .e
-} -returnCodes error -result {ambiguous option "in": must be bbox, cget, configure, delete, get, icursor, index, insert, scan, selection, validate, or xview}
-test entry-3.32 {EntryWidgetCmd procedure, "index" widget command} -setup {
- entry .e
-} -body {
- .e index
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e index string"}
-test entry-3.33 {EntryWidgetCmd procedure, "index" widget command} -setup {
- entry .e
-} -body {
- .e index foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "foo"}
-test entry-3.34 {EntryWidgetCmd procedure, "index" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e index 0
-} -cleanup {
- destroy .e
-} -returnCodes {ok} -match glob -result {*}
-test entry-3.35 {EntryWidgetCmd procedure, "index" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
-# UTF
- .e insert 0 abc\u4e4e\u0153def
- list [.e index 3] [.e index 4] [.e index end]
-} -cleanup {
- destroy .e
-} -result {3 4 8}
-test entry-3.36 {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
-} -body {
- .e insert a
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e insert index text"}
-test entry-3.37 {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
-} -body {
- .e insert a b c
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e insert index text"}
-test entry-3.38 {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
-} -body {
- .e insert foo Text
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "foo"}
-test entry-3.39 {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e insert 3 xxx
- .e get
-} -cleanup {
- destroy .e
-} -result {012xxx34567890}
-test entry-3.40 {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e configure -state disabled
- .e insert 3 xxx
- .e configure -state normal
- .e get
-} -cleanup {
- destroy .e
-} -result {01234567890}
-test entry-3.40a {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "01234567890"
- .e configure -state readonly
- .e insert 3 xxx
- .e configure -state normal
- .e get
-} -cleanup {
- destroy .e
-} -result {01234567890}
-test entry-3.41 {EntryWidgetCmd procedure, "insert" widget command} -setup {
- entry .e
-} -body {
- .e insert a b c
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e insert index text"}
-test entry-3.42 {EntryWidgetCmd procedure, "scan" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e scan a
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e scan mark|dragto x"}
-test entry-3.43 {EntryWidgetCmd procedure, "scan" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e scan a b c
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e scan mark|dragto x"}
-test entry-3.44 {EntryWidgetCmd procedure, "scan" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e scan foobar 20
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad scan option "foobar": must be mark or dragto}
-test entry-3.45 {EntryWidgetCmd procedure, "scan" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e scan mark 20.1
-} -cleanup {
- destroy .e
-} -returnCodes error -result {expected integer but got "20.1"}
-
-# This test is non-portable because character sizes vary.
-test entry-3.46 {EntryWidgetCmd procedure, "scan" widget command} -constraints {
- fonts
-} -setup {
- entry .e -font {Helvetica -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long string, in fact a "
- .e insert end "very very long string"
- .e scan mark 30
- .e scan dragto 28
- .e index @0
-} -cleanup {
- destroy .e
-} -result {2}
-test entry-3.47 {EntryWidgetCmd procedure, "select" widget command} -setup {
- entry .e
-} -body {
- .e select
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection option ?index?"}
-test entry-3.48 {EntryWidgetCmd procedure, "select" widget command} -setup {
- entry .e
-} -body {
- .e select foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad selection option "foo": must be adjust, clear, from, present, range, or to}
-
-test entry-3.49 {EntryWidgetCmd procedure, "select clear" widget command} -setup {
- entry .e
-} -body {
- .e select clear gorp
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection clear"}
-test entry-3.50 {EntryWidgetCmd procedure, "select clear" widget command} -setup {
- entry .e
-} -body {
- .e insert end "0123456789"
- .e select from 1
- .e select to 4
- update
- .e select clear
- selection get
-} -cleanup {
- destroy .e
-} -returnCodes error -result {PRIMARY selection doesn't exist or form "STRING" not defined}
-test entry-3.50.1 {EntryWidgetCmd procedure, "select clear" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "0123456789"
- .e select from 1
- .e select to 4
- update
- .e select clear
- catch {selection get}
- selection own
-} -cleanup {
- destroy .e
-} -result {.e}
-
-test entry-3.51 {EntryWidgetCmd procedure, "selection present" widget command} -setup {
- entry .e
-} -body {
- .e selection present foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection present"}
-test entry-3.52 {EntryWidgetCmd procedure, "selection present" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end 0123456789
- .e select from 3
- .e select to 6
- .e selection present
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-3.53 {EntryWidgetCmd procedure, "selection present" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end 0123456789
- .e select from 3
- .e select to 6
- .e configure -exportselection false
- .e selection present
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-3.54 {EntryWidgetCmd procedure, "selection present" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end 0123456789
- .e select from 3
- .e select to 6
- .e delete 0 end
- .e selection present
-} -cleanup {
- destroy .e
-} -result {0}
-test entry-3.55 {EntryWidgetCmd procedure, "selection adjust" widget command} -setup {
- entry .e
-} -body {
- .e select adjust x
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "x"}
-test entry-3.56 {EntryWidgetCmd procedure, "selection adjust" widget command} -setup {
- entry .e
-} -body {
- .e select adjust 2 3
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection adjust index"}
-test entry-3.57 {EntryWidgetCmd procedure, "selection adjust" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "0123456789"
- .e select from 1
- .e select to 5
- update
- .e select adjust 4
- selection get
-} -cleanup {
- destroy .e
-} -result {123}
-test entry-3.58 {EntryWidgetCmd procedure, "selection adjust" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end "0123456789"
- .e select from 1
- .e select to 5
- update
- .e select adjust 2
- selection get
-} -cleanup {
- destroy .e
-} -result {234}
-test entry-3.59 {EntryWidgetCmd procedure, "selection from" widget command} -setup {
- entry .e
-} -body {
- .e select from 2 3
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection from index"}
-
-test entry-3.60 {EntryWidgetCmd procedure, "selection range" widget command} -setup {
- entry .e
-} -body {
- .e select range 2
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection range start end"}
-test entry-3.61 {EntryWidgetCmd procedure, "selection range" widget command} -setup {
- entry .e
-} -body {
- .e selection range 2 3 4
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection range start end"}
-test entry-3.62 {EntryWidgetCmd procedure, "selection range" widget command} -setup {
- entry .e
-} -body {
- .e insert end 0123456789
- .e select from 1
- .e select to 5
- .e select range 4 4
- .e index sel.first
-} -cleanup {
- destroy .e
-} -returnCodes error -result {selection isn't in widget .e}
-test entry-3.63 {EntryWidgetCmd procedure, "selection range" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end 0123456789
- .e select from 3
- .e select to 7
- .e select range 2 9
- list [.e index sel.first] [.e index sel.last] [.e index anchor]
-} -cleanup {
- destroy .e
-} -result {2 9 3}
-test entry-3.64 {EntryWidgetCmd procedure, "selection" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end 0123456789
- .e selection range 0 end
- .e configure -state disabled
- .e selection range 2 4
- .e configure -state normal
- list [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {0 10}
-test entry-3.64a {EntryWidgetCmd procedure, "selection" widget command} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e insert end 0123456789
- .e selection range 0 end
- .e configure -state readonly
- .e selection range 2 4
- .e configure -state normal
- list [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {2 4}
-test entry-3.64b {EntryWidgetCmd procedure, "selection to" widget command} -setup {
- entry .e
- pack .e
- update
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
-} -body {
- .e select to 2 3
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e selection to index"}
-
-test entry-3.65 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e xview 5
- format {%.7f %.7f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.0537634 0.2688172}
-test entry-3.66 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e xview gorp
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "gorp"}
-test entry-3.67 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e xview 0
- .e icursor 10
- .e xview insert
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.107527 0.322581}
-test entry-3.68 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e xview moveto foo bar
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e xview moveto fraction"}
-test entry-3.69 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e xview moveto foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {expected floating-point number but got "foo"}
-test entry-3.70 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e xview moveto 0.5
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.505376 0.720430}
-test entry-3.71 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e xview scroll 24
-} -cleanup {
- destroy .e
-} -returnCodes error -result {wrong # args: should be ".e xview scroll number units|pages"}
-test entry-3.72 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview scroll gorp units
-} -cleanup {
- destroy .e
-} -returnCodes error -result {expected integer but got "gorp"}
-test entry-3.73 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview moveto 0
- .e xview scroll 1 pages
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.193548 0.408602}
-test entry-3.74 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e xview moveto .9
- update
- .e xview scroll -2 p
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.397849 0.612903}
-test entry-3.75 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview 30
- update
- .e xview scroll 2 units
- .e index @0
-} -cleanup {
- destroy .e
-} -result {32}
-test entry-3.76 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview 30
- update
- .e xview scroll -1 units
- .e index @0
-} -cleanup {
- destroy .e
-} -result {29}
-test entry-3.77 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview scroll 23 foobars
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad argument "foobars": must be units or pages}
-test entry-3.78 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview eat 23 hamburgers
-} -cleanup {
- destroy .e
-} -returnCodes error -result {unknown option "eat": must be moveto or scroll}
-test entry-3.79 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e xview 0
- update
- .e xview -4
- .e index @0
-} -cleanup {
- destroy .e
-} -result {0}
-test entry-3.80 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- update
- .e xview 300
- .e index @0
-} -cleanup {
- destroy .e
-} -result {73}
-test entry-3.86 {EntryWidgetCmd procedure, "xview" widget command} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e insert end "This is quite a long text string, so long that it "
- .e insert end "runs off the end of the window quite a bit."
- .e insert 10 \u4e4e
- update
-# UTF
-# If Tcl_NumUtfChars wasn't used, wrong answer would be:
-# 0.106383 0.117021 0.117021
- set x {}
- .e xview moveto .1
- lappend x [format {%.6f} [lindex [.e xview] 0]]
- .e xview moveto .11
- lappend x [format {%.6f} [lindex [.e xview] 0]]
- .e xview moveto .12
- lappend x [format {%.6f} [lindex [.e xview] 0]]
-} -cleanup {
- destroy .e
-} -result {0.095745 0.106383 0.117021}
-
-test entry-3.82 {EntryWidgetCmd procedure} -setup {
- entry .e -font {Courier -12} -borderwidth 2 -highlightthickness 2
- pack .e
- update
-} -body {
- .e gorp
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad option "gorp": must be bbox, cget, configure, delete, get, icursor, index, insert, scan, selection, validate, or xview}
-
-# The test below doesn't actually check anything directly, but if run
-# with Purify or some other memory-allocation-checking program it will
-# ensure that resources get properly freed.
-
-test entry-4.1 {DestroyEntry procedure} -body {
- entry .e -textvariable x -show *
- pack .e
- .e insert end "Sample text"
- update
- destroy .e
-} -result {}
-
-test entry-5.1 {ConfigureEntry procedure, -textvariable} -body {
- set x 12345
- entry .e -textvariable x
- .e get
-} -cleanup {
- destroy .e
-} -result {12345}
-test entry-5.2 {ConfigureEntry procedure, -textvariable} -body {
- set x 12345
- entry .e -textvariable x
- set y abcde
- .e configure -textvariable y
- set x 54321
- .e get
-} -cleanup {
- destroy .e
-} -result {abcde}
-test entry-5.3 {ConfigureEntry procedure, -textvariable} -setup {
- unset -nocomplain x
- entry .e
-} -body {
- .e insert 0 "Some text"
- .e configure -textvariable x
- return $x
-} -cleanup {
- destroy .e
-} -result {Some text}
-test entry-5.4 {ConfigureEntry procedure, -textvariable} -setup {
- unset -nocomplain x
- entry .e
-} -body {
- trace variable x w override
- .e insert 0 "Some text"
- .e configure -textvariable x
- list $x [.e get]
-} -cleanup {
- destroy .e
- trace vdelete x w override
- unset x;
-} -result {12345 12345}
-
-test entry-5.5 {ConfigureEntry procedure} -setup {
- set x {}
- entry .e1
- entry .e2
-} -body {
- .e2 insert end "This is some sample text"
- .e1 configure -exportselection false
- .e1 insert end "0123456789"
- pack .e1 .e2
- .e2 select from 0
- .e2 select to 10
- lappend x [selection get]
- .e1 select from 1
- .e1 select to 5
- lappend x [selection get]
- .e1 configure -exportselection 1
- lappend x [selection get]
- return $x
-} -cleanup {
- destroy .e1 .e2
-} -result {{This is so} {This is so} 1234}
-test entry-5.6 {ConfigureEntry procedure} -setup {
- entry .e
- pack .e
-} -body {
- .e insert end "0123456789"
- .e select from 1
- .e select to 5
- .e configure -exportselection 0
- selection get
-} -cleanup {
- destroy .e
-} -returnCodes error -result {PRIMARY selection doesn't exist or form "STRING" not defined}
-test entry-5.6.1 {ConfigureEntry procedure} -setup {
- entry .e
- pack .e
-} -body {
- .e insert end "0123456789"
- .e select from 1
- .e select to 5
- .e configure -exportselection 0
- catch {selection get}
- list [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {1 5}
-
-test entry-5.7 {ConfigureEntry procedure} -setup {
- entry .e -font {Helvetica -12} -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Courier -12} -width 4 -xscrollcommand scroll
- .e insert end "01234567890"
- update
- .e configure -width 5
- format {%.6f %.6f} {*}$scrollInfo
-} -cleanup {
- destroy .e
-} -result {0.000000 0.363636}
-
-
-test entry-5.8 {ConfigureEntry procedure} -constraints {
- fonts
-} -setup {
- entry .e -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e configure -width 0 -font {Helvetica -12}
- .e insert end "0123"
- update
- .e configure -font {Helvetica -24}
- update
- winfo geom .e
-} -cleanup {
- destroy .e
-} -result {62x37+0+0}
-test entry-5.9 {ConfigureEntry procedure} -constraints {
- fonts
-} -setup {
- entry .e -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised
- .e insert end "0123"
- update
- list [.e index @10] [.e index @11] [.e index @12] [.e index @13]
-} -cleanup {
- destroy .e
-} -result {0 0 1 1}
-test entry-5.10 {ConfigureEntry procedure} -constraints {
- fonts
-} -setup {
- entry .e -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief flat
- .e insert end "0123"
- update
- list [.e index @10] [.e index @11] [.e index @12] [.e index @13]
-} -cleanup {
- destroy .e
-} -result {0 0 1 1}
-test entry-5.11 {ConfigureEntry procedure} -setup {
- entry .e -borderwidth 2 -highlightthickness 2
- pack .e
-} -body {
-# If "0" in selected font had 0 width, caused divide-by-zero error.
- .e configure -font {{open look glyph}}
- .e scan dragto 30
- update
-} -cleanup {
- destroy .e
-} -result {}
-
-# No tests for DisplayEntry.
-
-test entry-6.1 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised -width 20 \
- -highlightthickness 3
- .e insert end 012\t45
- update
- list [.e index @61] [.e index @62]
-} -cleanup {
- destroy .e
-} -result {3 4}
-test entry-6.2 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised -width 20 \
- -justify center -highlightthickness 3
- .e insert end 012\t45
- update
- list [.e index @96] [.e index @97]
-} -cleanup {
- destroy .e
-} -result {3 4}
-test entry-6.3 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised -width 20 \
- -justify right -highlightthickness 3
- .e insert end 012\t45
- update
- list [.e index @131] [.e index @132]
-} -cleanup {
- destroy .e
-} -result {3 4}
-test entry-6.4 {EntryComputeGeometry procedure} -setup {
- entry .e
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised -width 5
- .e insert end "01234567890"
- update
- .e xview 6
- .e index @0
-} -cleanup {
- destroy .e
-} -result {6}
-test entry-6.5 {EntryComputeGeometry procedure} -setup {
- entry .e -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised -width 5
- .e insert end "01234567890"
- update
- .e xview 7
- .e index @0
-} -cleanup {
- destroy .e
-} -result {6}
-test entry-6.6 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Courier -12} -bd 2 -relief raised -width 10
- .e insert end "01234\t67890"
- update
- .e xview 3
- list [.e index @39] [.e index @40]
-} -cleanup {
- destroy .e
-} -result {5 6}
-test entry-6.7 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Helvetica -24} -bd 3 -relief raised -width 5
- .e insert end "01234567"
- update
- list [winfo reqwidth .e] [winfo reqheight .e]
-} -cleanup {
- destroy .e
-} -result {77 39}
-test entry-6.8 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Helvetica -24} -bd 3 -relief raised -width 0
- .e insert end "01234567"
- update
- list [winfo reqwidth .e] [winfo reqheight .e]
-} -cleanup {
- destroy .e
-} -result {116 39}
-test entry-6.9 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- entry .e -highlightthickness 2
- pack .e
-} -body {
- .e configure -font {Helvetica -24} -bd 3 -relief raised -width 0
- update
- list [winfo reqwidth .e] [winfo reqheight .e]
-} -cleanup {
- destroy .e
-} -result {25 39}
-test entry-6.10 {EntryComputeGeometry procedure} -constraints {
- unix fonts
-} -setup {
- entry .e -highlightthickness 2 -font {Helvetica -12}
- pack .e
-} -body {
- .e configure -bd 1 -relief raised -width 0 -show .
- .e insert 0 12345
- update
- set x [winfo reqwidth .e]
- .e configure -show X
- lappend x [winfo reqwidth .e]
- .e configure -show ""
- lappend x [winfo reqwidth .e]
-} -cleanup {
- destroy .e
-} -result {23 53 43}
-test entry-6.11 {EntryComputeGeometry procedure} -constraints {
- win
-} -setup {
- entry .e -highlightthickness 2
- pack .e
-} -body {
- .e configure -bd 1 -relief raised -width 0 -show . -font {helvetica 12}
- .e insert 0 12345
- update
- set x1 [winfo reqwidth .e]
- set x2 [expr {8+5*[font measure {helvetica 12} .]}]
- set x [expr {$x1 eq $x2}]
- .e configure -show X
- set x1 [winfo reqwidth .e]
- set x2 [expr {8+5*[font measure {helvetica 12} X]}]
- lappend x [expr {$x1 eq $x2}]
- .e configure -show ""
- set x1 [winfo reqwidth .e]
- set x2 [expr {8+[font measure {helvetica 12} 12345]}]
- lappend x [expr {$x1 eq $x2}]
-} -cleanup {
- destroy .e
-} -result {1 1 1}
-test entry-6.12 {EntryComputeGeometry procedure} -constraints {
- fonts
-} -setup {
- catch {destroy .e}
- entry .e -font {Courier -12} -bd 2 -relief raised -width 20
- pack .e
-} -body {
- .e insert end "012\t456\t"
- update
- list [.e index @80] [.e index @81] [.e index @115] [.e index @116]
-} -cleanup {
- destroy .e
-} -result {6 7 7 8}
-
-
-test entry-7.1 {InsertChars procedure} -setup {
- unset -nocomplain contents
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e configure -textvariable contents -xscrollcommand scroll
- .e insert 0 abcde
- .e insert 2 XXX
- update
- list [.e get] $contents [format {%.6f %.6f} {*}$scrollInfo]
-} -cleanup {
- destroy .e
-} -result {abXXXcde abXXXcde {0.000000 1.000000}}
-
-test entry-7.2 {InsertChars procedure} -setup {
- unset -nocomplain contents
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e configure -textvariable contents -xscrollcommand scroll
- .e insert 0 abcde
- .e insert 500 XXX
- update
- list [.e get] $contents [format {%.6f %.6f} {*}$scrollInfo]
-} -cleanup {
- destroy .e
-} -result {abcdeXXX abcdeXXX {0.000000 1.000000}}
-test entry-7.3 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 0123456789
- .e select from 2
- .e select to 6
- .e insert 2 XXX
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 8
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {5 9 5 8}
-test entry-7.4 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 0123456789
- .e select from 2
- .e select to 6
- .e insert 3 XXX
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 8
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {2 9 2 8}
-test entry-7.5 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 0123456789
- .e select from 2
- .e select to 6
- .e insert 5 XXX
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 8
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {2 9 2 8}
-test entry-7.6 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 0123456789
- .e select from 2
- .e select to 6
- .e insert 6 XXX
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 5
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {2 6 2 5}
-test entry-7.7 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -xscrollcommand scroll
- .e insert 0 0123456789
- .e icursor 4
- .e insert 4 XXX
- .e index insert
-} -cleanup {
- destroy .e
-} -result {7}
-test entry-7.8 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 0123456789
- .e icursor 4
- .e insert 5 XXX
- .e index insert
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-7.9 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 "This is a very long string"
- update
- .e xview 4
- .e insert 3 XXX
- .e index @0
-} -cleanup {
- destroy .e
-} -result {7}
-test entry-7.10 {InsertChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 "This is a very long string"
- update
- .e xview 4
- .e insert 4 XXX
- .e index @0
-} -cleanup {
- destroy .e
-} -result {4}
-
-test entry-7.11 {InsertChars procedure} -constraints {
- fonts
-} -setup {
- entry .e -width 0 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 "xyzzy"
- update
- .e insert 2 00
- winfo reqwidth .e
-} -cleanup {
- destroy .e
-} -result {59}
-
-test entry-8.1 {DeleteChars procedure} -setup {
- unset -nocomplain contents
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e configure -textvariable contents -xscrollcommand scroll
- .e insert 0 abcde
- .e delete 2 4
- update
- list [.e get] $contents [format {%.6f %.6f} {*}$scrollInfo]
-} -cleanup {
- destroy .e
-} -result {abe abe {0.000000 1.000000}}
-test entry-8.2 {DeleteChars procedure} -setup {
- unset -nocomplain contents
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e configure -textvariable contents -xscrollcommand scroll
- .e insert 0 abcde
- .e delete -2 2
- update
- list [.e get] $contents [format {%.6f %.6f} {*}$scrollInfo]
-} -cleanup {
- destroy .e
-} -result {cde cde {0.000000 1.000000}}
-test entry-8.3 {DeleteChars procedure} -setup {
- unset -nocomplain contents
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e configure -textvariable contents -xscrollcommand scroll
- .e insert 0 abcde
- .e delete 3 1000
- update
- list [.e get] $contents [format {%.6f %.6f} {*}$scrollInfo]
-} -cleanup {
- destroy .e
-} -result {abc abc {0.000000 1.000000}}
-test entry-8.4 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 3
- .e select to 8
- .e delete 1 3
- update
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 5
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {1 6 1 5}
-test entry-8.5 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 3
- .e select to 8
- .e delete 1 4
- update
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 4
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {1 5 1 4}
-test entry-8.6 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 3
- .e select to 8
- .e delete 1 7
- update
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 5
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {1 2 1 5}
-test entry-8.7 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 3
- .e select to 8
- .e delete 1 8
- update
- .e index sel.first
-} -cleanup {
- destroy .e
-} -returnCodes error -result {selection isn't in widget .e}
-test entry-8.8 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 3
- .e select to 8
- .e delete 3 7
- update
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 8
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {3 4 3 8}
-test entry-8.9 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 3
- .e select to 8
- .e delete 3 8
- update
- .e index sel.first
-} -cleanup {
- destroy .e
-} -returnCodes error -result {selection isn't in widget .e}
-test entry-8.10 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 8
- .e select to 3
- .e delete 5 8
- update
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 8
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {3 5 5 8}
-test entry-8.11 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e select from 8
- .e select to 3
- .e delete 8 10
- update
- set x "[.e index sel.first] [.e index sel.last]"
- .e select to 4
- lappend x [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {3 8 4 8}
-test entry-8.12 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e icursor 4
- .e delete 1 4
- update
- .e index insert
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-8.13 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e icursor 4
- .e delete 1 5
- update
- .e index insert
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-8.14 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 0123456789abcde
- .e icursor 4
- .e delete 4 6
- update
- .e index insert
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-8.15 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 "This is a very long string"
- .e xview 4
- .e delete 1 4
- update
- .e index @0
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-8.16 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 "This is a very long string"
- .e xview 4
- .e delete 1 5
- update
- .e index @0
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-8.17 {DeleteChars procedure} -setup {
- entry .e -width 10 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 "This is a very long string"
- .e xview 4
- .e delete 4 6
- update
- .e index @0
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-8.18 {DeleteChars procedure} -setup {
- entry .e -width 0 -font {Courier -12} -highlightthickness 2 -bd 2
- pack .e
- focus .e
-} -body {
- .e insert 0 "xyzzy"
- update
- .e delete 2 4
- winfo reqwidth .e
-} -cleanup {
- destroy .e
-} -result {31}
-
-test entry-9.1 {EntryValueChanged procedure} -setup {
- unset -nocomplain x
-} -body {
- trace variable x w override
- entry .e -textvariable x -width 0
- .e insert 0 foo
- list $x [.e get]
-} -cleanup {
- destroy .e
- trace vdelete x w override
- unset x
-} -result {12345 12345}
-
-
-test entry-10.1 {EntrySetValue procedure} -constraints fonts -body {
- set x abcde
- set y ab
- entry .e -font {Helvetica -12} -highlightthickness 2 -bd 2 -width 0
- pack .e
- .e configure -textvariable x
- .e configure -textvariable y
- update
- list [.e get] [winfo reqwidth .e]
-} -cleanup {
- destroy .e
-} -result {ab 24}
-test entry-10.2 {EntrySetValue procedure, updating selection} -setup {
- unset -nocomplain x
- entry .e -font {Helvetica -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -textvariable x
- .e insert 0 "abcdefghjklmnopqrstu"
- .e selection range 4 10
- set x "a"
- .e index sel.first
-} -cleanup {
- destroy .e
-} -returnCodes error -result {selection isn't in widget .e}
-test entry-10.3 {EntrySetValue procedure, updating selection} -setup {
- unset -nocomplain x
- entry .e -font {Helvetica -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -textvariable x
- .e insert 0 "abcdefghjklmnopqrstu"
- .e selection range 4 10
- set x "abcdefg"
- list [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {4 7}
-test entry-10.4 {EntrySetValue procedure, updating selection} -setup {
- unset -nocomplain x
- entry .e -font {Helvetica -12} -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -textvariable x
- .e insert 0 "abcdefghjklmnopqrstu"
- .e selection range 4 10
- set x "abcdefghijklmn"
- list [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {4 10}
-test entry-10.5 {EntrySetValue procedure, updating display position} -setup {
- unset -nocomplain x
- entry .e -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -width 10 -font {Courier -12} -textvariable x
- .e insert 0 "abcdefghjklmnopqrstuvwxyz"
- .e xview 10
- update
- set x "abcdefg"
- update
- .e index @0
-} -cleanup {
- destroy .e
-} -result {0}
-test entry-10.6 {EntrySetValue procedure, updating display position} -setup {
- unset -nocomplain x
- entry .e -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -width 10 -font {Courier -12} -textvariable x
- pack .e
- .e insert 0 "abcdefghjklmnopqrstuvwxyz"
- .e xview 10
- update
- set x "1234567890123456789012"
- update
- .e index @0
-} -cleanup {
- destroy .e
-} -result {10}
-test entry-10.7 {EntrySetValue procedure, updating insertion cursor} -setup {
- unset -nocomplain x
- entry .e -highlightthickness 2 -bd 2
- pack .e
- update
-} -body {
- .e configure -width 10 -font {Courier -12} -textvariable x
- pack .e
- .e insert 0 "abcdefghjklmnopqrstuvwxyz"
- .e icursor 5
- set x "123"
- .e index insert
-} -cleanup {
- destroy .e
-} -result {3}
-test entry-10.8 {EntrySetValue procedure, updating insertion cursor} -setup {
- unset -nocomplain x
- entry .e -highlightthickness 2 -bd 2
- pack .e
-} -body {
- .e configure -width 10 -font {Courier -12} -textvariable x
- pack .e
- .e insert 0 "abcdefghjklmnopqrstuvwxyz"
- .e icursor 5
- set x "123456"
- .e index insert
-} -cleanup {
- destroy .e
-} -result {5}
-
-test entry-11.1 {EntryEventProc procedure} -setup {
- entry .e -highlightthickness 2 -bd 2 -font {Helvetica -12}
- pack .e
-} -body {
- .e insert 0 abcdefg
- destroy .e
- update
-} -cleanup {
- destroy .e
-} -result {}
-test entry-11.2 {EntryEventProc procedure} -setup {
- set x {}
-} -body {
- entry .e1 -fg #112233
- rename .e1 .e2
- lappend x [winfo children .]
- lappend x [.e2 cget -fg]
- destroy .e1
- lappend x [info command .e*] [winfo children .]
-} -cleanup {
- destroy .e1
-} -result {.e1 #112233 {} {}}
-
-test entry-12.1 {EntryCmdDeletedProc procedure} -body {
- button .b -text "xyz_123"
- rename .b {}
- list [info command .b*] [winfo children .]
-} -cleanup {
- destroy .b
-} -result {{} {}}
-
-
-test entry-13.1 {GetEntryIndex procedure} -setup {
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
-} -body {
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index end
-} -cleanup {
- destroy .e
-} -result {21}
-test entry-13.2 {GetEntryIndex procedure} -body {
- entry .e
- .e index abogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "abogus"}
-test entry-13.3 {GetEntryIndex procedure} -setup {
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
-} -body {
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- .e index anchor
-} -cleanup {
- destroy .e
-} -result {1}
-test entry-13.4 {GetEntryIndex procedure} -setup {
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
-} -body {
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 4
- .e select to 1
- .e index anchor
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-13.5 {GetEntryIndex procedure} -setup {
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
-} -body {
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 3
- .e select to 15
- .e select adjust 4
- .e index anchor
-} -cleanup {
- destroy .e
-} -result {15}
-test entry-13.6 {GetEntryIndex procedure} -setup {
- entry .e
-} -body {
- .e index ebogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "ebogus"}
-test entry-13.7 {GetEntryIndex procedure} -setup {
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
-} -body {
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e icursor 2
- .e index insert
-} -cleanup {
- destroy .e
-} -result {2}
-test entry-13.8 {GetEntryIndex procedure} -setup {
- entry .e
-} -body {
- .e index ibogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "ibogus"}
-test entry-13.9 {GetEntryIndex procedure} -setup {
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
-} -body {
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-} -cleanup {
- destroy .e
-} -result {1 6}
-
-
-
-
-
-
-test entry-13.10 {GetEntryIndex procedure} -constraints unix -body {
-# On unix, when selection is cleared, entry widget's internal
-# selection range is reset.
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- .e index sel.first
-} -cleanup {
- destroy .e
-} -returnCodes error -result {selection isn't in widget .e}
-
-test entry-13.11 {GetEntryIndex procedure} -constraints win -body {
-# On mac and pc, when selection is cleared, entry widget remembers
-# last selected range. When selection ownership is restored to
-# entry, the old range will be rehighlighted.
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- catch {selection get}
- .e index sel.first
-} -cleanup {
- destroy .e
-} -result {1}
-
-test entry-13.12 {GetEntryIndex procedure} -constraints unix -body {
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- .e index sbogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {selection isn't in widget .e}
-
-# why when string in .e index changed to not beginning with s,
-# it behaves differently?
-test entry-13.12.1 {GetEntryIndex procedure} -constraints unix -body {
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- .e index bogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "bogus"}
-
-test entry-13.13 {GetEntryIndex procedure} -constraints win -body {
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- .e index sbogus
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "sbogus"}
-
-test entry-13.14 {GetEntryIndex procedure} -constraints win -body {
-# On mac and pc, when selection is cleared, entry widget remembers
-# last selected range. When selection ownership is restored to
-# entry, the old range will be rehighlighted.
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- selection get
-} -cleanup {
- destroy .e
-} -returnCodes error -match glob -result {*}
-
-test entry-13.14.1 {GetEntryIndex procedure} -constraints win -body {
-# On mac and pc, when selection is cleared, entry widget remembers
-# last selected range. When selection ownership is restored to
-# entry, the old range will be rehighlighted.
-# Previous settings:
- entry .e -font {Courier -12} -width 5 -bd 2 -relief sunken
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e select from 1
- .e select to 6
- list [.e index sel.first] [.e index sel.last]
-# Testing:
- selection clear .e
- catch {selection get}
- .e index sbogus
-} -cleanup {
- destroy .e
-} -returnCodes error -match glob -result {*}
-
-test entry-13.15 {GetEntryIndex procedure} -body {
- entry .e
- selection clear .e
- .e index @xyz
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "@xyz"}
-
-test entry-13.16 {GetEntryIndex procedure} -constraints fonts -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index @4
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-13.17 {GetEntryIndex procedure} -constraints fonts -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index @11
-} -cleanup {
- destroy .e
-} -result {4}
-test entry-13.18 {GetEntryIndex procedure} -constraints fonts -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index @12
-} -cleanup {
- destroy .e
-} -result {5}
-test entry-13.19 {GetEntryIndex procedure} -constraints fonts -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index @[expr {[winfo width .e] - 6}]
-} -cleanup {
- destroy .e
-} -result {8}
-test entry-13.20 {GetEntryIndex procedure} -constraints fonts -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index @[expr {[winfo width .e] - 5}]
-} -cleanup {
- destroy .e
-} -result {9}
-test entry-13.21 {GetEntryIndex procedure} -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index @1000
-} -cleanup {
- destroy .e
-} -result {9}
-test entry-13.22 {GetEntryIndex procedure} -setup {
- entry .e
- pack .e
- update
-} -body {
- .e index 1xyz
-} -cleanup {
- destroy .e
-} -returnCodes error -result {bad entry index "1xyz"}
-test entry-13.23 {GetEntryIndex procedure} -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index -10
-} -cleanup {
- destroy .e
-} -result {0}
-test entry-13.24 {GetEntryIndex procedure} -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index 12
-} -cleanup {
- destroy .e
-} -result {12}
-test entry-13.25 {GetEntryIndex procedure} -body {
- entry .e -width 5 -relief sunken -highlightthickness 2 -bd 2\
- -font {Courier -12}
- pack .e
- .e insert 0 012345678901234567890
- .e xview 4
- update
- .e index 49
-} -cleanup {
- destroy .e
-} -result {21}
-test entry-13.26 {GetEntryIndex procedure} -constraints fonts -body {
- entry .e -highlightthickness 2 -bd 2 -font {Helvetica -12}
- selection clear .e
- .e configure -show .
- .e insert 0 XXXYZZY
- pack .e
- update
- list [.e index @7] [.e index @8]
-} -cleanup {
- destroy .e
-} -result {0 1}
-
-# XXX Still need to write tests for EntryScanTo and EntrySelectTo.
-
-
-test entry-14.1 {EntryFetchSelection procedure} -body {
- entry .e
- .e insert end "This is a test string"
- .e select from 1
- .e select to 18
- selection get
-} -cleanup {
- destroy .e
-} -result {his is a test str}
-test entry-14.2 {EntryFetchSelection procedure} -body {
- entry .e -show *
- .e insert end "This is a test string"
- .e select from 1
- .e select to 18
- selection get
-} -cleanup {
- destroy .e
-} -result {*****************}
-test entry-14.3 {EntryFetchSelection procedure} -setup {
- set x {}
- for {set i 1} {$i <= 500} {incr i} {
- append x "This is line $i, out of 500\n"
-}
-} -body {
- entry .e
- .e insert end $x
- .e select from 0
- .e select to end
- string compare [selection get] $x
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-15.1 {EntryLostSelection} -body {
- entry .e
- .e insert 0 "Text"
- .e select from 0
- .e select to 4
- set result [selection get]
- selection clear
- .e select from 0
- .e select to 4
- lappend result [selection get]
-} -cleanup {
- destroy .e
-} -result {Text Text}
-
-# is scrollcommand needed here??
-test entry-16.1 {EntryVisibleRange procedure} -constraints fonts -body {
- entry .e -width 10 -font {Helvetica -12}
- pack .e
- update
- .e insert 0 "............................."
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.000000 0.827586}
-test entry-16.2 {EntryVisibleRange procedure} -constraints {
- unix fonts
-} -body {
- entry .e -show X -width 10 -font {Helvetica -12}
- pack .e
- update
- .e insert 0 "............................."
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.000000 0.275862}
-test entry-16.3 {EntryVisibleRange procedure} -constraints {
- win
-} -body {
- entry .e -show . -width 10 -font {Helvetica -12}
- pack .e
- update
- .e insert 0 XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.000000 0.827586}
-test entry-16.4 {EntryVisibleRange procedure} -body {
- entry .e -show ""
- format {%.6f %.6f} {*}[.e xview]
-} -cleanup {
- destroy .e
-} -result {0.000000 1.000000}
-
-
-test entry-17.1 {EntryUpdateScrollbar procedure} -body {
- entry .e -width 10 -xscrollcommand scroll -font {Courier -12}
- pack .e
- .e delete 0 end
- .e insert 0 123
- update
- format {%.6f %.6f} {*}$scrollInfo
-} -cleanup {
- destroy .e
-} -result {0.000000 1.000000}
-test entry-17.2 {EntryUpdateScrollbar procedure} -body {
- entry .e -width 10 -xscrollcommand scroll -font {Courier -12}
- pack .e
- .e insert 0 0123456789abcdef
- .e xview 3
- update
- format {%.6f %.6f} {*}$scrollInfo
-} -cleanup {
- destroy .e
-} -result {0.187500 0.812500}
-test entry-17.3 {EntryUpdateScrollbar procedure} -body {
- entry .e -width 10 -xscrollcommand scroll -font {Courier -12}
- pack .e
- .e insert 0 abcdefghijklmnopqrs
- .e xview 6
- update
- format {%.6f %.6f} {*}$scrollInfo
-} -cleanup {
- destroy .e
-} -result {0.315789 0.842105}
-test entry-17.4 {EntryUpdateScrollbar procedure} -setup {
- proc bgerror msg {
- global x
- set x $msg
-}
-} -body {
- entry .e -width 5 -xscrollcommand thisisnotacommand
- pack .e
- update
- list $x $errorInfo
-} -cleanup {
- destroy .e
- rename bgerror {}
-} -result {{invalid command name "thisisnotacommand"} {invalid command name "thisisnotacommand"
- while executing
-"thisisnotacommand 0.0 1.0"
- (horizontal scrolling command executed by .e)}}
-
-
-test entry-18.1 {Entry widget vs hiding} -setup {
- entry .e
-} -body {
- set l [interp hidden]
- interp hide {} .e
- destroy .e
- set res1 [list [winfo children .] [interp hidden]]
- set res2 [list {} $l]
- expr {$res1 == $res2}
-} -result {1}
-
-##
-## Entry widget VALIDATION tests
-##
-# The validation tests build each one upon the previous, so cascading
-# failures aren't good
-#
-
-# 19.* test cases in previous version highly depended on the previous
-# test cases. This was replaced by inserting recently set configurations
-# that matters for the test case
-test entry-19.1 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 a
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e 1 0 a {} a all key}
-
-test entry-19.2 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 a ;# previous settings
- .e insert 1 b
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e 1 1 ab a b all key}
-
-test entry-19.3 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 ab ;# previous settings
- .e insert end c
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e 1 2 abc ab c all key}
-
-test entry-19.4 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 abc ;# previous settings
- .e insert 1 123
- list $::vVals $::e
-} -cleanup {
- destroy .e
-} -result {{.e 1 1 a123bc abc 123 all key} a123bc}
-
-test entry-19.5 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 a123bc ;# previous settings
- .e delete 2
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e 0 2 a13bc a123bc 2 all key}
-
-test entry-19.6 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 a13bc ;# previous settings
- .e configure -validate key
- .e delete 1 3
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e 0 1 abc a13bc 13 key key}
-
-test entry-19.7 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focus \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abc ;# previous settings
- set ::vVals {}
- .e insert end d
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {}
-
-test entry-19.8 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e configure -validate focus ;# previous settings
- .e insert end abcd ;# previous settings
- focus -force .e
-# update necessary to process FocusIn event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e -1 -1 abcd abcd {} focus focusin}
-
-test entry-19.9 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focus \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- focus -force .e ;# previous settings
- update ;# previous settings
-# update necessary to process FocusIn event
- focus -force .
-# update necessary to process FocusOut event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e -1 -1 abcd abcd {} focus focusout}
-
-test entry-19.10 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- focus -force .e
-# update necessary to process FocusIn event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e -1 -1 abcd abcd {} all focusin}
-
-test entry-19.11 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- focus -force .e ;# previous settings
-# update necessary to process FocusIn event
- update ;# previous settings
- focus -force .
-# update necessary to process FocusOut event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e -1 -1 abcd abcd {} all focusout}
-
-test entry-19.12 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focusin \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert 0 abcd ;# previous settings
- focus -force .e
-# update necessary to process FocusIn event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e -1 -1 abcd abcd {} focusin focusin}
-
-test entry-19.13 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focusin \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- set ::vVals {}
- focus -force .
-# update necessary to process FocusOut event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {}
-
-test entry-19.14 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focuso \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- set ::vVals {} ;# previous settings
- focus -force .e
-# update necessary to process FocusIn event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {}
-
-test entry-19.15 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focuso \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- set ::vVals {} ;# previous settings
- focus -force .e ;# previous settings
-# update necessary to process FocusIn event
- update ;# previous settings
- focus -force .
-# update necessary to process FocusOut event
- update
- return $::vVals
-} -cleanup {
- destroy .e
-} -result {.e -1 -1 abcd abcd {} focusout focusout}
-
-# the same as 19.16 but added [.e validate] to returned list
-test entry-19.16 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focuso \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- set ::vVals {} ;# previous settings
- focus -force .e ;# previous settings
-# update necessary to process FocusIn event
- update ;# previous settings
- focus -force .
-# update necessary to process FocusOut event
- update
- list [.e validate] $::vVals
-} -cleanup {
- destroy .e
-} -result {1 {.e -1 -1 abcd abcd {} all forced}}
-
-
-test entry-19.17 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate focuso \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- .e insert end abcd ;# previous settings
- set ::e newdata
- list [.e cget -validate] $::vVals
-} -cleanup {
- destroy .e
-} -result {focusout {.e -1 -1 newdata abcd {} focusout forced}}
-
-
-# proc doval changed - returns 0
-test entry-19.18 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval3 %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- set ::e newdata ;# previous settings
- .e configure -validate all
- set ::e nextdata
- list [.e cget -validate] $::vVals
-} -cleanup {
- destroy .e
-} -result {none {.e -1 -1 nextdata newdata {} all forced}}
-
-## This sets validate to none because it shows that we prevent a possible
-## loop condition in the validation, when the entry textvar is also set
-# proc doval2 used
-test entry-19.19 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval3 %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- set ::e nextdata ;# previous settings
-
- .e configure -validatecommand [list doval2 %W %d %i %P %s %S %v %V]
- .e validate
- list [.e cget -validate] [.e get] $::vVals
-} -cleanup {
- destroy .e
-} -result {none mydata {.e -1 -1 nextdata nextdata {} all forced}}
-
-## This leaves validate alone because we trigger validation through the
-## textvar (a write trace), and the write during validation triggers
-## nothing (by definition of avoiding loops on var traces). This is
-## one of those "dangerous" conditions where the user will have a
-## different value in the entry widget shown as is in the textvar.
-test entry-19.20 {entry widget validation} -setup {
- unset -nocomplain ::e ::vVals
-} -body {
- entry .e -validate all \
- -validatecommand [list doval %W %d %i %P %s %S %v %V] \
- -invalidcommand bell \
- -textvariable ::e \
- -background red -foreground white
- pack .e
- set ::e nextdata ;# previous settings
- .e configure -validatecommand [list doval2 %W %d %i %P %s %S %v %V] ;# prev
- .e validate ;# previous settings
-
- .e configure -validate all
- set ::e testdata
- list [.e cget -validate] [.e get] $::e $::vVals
-} -cleanup {
- destroy .e
-} -result {all testdata mydata {.e -1 -1 testdata mydata {} all forced}}
-##
-## End validation tests
-##
-
-test entry-20.1 {widget deletion while active} -body {
- entry .e -validate all \
- -validatecommand { destroy %W ; return 1 } \
- -invalidcommand bell
- update
- .e insert 0 abc
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-20.2 {widget deletion while active} -body {
- entry .e -validate all \
- -validatecommand { return 0 } \
- -invalidcommand { destroy %W }
- .e insert 0 abc
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-20.3 {widget deletion while active} -body {
- entry .e -validate all \
- -validatecommand { rename .e {} ; return 1 }
- .e insert 0 abc
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-20.4 {widget deletion while active} -body {
- entry .e -validate all \
- -validatecommand { return 0 } \
- -invalidcommand { rename .e {} }
- .e insert 0 abc
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-20.5 {widget deletion while active} -body {
- entry .e -validatecommand { destroy .e ; return 0 }
- .e validate
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-20.6 {widget deletion while active} -body {
- pack [entry .e]
- update
- .e config -xscrollcommand { destroy .e }
- update idle
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-test entry-20.7 {widget deletion with textvariable active} -body {
-# SF bugs 607390 and 617446
- set FOO init
- entry .e -textvariable FOO -validate all \
- -vcmd {%W configure -bg white; format 1}
- bind .e <Destroy> { set FOO hello }
- destroy .e
- winfo exists .e
-} -cleanup {
- destroy .e
-} -result {0}
-
-
-test entry-21.1 {selection present while disabled, bug 637828} -body {
- entry .e
- .e insert end 0123456789
- .e select from 3
- .e select to 6
- set out [.e selection present]
- .e configure -state disabled
-# still return 1 when disabled, because 'selection get' will work,
-# but selection cannot be changed (new behavior since 8.4)
- .e select to 9
- lappend out [.e selection present] [selection get]
-} -cleanup {
- destroy .e
-} -result {1 1 345}
-
-test entry-22.1 {lost namespaced textvar} -body {
- namespace eval test { variable foo {a b} }
- entry .e -textvariable ::test::foo
- namespace delete test
- set ::test::foo
-} -cleanup {
- destroy .e
-} -returnCodes error -result {can't read "::test::foo": no such variable}
-test entry-22.2 {lost namespaced textvar} -body {
- namespace eval test { variable foo {a b} }
- entry .e -textvariable ::test::foo
- namespace delete test
- catch {.e insert end "more stuff"} result1
- catch {.e delete 5 end } result2
- catch {set ::test::foo} result3
- list [.e get] [.e cget -textvar] $result1 $result2 $result3
-} -cleanup {
- destroy .e
-} -result [list "a bmo" ::test::foo \
- {can't set "::test::foo": parent namespace doesn't exist} \
- {can't set "::test::foo": parent namespace doesn't exist} \
- {can't read "::test::foo": no such variable}]
-
-test entry-23.1 {error in trace proc attached to the textvariable} -setup {
- destroy .e
-} -body {
- trace variable myvar w traceit
- proc traceit args {error "Intentional error here!"}
- entry .e -textvariable myvar
- catch {.e insert end mystring} result1
- catch {.e delete 0} result2
- list $result1 $result2
-} -cleanup {
- destroy .e
-} -result [list {can't set "myvar": Intentional error here!} \
- {can't set "myvar": Intentional error here!}]
-
-test entry-24.1 {textvariable lives in a non-existing namespace} -setup {
- destroy .e
-} -body {
- catch {entry .e -textvariable thisnsdoesntexist::myvar} result1
- set result1
-} -cleanup {
- destroy .e
-} -result {can't trace "thisnsdoesntexist::myvar": parent namespace doesn't exist}
-
-# Gathered comments about lacks
-# XXX Still need to write tests for EntryBlinkProc, EntryFocusProc,
-# and EntryTextVarProc.
-# No tests for DisplayEntry.
-# XXX Still need to write tests for EntryScanTo and EntrySelectTo.
-# No tests for EventuallyRedraw
-
-# option clear
-# cleanup
-cleanupTests
-return
-
-
-