diff options
author | rjohnson <rjohnson> | 1998-04-01 09:51:44 (GMT) |
---|---|---|
committer | rjohnson <rjohnson> | 1998-04-01 09:51:44 (GMT) |
commit | 066ea7fd88d49cb456f74da71dbe875e4fc0aabb (patch) | |
tree | 8fb30cb152c4dc191be47fa043d2e6f5ea38c7ba /tests/textMark.test | |
parent | 13242623d2ff3ea02ab6a62bfb48a7dbb5c27e22 (diff) | |
download | tk-066ea7fd88d49cb456f74da71dbe875e4fc0aabb.zip tk-066ea7fd88d49cb456f74da71dbe875e4fc0aabb.tar.gz tk-066ea7fd88d49cb456f74da71dbe875e4fc0aabb.tar.bz2 |
Initial revision
Diffstat (limited to 'tests/textMark.test')
-rw-r--r-- | tests/textMark.test | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/tests/textMark.test b/tests/textMark.test new file mode 100644 index 0000000..39a0961 --- /dev/null +++ b/tests/textMark.test @@ -0,0 +1,222 @@ +# This file is a Tcl script to test the code in the file tkTextMark.c. +# This file is organized in the standard fashion for Tcl tests. +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# SCCS: @(#) textMark.test 1.8 97/10/20 11:13:00 + +if {[string compare test [info procs test]] == 1} then \ + {source defs} + +catch {destroy .t} +if [catch {text .t -font {Courier 12} -width 20 -height 10}] { + puts "The font needed by these tests isn't available, so I'm" + puts "going to skip the tests." + return +} +pack append . .t {top expand fill} +update +.t debug on +wm geometry . {} + +# The statements below reset the main window; it's needed if the window +# manager is mwm to make mwm forget about a previous minimum size setting. + +wm withdraw . +wm minsize . 1 1 +wm positionfrom . user +wm deiconify . + +entry .t.e +.t insert 1.0 "Line 1 +abcdefghijklm +12345 +Line 4 +bOy GIrl .#@? x_yz +!@#$% +Line 7" + +test textMark-1.1 {TkTextMarkCmd - missing option} { + list [catch {.t mark} msg] $msg +} {1 {wrong # args: should be ".t mark option ?arg arg ...?"}} +test textMark-1.2 {TkTextMarkCmd - bogus option} { + list [catch {.t mark gorp} msg] $msg +} {1 {bad mark option "gorp": must be gravity, names, next, previous, set, or unset}} +test textMark-1.3 {TkTextMarkCmd - "gravity" option} { + list [catch {.t mark gravity foo} msg] $msg +} {1 {there is no mark named "foo"}} +test textMark-1.4 {TkTextMarkCmd - "gravity" option} { + .t mark unset x + .t mark set x 1.3 + .t insert 1.3 x + list [.t mark gravity x] [.t index x] +} {right 1.4} +test textMark-1.5 {TkTextMarkCmd - "gravity" option} { + .t mark unset x + .t mark set x 1.3 + .t mark g x left + .t insert 1.3 x + list [.t mark gravity x] [.t index x] +} {left 1.3} +test textMark-1.6 {TkTextMarkCmd - "gravity" option} { + .t mark unset x + .t mark set x 1.3 + .t mark gravity x right + .t insert 1.3 x + list [.t mark gravity x] [.t index x] +} {right 1.4} +test textMark-1.7 {TkTextMarkCmd - "gravity" option} { + list [catch {.t mark gravity x gorp} msg] $msg +} {1 {bad mark gravity "gorp": must be left or right}} +test textMark-1.8 {TkTextMarkCmd - "gravity" option} { + list [catch {.t mark gravity} msg] $msg +} {1 {wrong # args: should be ".t mark gravity markName ?gravity?"}} + +test textMark-2.1 {TkTextMarkCmd - "names" option} { + list [catch {.t mark names 2} msg] $msg +} {1 {wrong # args: should be ".t mark names"}} +.t mark unset x +test textMark-2.2 {TkTextMarkCmd - "names" option} { + lsort [.t mark n] +} {current insert} +test textMark-2.3 {TkTextMarkCmd - "names" option} { + .t mark set a 1.1 + .t mark set "b c" 2.3 + lsort [.t mark names] +} {a {b c} current insert} + +test textMark-3.1 {TkTextMarkCmd - "set" option} { + list [catch {.t mark set a} msg] $msg +} {1 {wrong # args: should be ".t mark set markName index"}} +test textMark-3.2 {TkTextMarkCmd - "set" option} { + list [catch {.t mark s a b c} msg] $msg +} {1 {wrong # args: should be ".t mark set markName index"}} +test textMark-3.3 {TkTextMarkCmd - "set" option} { + list [catch {.t mark set a @x} msg] $msg +} {1 {bad text index "@x"}} +test textMark-3.4 {TkTextMarkCmd - "set" option} { + .t mark set a 1.2 + .t index a +} 1.2 +test textMark-3.5 {TkTextMarkCmd - "set" option} { + .t mark set a end + .t index a +} {8.0} + +test textMark-4.1 {TkTextMarkCmd - "unset" option} { + list [catch {.t mark unset} msg] $msg +} {0 {}} +test textMark-4.2 {TkTextMarkCmd - "unset" option} { + .t mark set a 1.2 + .t mark set b 2.3 + .t mark unset a b + list [catch {.t index a} msg] $msg [catch {.t index b} msg2] $msg2 +} {1 {bad text index "a"} 1 {bad text index "b"}} +test textMark-4.3 {TkTextMarkCmd - "unset" option} { + .t mark set a 1.2 + .t mark set b 2.3 + .t mark set 49ers 3.1 + eval .t mark unset [.t mark names] + lsort [.t mark names] +} {current insert} + +test textMark-5.1 {TkTextMarkCmd - miscellaneous} { + list [catch {.t mark} msg] $msg +} {1 {wrong # args: should be ".t mark option ?arg arg ...?"}} +test textMark-5.2 {TkTextMarkCmd - miscellaneous} { + list [catch {.t mark foo} msg] $msg +} {1 {bad mark option "foo": must be gravity, names, next, previous, set, or unset}} + +test textMark-6.1 {TkTextMarkSegToIndex} { + .t mark set a 1.2 + .t mark set b 1.2 + .t mark set c 1.2 + .t mark set d 1.4 + list [.t index a] [.t index b] [.t index c ] [.t index d] +} {1.2 1.2 1.2 1.4} + +catch {eval {.t mark unset} [.t mark names]} +test textMark-7.1 {MarkFindNext - invalid mark name} { + catch {.t mark next bogus} x + set x +} {bad text index "bogus"} +test textMark-7.2 {MarkFindNext - marks at same location} { + .t mark set insert 2.0 + .t mark set current 2.0 + .t mark next current +} {insert} +test textMark-7.3 {MarkFindNext - numerical starting mark} { + .t mark set current 1.0 + .t mark set insert 1.0 + .t mark next 1.0 +} {insert} +test textMark-7.4 {MarkFindNext - mark on the same line} { + .t mark set current 1.0 + .t mark set insert 1.1 + .t mark next current +} {insert} +test textMark-7.5 {MarkFindNext - mark on the next line} { + .t mark set current 1.end + .t mark set insert 2.0 + .t mark next current +} {insert} +test textMark-7.6 {MarkFindNext - mark far away} { + .t mark set current 1.2 + .t mark set insert 7.0 + .t mark next current +} {insert} +test textMark-7.7 {MarkFindNext - mark on top of end} { + .t mark set current end + .t mark next end +} {current} +test textMark-7.8 {MarkFindNext - no next mark} { + .t mark set current 1.0 + .t mark set insert 3.0 + .t mark next insert +} {} +test textMark-8.1 {MarkFindPrev - invalid mark name} { + catch {.t mark prev bogus} x + set x +} {bad text index "bogus"} +test textMark-8.2 {MarkFindPrev - marks at same location} { + .t mark set insert 2.0 + .t mark set current 2.0 + .t mark prev insert +} {current} +test textMark-8.3 {MarkFindPrev - numerical starting mark} { + .t mark set current 1.0 + .t mark set insert 1.0 + .t mark prev 1.1 +} {current} +test textMark-8.4 {MarkFindPrev - mark on the same line} { + .t mark set current 1.0 + .t mark set insert 1.1 + .t mark prev insert +} {current} +test textMark-8.5 {MarkFindPrev - mark on the previous line} { + .t mark set current 1.end + .t mark set insert 2.0 + .t mark prev insert +} {current} +test textMark-8.6 {MarkFindPrev - mark far away} { + .t mark set current 1.2 + .t mark set insert 7.0 + .t mark prev insert +} {current} +test textMark-8.7 {MarkFindPrev - mark on top of end} { + .t mark set insert 3.0 + .t mark set current end + .t mark prev end +} {insert} +test textMark-8.8 {MarkFindPrev - no previous mark} { + .t mark set current 1.0 + .t mark set insert 3.0 + .t mark prev current +} {} + +catch {destroy .t} +concat {} |