textTag.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:27k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test the code in the file tkTextTag.c.
  2. # This file is organized in the standard fashion for Tcl tests.
  3. #
  4. # Copyright (c) 1994 The Regents of the University of California.
  5. # Copyright (c) 1994-1996 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: textTag.test,v 1.6 2002/07/13 20:28:35 dgp Exp $
  10. package require tcltest 2.1
  11. namespace import -force tcltest::configure
  12. namespace import -force tcltest::testsDirectory
  13. configure -testdir [file join [pwd] [file dirname [info script]]]
  14. configure -loadfile [file join [testsDirectory] constraints.tcl]
  15. tcltest::loadTestedCommands
  16. catch {destroy .t}
  17. testConstraint courier12 [expr {[catch {
  18. text .t -font {Courier 12} -width 20 -height 10
  19. }] == 0}]
  20. pack append . .t {top expand fill}
  21. update
  22. .t debug on
  23. wm geometry . {}
  24. set bigFont {Helvetica 24}
  25.   
  26. # The statements below reset the main window;  it's needed if the window
  27. # manager is mwm, to make mwm forget about a previous minimum size setting.
  28. wm withdraw .
  29. wm minsize . 1 1
  30. wm positionfrom . user
  31. wm deiconify .
  32. entry .t.e
  33. .t.e insert 0 "Text"
  34. .t insert 1.0 "Line 1
  35. abcdefghijklm
  36. 12345
  37. Line 4
  38. bOy GIrl .#@? x_yz
  39. !@#$%
  40. Line 7"
  41. set i 1
  42. foreach test {
  43.     {-background #012345 #012345 non-existent
  44.     {unknown color name "non-existent"}}
  45.     {-bgstipple gray50 gray50 badStipple
  46.     {bitmap "badStipple" not defined}}
  47.     {-borderwidth 2 2 46q
  48.     {bad screen distance "46q"}}
  49.     {-fgstipple gray25 gray25 bogus
  50.     {bitmap "bogus" not defined}}
  51.     {-font fixed fixed {}
  52.     {font "" doesn't exist}}
  53.     {-foreground #001122 #001122 {silly color}
  54.     {unknown color name "silly color"}}
  55.     {-justify left left middle
  56.     {bad justification "middle": must be left, right, or center}}
  57.     {-lmargin1 10 10 bad
  58.     {bad screen distance "bad"}}
  59.     {-lmargin2 10 10 bad
  60.     {bad screen distance "bad"}}
  61.     {-offset 2 2 100xyz
  62.     {bad screen distance "100xyz"}}
  63.     {-overstrike on on stupid
  64.     {expected boolean value but got "stupid"}}
  65.     {-relief raised raised stupid
  66.     {bad relief type "stupid": must be flat, groove, raised, ridge, solid, or sunken}}
  67.     {-rmargin 10 10 bad
  68.     {bad screen distance "bad"}}
  69.     {-spacing1 10 10 bad
  70.     {bad screen distance "bad"}}
  71.     {-spacing2 10 10 bad
  72.     {bad screen distance "bad"}}
  73.     {-spacing3 10 10 bad
  74.     {bad screen distance "bad"}}
  75.     {-tabs {10 20 30} {10 20 30} {10 fork}
  76.     {bad tab alignment "fork": must be left, right, center, or numeric}}
  77.     {-underline no no stupid
  78.     {expected boolean value but got "stupid"}}
  79. } {
  80.     set name [lindex $test 0]
  81.     test textTag-1.$i {tag configuration options} courier12 {
  82. .t tag configure x $name [lindex $test 1]
  83. .t tag cget x $name
  84.     } [lindex $test 2]
  85.     incr i
  86.     if {[lindex $test 3] != ""} {
  87. test textTag-1.$i {configuration options} courier12 {
  88.     list [catch {.t tag configure x $name [lindex $test 3]} msg] $msg
  89. } [list 1 [lindex $test 4]]
  90.     }
  91.     .t tag configure x $name [lindex [.t tag configure x $name] 3]
  92.     incr i
  93. }
  94. test textTag-2.1 {TkTextTagCmd - "add" option} courier12 {
  95.     list [catch {.t tag} msg] $msg
  96. } {1 {wrong # args: should be ".t tag option ?arg arg ...?"}}
  97. test textTag-2.2 {TkTextTagCmd - "add" option} courier12 {
  98.     list [catch {.t tag gorp} msg] $msg
  99. } {1 {bad tag option "gorp": must be add, bind, cget, configure, delete, lower, names, nextrange, raise, ranges, or remove}}
  100. test textTag-2.3 {TkTextTagCmd - "add" option} courier12 {
  101.     list [catch {.t tag add foo} msg] $msg
  102. } {1 {wrong # args: should be ".t tag add tagName index1 ?index2 index1 index2 ...?"}}
  103. test textTag-2.4 {TkTextTagCmd - "add" option} courier12 {
  104.     list [catch {.t tag add x gorp} msg] $msg
  105. } {1 {bad text index "gorp"}}
  106. test textTag-2.5 {TkTextTagCmd - "add" option} courier12 {
  107.     list [catch {.t tag add x 1.2 gorp} msg] $msg
  108. } {1 {bad text index "gorp"}}
  109. test textTag-2.6 {TkTextTagCmd - "add" option} courier12 {
  110.     .t tag add sel 3.2 3.4
  111.     .t tag add sel 3.2 3.0
  112.     .t tag ranges sel
  113. } {3.2 3.4}
  114. test textTag-2.7 {TkTextTagCmd - "add" option} courier12 {
  115.     .t tag add x 1.0 1.end
  116.     .t tag ranges x
  117. } {1.0 1.6}
  118. test textTag-2.8 {TkTextTagCmd - "add" option} courier12 {
  119.     .t tag remove x 1.0 end
  120.     .t tag add x 1.2
  121.     .t tag ranges x
  122. } {1.2 1.3}
  123. test textTag-2.9 {TkTextTagCmd - "add" option} courier12 {
  124.     .t.e select from 0
  125.     .t.e select to 4
  126.     .t tag add sel 3.2 3.4
  127.     selection get
  128. } 34
  129. test textTag-2.11 {TkTextTagCmd - "add" option} courier12 {
  130.     .t.e select from 0
  131.     .t.e select to 4
  132.     .t configure -exportselection 0
  133.     .t tag add sel 3.2 3.4
  134.     selection get
  135. } Text
  136. test textTag-2.12 {TkTextTagCmd - "add" option} courier12 {
  137.     .t tag remove sel 1.0 end
  138.     .t tag add sel 1.1 1.5 2.4 3.1 4.2 4.4
  139.     .t tag ranges sel
  140. } {1.1 1.5 2.4 3.1 4.2 4.4}
  141. test textTag-2.13 {TkTextTagCmd - "add" option} courier12 {
  142.     .t tag remove sel 1.0 end
  143.     .t tag add sel 1.1 1.5 2.4
  144.     .t tag ranges sel
  145. } {1.1 1.5 2.4 2.5}
  146. catch {.t tag delete x}
  147. test textTag-3.1 {TkTextTagCmd - "bind" option} courier12 {
  148.     list [catch {.t tag bind} msg] $msg
  149. } {1 {wrong # args: should be ".t tag bind tagName ?sequence? ?command?"}}
  150. test textTag-3.2 {TkTextTagCmd - "bind" option} courier12 {
  151.     list [catch {.t tag bind 1 2 3 4} msg] $msg
  152. } {1 {wrong # args: should be ".t tag bind tagName ?sequence? ?command?"}}
  153. test textTag-3.3 {TkTextTagCmd - "bind" option} courier12 {
  154.     .t tag bind x <Enter> script1
  155.     .t tag bind x <Enter>
  156. } script1
  157. test textTag-3.4 {TkTextTagCmd - "bind" option} courier12 {
  158.     list [catch {.t tag bind x <Gorp> script2} msg] $msg
  159. } {1 {bad event type or keysym "Gorp"}}
  160. test textTag-3.5 {TkTextTagCmd - "bind" option} courier12 {
  161.     .t tag delete x
  162.     .t tag bind x <Enter> script1
  163.     list [catch {.t tag bind x <FocusIn> script2} msg] $msg [.t tag bind x]
  164. } {1 {requested illegal events; only key, button, motion, enter, leave, and virtual events may be used} <Enter>}
  165. test textTag-3.6 {TkTextTagCmd - "bind" option} courier12 {
  166.     .t tag delete x
  167.     .t tag bind x <Enter> script1
  168.     .t tag bind x <Leave> script2
  169.     .t tag bind x a xyzzy
  170.     list [lsort [.t tag bind x]] [.t tag bind x <Enter>] [.t tag bind x a]
  171. } {{<Enter> <Leave> a} script1 xyzzy}
  172. test textTag-3.7 {TkTextTagCmd - "bind" option} courier12 {
  173.     .t tag delete x
  174.     .t tag bind x <Enter> script1
  175.     .t tag bind x <Enter> +script2
  176.     .t tag bind x <Enter>
  177. } {script1
  178. script2}
  179. test textTag-3.7 {TkTextTagCmd - "bind" option} courier12 {
  180.     .t tag delete x
  181.     list [catch {.t tag bind x <Enter>} msg] $msg
  182. } {0 {}}
  183. test textTag-3.8 {TkTextTagCmd - "bind" option} courier12 {
  184.     .t tag delete x
  185.     list [catch {.t tag bind x <} msg] $msg
  186. } {1 {no event type or button # or keysym}}
  187. test textTag-4.1 {TkTextTagCmd - "cget" option} courier12 {
  188.     list [catch {.t tag cget a} msg] $msg
  189. } {1 {wrong # args: should be ".t tag cget tagName option"}}
  190. test textTag-4.2 {TkTextTagCmd - "cget" option} courier12 {
  191.     list [catch {.t tag cget a b c} msg] $msg
  192. } {1 {wrong # args: should be ".t tag cget tagName option"}}
  193. test textTag-4.3 {TkTextTagCmd - "cget" option} courier12 {
  194.     .t tag delete foo
  195.     list [catch {.t tag cget foo bar} msg] $msg
  196. } {1 {tag "foo" isn't defined in text widget}}
  197. test textTag-4.4 {TkTextTagCmd - "cget" option} courier12 {
  198.     list [catch {.t tag cget sel bogus} msg] $msg
  199. } {1 {unknown option "bogus"}}
  200. test textTag-4.5 {TkTextTagCmd - "cget" option} courier12 {
  201.     .t tag delete x
  202.     .t tag configure x -background red
  203.     list [catch {.t tag cget x -background} msg] $msg
  204. } {0 red}
  205. test textTag-5.1 {TkTextTagCmd - "configure" option} courier12 {
  206.     list [catch {.t tag configure} msg] $msg
  207. } {1 {wrong # args: should be ".t tag configure tagName ?option? ?value? ?option value ...?"}}
  208. test textTag-5.2 {TkTextTagCmd - "configure" option} courier12 {
  209.     list [catch {.t tag configure x -foo} msg] $msg
  210. } {1 {unknown option "-foo"}}
  211. test textTag-5.3 {TkTextTagCmd - "configure" option} courier12 {
  212.     list [catch {.t tag configure x -background red -underline} msg] $msg
  213. } {1 {value for "-underline" missing}}
  214. test textTag-5.4 {TkTextTagCmd - "configure" option} courier12 {
  215.     .t tag delete x
  216.     .t tag configure x -underline yes
  217.     .t tag configure x -underline
  218. } {-underline {} {} {} yes}
  219. test textTag-5.5 {TkTextTagCmd - "configure" option} courier12 {
  220.     .t tag delete x
  221.     .t tag configure x -overstrike on
  222.     .t tag cget x -overstrike
  223. } {on}
  224. test textTag-5.6 {TkTextTagCmd - "configure" option} courier12 {
  225.     list [catch {.t tag configure x -overstrike foo} msg] $msg
  226. } {1 {expected boolean value but got "foo"}}
  227. test textTag-5.7 {TkTextTagCmd - "configure" option} courier12 {
  228.     .t tag delete x
  229.     list [catch {.t tag configure x -underline stupid} msg] $msg
  230. } {1 {expected boolean value but got "stupid"}}
  231. test textTag-5.8 {TkTextTagCmd - "configure" option} courier12 {
  232.     .t tag delete x
  233.     .t tag configure x -justify left
  234.     .t tag configure x -justify
  235. } {-justify {} {} {} left}
  236. test textTag-5.9 {TkTextTagCmd - "configure" option} courier12 {
  237.     .t tag delete x
  238.     list [catch {.t tag configure x -justify bogus} msg] $msg
  239. } {1 {bad justification "bogus": must be left, right, or center}}
  240. test textTag-5.10 {TkTextTagCmd - "configure" option} courier12 {
  241.     .t tag delete x
  242.     list [catch {.t tag configure x -justify fill} msg] $msg
  243. } {1 {bad justification "fill": must be left, right, or center}}
  244. test textTag-5.11 {TkTextTagCmd - "configure" option} courier12 {
  245.     .t tag delete x
  246.     .t tag configure x -offset 2
  247.     .t tag configure x -offset
  248. } {-offset {} {} {} 2}
  249. test textTag-5.12 {TkTextTagCmd - "configure" option} courier12 {
  250.     .t tag delete x
  251.     list [catch {.t tag configure x -offset 1.0q} msg] $msg
  252. } {1 {bad screen distance "1.0q"}}
  253. test textTag-5.13 {TkTextTagCmd - "configure" option} courier12 {
  254.     .t tag delete x
  255.     .t tag configure x -lmargin1 2 -lmargin2 4 -rmargin 5
  256.     list [.t tag configure x -lmargin1] [.t tag configure x -lmargin2] 
  257.     [.t tag configure x -rmargin]
  258. } {{-lmargin1 {} {} {} 2} {-lmargin2 {} {} {} 4} {-rmargin {} {} {} 5}}
  259. test textTag-5.14 {TkTextTagCmd - "configure" option} courier12 {
  260.     .t tag delete x
  261.     list [catch {.t tag configure x -lmargin1 2.0x} msg] $msg
  262. } {1 {bad screen distance "2.0x"}}
  263. test textTag-5.15 {TkTextTagCmd - "configure" option} courier12 {
  264.     .t tag delete x
  265.     list [catch {.t tag configure x -lmargin2 gorp} msg] $msg
  266. } {1 {bad screen distance "gorp"}}
  267. test textTag-5.16 {TkTextTagCmd - "configure" option} courier12 {
  268.     .t tag delete x
  269.     list [catch {.t tag configure x -rmargin 140.1.1} msg] $msg
  270. } {1 {bad screen distance "140.1.1"}}
  271. .t tag delete x
  272. test textTag-5.17 {TkTextTagCmd - "configure" option} courier12 {
  273.     .t tag delete x
  274.     .t tag configure x -spacing1 2 -spacing2 4 -spacing3 6
  275.     list [.t tag configure x -spacing1] [.t tag configure x -spacing2] 
  276.     [.t tag configure x -spacing3]
  277. } {{-spacing1 {} {} {} 2} {-spacing2 {} {} {} 4} {-spacing3 {} {} {} 6}}
  278. test textTag-5.18 {TkTextTagCmd - "configure" option} courier12 {
  279.     .t tag delete x
  280.     list [catch {.t tag configure x -spacing1 2.0x} msg] $msg
  281. } {1 {bad screen distance "2.0x"}}
  282. test textTag-5.19 {TkTextTagCmd - "configure" option} courier12 {
  283.     .t tag delete x
  284.     list [catch {.t tag configure x -spacing1 lousy} msg] $msg
  285. } {1 {bad screen distance "lousy"}}
  286. test textTag-5.20 {TkTextTagCmd - "configure" option} courier12 {
  287.     .t tag delete x
  288.     list [catch {.t tag configure x -spacing1 4.2.3} msg] $msg
  289. } {1 {bad screen distance "4.2.3"}}
  290. test textTag-5.21 {TkTextTagCmd - "configure" option} courier12 {
  291.     .t configure -selectborderwidth 2 -selectforeground blue 
  292.     -selectbackground black
  293.     .t tag configure sel -borderwidth 4 -foreground green -background yellow
  294.     set x {}
  295.     foreach i {-selectborderwidth -selectforeground -selectbackground} {
  296. lappend x [lindex [.t configure $i] 4]
  297.     }
  298.     set x
  299. } {4 green yellow}
  300. test textTag-5.22 {TkTextTagCmd - "configure" option} courier12 {
  301.     .t configure -selectborderwidth 20
  302.     .t tag configure sel -borderwidth {}
  303.     .t cget -selectborderwidth
  304. } {}
  305. test textTag-6.1 {TkTextTagCmd - "delete" option} courier12 {
  306.     list [catch {.t tag delete} msg] $msg
  307. } {1 {wrong # args: should be ".t tag delete tagName tagName ..."}}
  308. test textTag-6.2 {TkTextTagCmd - "delete" option} courier12 {
  309.     list [catch {.t tag delete zork} msg] $msg
  310. } {0 {}}
  311. test textTag-6.3 {TkTextTagCmd - "delete" option} courier12 {
  312.     .t tag delete x
  313.     .t tag config x -background black
  314.     .t tag config y -foreground white
  315.     .t tag config z -background black
  316.     .t tag delete y z
  317.     lsort [.t tag names]
  318. } {sel x}
  319. test textTag-6.4 {TkTextTagCmd - "delete" option} courier12 {
  320.     .t tag config x -background black
  321.     .t tag config y -foreground white
  322.     .t tag config z -background black
  323.     eval .t tag delete [.t tag names]
  324.     .t tag names
  325. } {sel}
  326. test textTag-6.5 {TkTextTagCmd - "delete" option} courier12 {
  327.     .t tag bind x <Enter> foo
  328.     .t tag delete x
  329.     .t tag configure x -background black
  330.     .t tag bind x
  331. } {}
  332. proc tagsetup {} {
  333.     .t tag delete x y z a b c d
  334.     .t tag remove sel 1.0 end
  335.     foreach i {a b c d} {
  336. .t tag configure $i -background black
  337.     }
  338. }
  339. test textTag-7.1 {TkTextTagCmd - "lower" option} courier12 {
  340.     list [catch {.t tag lower} msg] $msg
  341. } {1 {wrong # args: should be ".t tag lower tagName ?belowThis?"}}
  342. test textTag-7.2 {TkTextTagCmd - "lower" option} courier12 {
  343.     list [catch {.t tag lower foo} msg] $msg
  344. } {1 {tag "foo" isn't defined in text widget}}
  345. test textTag-7.3 {TkTextTagCmd - "lower" option} courier12 {
  346.     list [catch {.t tag lower sel bar} msg] $msg
  347. } {1 {tag "bar" isn't defined in text widget}}
  348. test textTag-7.4 {TkTextTagCmd - "lower" option} courier12 {
  349.     tagsetup
  350.     .t tag lower c
  351.     .t tag names
  352. } {c sel a b d}
  353. test textTag-7.5 {TkTextTagCmd - "lower" option} courier12 {
  354.     tagsetup
  355.     .t tag lower d b
  356.     .t tag names
  357. } {sel a d b c}
  358. test textTag-7.6 {TkTextTagCmd - "lower" option} courier12 {
  359.     tagsetup
  360.     .t tag lower a c
  361.     .t tag names
  362. } {sel b a c d}
  363. test textTag-8.1 {TkTextTagCmd - "names" option} courier12 {
  364.     list [catch {.t tag names a b} msg] $msg
  365. } {1 {wrong # args: should be ".t tag names ?index?"}}
  366. test textTag-8.2 {TkTextTagCmd - "names" option} courier12 {
  367.     tagsetup
  368.     .t tag names
  369. } {sel a b c d}
  370. test textTag-8.3 {TkTextTagCmd - "names" option} courier12 {
  371.     tagsetup
  372.     .t tag add "a b" 2.1 2.6
  373.     .t tag add c 2.4 2.7
  374.     .t tag names 2.5
  375. } {c {a b}}
  376. .t tag delete x y z a b c d {a b}
  377. .t tag add x 2.3 2.5
  378. .t tag add x 2.9 3.1
  379. .t tag add x 7.2
  380. test textTag-9.1 {TkTextTagCmd - "nextrange" option} courier12 {
  381.     list [catch {.t tag nextrange x} msg] $msg
  382. } {1 {wrong # args: should be ".t tag nextrange tagName index1 ?index2?"}}
  383. test textTag-9.2 {TkTextTagCmd - "nextrange" option} courier12 {
  384.     list [catch {.t tag nextrange x 1 2 3} msg] $msg
  385. } {1 {wrong # args: should be ".t tag nextrange tagName index1 ?index2?"}}
  386. test textTag-9.3 {TkTextTagCmd - "nextrange" option} courier12 {
  387.     list [catch {.t tag nextrange foo 1.0} msg] $msg
  388. } {0 {}}
  389. test textTag-9.4 {TkTextTagCmd - "nextrange" option} courier12 {
  390.     list [catch {.t tag nextrange x foo} msg] $msg
  391. } {1 {bad text index "foo"}}
  392. test textTag-9.5 {TkTextTagCmd - "nextrange" option} courier12 {
  393.     list [catch {.t tag nextrange x 1.0 bar} msg] $msg
  394. } {1 {bad text index "bar"}}
  395. test textTag-9.6 {TkTextTagCmd - "nextrange" option} courier12 {
  396.     .t tag nextrange x 1.0
  397. } {2.3 2.5}
  398. test textTag-9.7 {TkTextTagCmd - "nextrange" option} courier12 {
  399.     .t tag nextrange x 2.2
  400. } {2.3 2.5}
  401. test textTag-9.8 {TkTextTagCmd - "nextrange" option} courier12 {
  402.     .t tag nextrange x 2.3
  403. } {2.3 2.5}
  404. test textTag-9.9 {TkTextTagCmd - "nextrange" option} courier12 {
  405.     .t tag nextrange x 2.4
  406. } {2.9 3.1}
  407. test textTag-9.10 {TkTextTagCmd - "nextrange" option} courier12 {
  408.     .t tag nextrange x 2.4 2.9
  409. } {}
  410. test textTag-9.11 {TkTextTagCmd - "nextrange" option} courier12 {
  411.     .t tag nextrange x 2.4 2.10
  412. } {2.9 3.1}
  413. test textTag-9.12 {TkTextTagCmd - "nextrange" option} courier12 {
  414.     .t tag nextrange x 2.4 2.11
  415. } {2.9 3.1}
  416. test textTag-9.13 {TkTextTagCmd - "nextrange" option} courier12 {
  417.     .t tag nextrange x 7.0
  418. } {7.2 7.3}
  419. test textTag-9.14 {TkTextTagCmd - "nextrange" option} courier12 {
  420.     .t tag nextrange x 7.3
  421. } {}
  422. test textTag-10.1 {TkTextTagCmd - "prevrange" option} courier12 {
  423.     list [catch {.t tag prevrange x} msg] $msg
  424. } {1 {wrong # args: should be ".t tag prevrange tagName index1 ?index2?"}}
  425. test textTag-10.2 {TkTextTagCmd - "prevrange" option} courier12 {
  426.     list [catch {.t tag prevrange x 1 2 3} msg] $msg
  427. } {1 {wrong # args: should be ".t tag prevrange tagName index1 ?index2?"}}
  428. test textTag-10.3 {TkTextTagCmd - "prevrange" option} courier12 {
  429.     list [catch {.t tag prevrange foo end} msg] $msg
  430. } {0 {}}
  431. test textTag-10.4 {TkTextTagCmd - "prevrange" option} courier12 {
  432.     list [catch {.t tag prevrange x foo} msg] $msg
  433. } {1 {bad text index "foo"}}
  434. test textTag-10.5 {TkTextTagCmd - "prevrange" option} courier12 {
  435.     list [catch {.t tag prevrange x end bar} msg] $msg
  436. } {1 {bad text index "bar"}}
  437. test textTag-10.6 {TkTextTagCmd - "prevrange" option} courier12 {
  438.     .t tag prevrange x end
  439. } {7.2 7.3}
  440. test textTag-10.7 {TkTextTagCmd - "prevrange" option} courier12 {
  441.     .t tag prevrange x 2.4
  442. } {2.3 2.5}
  443. test textTag-10.8 {TkTextTagCmd - "prevrange" option} courier12 {
  444.     .t tag prevrange x 2.5
  445. } {2.3 2.5}
  446. test textTag-10.9 {TkTextTagCmd - "prevrange" option} courier12 {
  447.     .t tag prevrange x 2.9
  448. } {2.3 2.5}
  449. test textTag-10.10 {TkTextTagCmd - "prevrange" option} courier12 {
  450.     .t tag prevrange x 2.9 2.6
  451. } {}
  452. test textTag-10.11 {TkTextTagCmd - "prevrange" option} courier12 {
  453.     .t tag prevrange x 2.9 2.5
  454. } {}
  455. test textTag-10.12 {TkTextTagCmd - "prevrange" option} courier12 {
  456.     .t tag prevrange x 2.9 2.3
  457. } {2.3 2.5}
  458. test textTag-10.13 {TkTextTagCmd - "prevrange" option} courier12 {
  459.     .t tag prevrange x 7.0
  460. } {2.9 3.1}
  461. test textTag-10.14 {TkTextTagCmd - "prevrange" option} courier12 {
  462.     .t tag prevrange x 2.3
  463. } {}
  464. test textTag-11.1 {TkTextTagCmd - "raise" option} courier12 {
  465.     list [catch {.t tag raise} msg] $msg
  466. } {1 {wrong # args: should be ".t tag raise tagName ?aboveThis?"}}
  467. test textTag-11.2 {TkTextTagCmd - "raise" option} courier12 {
  468.     list [catch {.t tag raise foo} msg] $msg
  469. } {1 {tag "foo" isn't defined in text widget}}
  470. test textTag-11.3 {TkTextTagCmd - "raise" option} courier12 {
  471.     list [catch {.t tag raise sel bar} msg] $msg
  472. } {1 {tag "bar" isn't defined in text widget}}
  473. test textTag-11.4 {TkTextTagCmd - "raise" option} courier12 {
  474.     tagsetup
  475.     .t tag raise c
  476.     .t tag names
  477. } {sel a b d c}
  478. test textTag-11.5 {TkTextTagCmd - "raise" option} courier12 {
  479.     tagsetup
  480.     .t tag raise d b
  481.     .t tag names
  482. } {sel a b d c}
  483. test textTag-11.6 {TkTextTagCmd - "raise" option} courier12 {
  484.     tagsetup
  485.     .t tag raise a c
  486.     .t tag names
  487. } {sel b c a d}
  488. test textTag-12.1 {TkTextTagCmd - "ranges" option} courier12 {
  489.     list [catch {.t tag ranges} msg] $msg
  490. } {1 {wrong # args: should be ".t tag ranges tagName"}}
  491. test textTag-12.2 {TkTextTagCmd - "ranges" option} courier12 {
  492.     .t tag delete x
  493.     .t tag ranges x
  494. } {}
  495. test textTag-12.3 {TkTextTagCmd - "ranges" option} courier12 {
  496.     .t tag delete x
  497.     .t tag add x 2.2
  498.     .t tag add x 2.7 4.15
  499.     .t tag add x 5.2 5.5
  500.     .t tag ranges x
  501. } {2.2 2.3 2.7 4.6 5.2 5.5}
  502. test textTag-12.4 {TkTextTagCmd - "ranges" option} courier12 {
  503.     .t tag delete x
  504.     .t tag add x 1.0 3.0
  505.     .t tag add x 4.0 end
  506.     .t tag ranges x
  507. } {1.0 3.0 4.0 8.0}
  508. test textTag-13.1 {TkTextTagCmd - "remove" option} courier12 {
  509.     list [catch {.t tag remove} msg] $msg
  510. } {1 {wrong # args: should be ".t tag remove tagName index1 ?index2 index1 index2 ...?"}}
  511. test textTag-13.2 {TkTextTagCmd - "remove" option} courier12 {
  512.     .t tag delete x
  513.     .t tag add x 2.2 2.11
  514.     .t tag remove x 2.3 2.7
  515.     .t tag ranges x
  516. } {2.2 2.3 2.7 2.11}
  517. test textTag-13.3 {TkTextTagCmd - "remove" option} courier12 {
  518.     .t configure -exportselection 1
  519.     .t tag remove sel 1.0 end
  520.     .t tag add sel 2.4 3.3
  521.     .t.e select to 4
  522.     .t tag remove sel 2.7 3.1
  523.     selection get
  524. } Text
  525. .t tag delete x a b c d
  526. test textTag-14.1 {SortTags} courier12 {
  527.     foreach i {a b c d} {
  528. .t tag add $i 2.0 2.2
  529.     }
  530.     .t tag names 2.1
  531. } {a b c d}
  532. .t tag delete a b c d
  533. test textTag-14.2 {SortTags} courier12 {
  534.     foreach i {a b c d} {
  535. .t tag configure $i -background black
  536.     }
  537.     foreach i {d c b a} {
  538. .t tag add $i 2.0 2.2
  539.     }
  540.     .t tag names 2.1
  541. } {a b c d}
  542. .t tag delete x a b c d
  543. test textTag-14.3 {SortTags} courier12 {
  544.     for {set i 0} {$i < 30} {incr i} {
  545. .t tag add x$i 2.0 2.2
  546.     }
  547.     .t tag names 2.1
  548. } {x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29}
  549. test textTag-14.4 {SortTags} courier12 {
  550.     for {set i 0} {$i < 30} {incr i} {
  551. .t tag configure x$i -background black
  552.     }
  553.     for {set i 29} {$i >= 0} {incr i -1} {
  554. .t tag add x$i 2.0 2.2
  555.     }
  556.     .t tag names 2.1
  557. } {x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29}
  558. foreach tag [.t tag names] {
  559.     catch {.t tag delete $tag}
  560. }
  561. set c [.t bbox 2.1]
  562. set x1 [expr [lindex $c 0] + [lindex $c 2]/2]
  563. set y1 [expr [lindex $c 1] + [lindex $c 3]/2]
  564. set c [.t bbox 3.2]
  565. set x2 [expr [lindex $c 0] + [lindex $c 2]/2]
  566. set y2 [expr [lindex $c 1] + [lindex $c 3]/2]
  567. set c [.t bbox 4.3]
  568. set x3 [expr [lindex $c 0] + [lindex $c 2]/2]
  569. set y3 [expr [lindex $c 1] + [lindex $c 3]/2]
  570. test textTag-15.1 {TkTextBindProc} courier12 {
  571.     bind .t <ButtonRelease> {lappend x up}
  572.     .t tag bind x <ButtonRelease> {lappend x x-up}
  573.     .t tag bind y <ButtonRelease> {lappend x y-up}
  574.     set x {}
  575.     .t tag add x 2.0 2.4
  576.     .t tag add y 4.3
  577.     event gen .t <Button> -x $x1 -y $y1
  578.     event gen .t <Motion> -x $x1 -y $y1
  579.     event gen .t <ButtonRelease> -x $x1 -y $y1
  580.     event gen .t <Button> -x $x1 -y $y1
  581.     event gen .t <Motion> -x $x2 -y $y2
  582.     event gen .t <ButtonRelease> -x $x2 -y $y2
  583.     event gen .t <Button> -x $x2 -y $y2
  584.     event gen .t <Motion> -x $x3 -y $y3
  585.     event gen .t <ButtonRelease> -x $x3 -y $y3
  586.     bind .t <ButtonRelease> {}
  587.     set x
  588. } {x-up up up y-up up}
  589. test textTag-15.2 {TkTextBindProc} courier12 {
  590.     catch {.t tag delete x}
  591.     catch {.t tag delete y}
  592.     .t tag bind x <Enter> {lappend x x-enter}
  593.     .t tag bind x <ButtonPress> {lappend x x-down}
  594.     .t tag bind x <ButtonRelease> {lappend x x-up}
  595.     .t tag bind x <Leave> {lappend x x-leave}
  596.     .t tag bind y <Enter> {lappend x y-enter}
  597.     .t tag bind y <ButtonPress> {lappend x y-down}
  598.     .t tag bind y <ButtonRelease> {lappend x y-up}
  599.     .t tag bind y <Leave> {lappend x y-leave}
  600.     event gen .t <Motion> -x 0 -y 0
  601.     set x {}
  602.     .t tag add x 2.0 2.4
  603.     .t tag add y 4.3
  604.     event gen .t <Motion> -x $x1 -y $y1
  605.     lappend x |
  606.     event gen .t <Button> -x $x1 -y $y1
  607.     lappend x |
  608.     event gen .t <Motion> -x $x3 -y $y3 -state 0x100
  609.     lappend x |
  610.     event gen .t <ButtonRelease> -x $x3 -y $y3
  611.     set x
  612. } {x-enter | x-down | | x-up x-leave y-enter}
  613. test textTag-15.3 {TkTextBindProc} courier12 {
  614.     catch {.t tag delete x}
  615.     catch {.t tag delete y}
  616.     .t tag bind x <Enter> {lappend x x-enter}
  617.     .t tag bind x <Any-ButtonPress-1> {lappend x x-down}
  618.     .t tag bind x <Any-ButtonRelease-1> {lappend x x-up}
  619.     .t tag bind x <Leave> {lappend x x-leave}
  620.     .t tag bind y <Enter> {lappend x y-enter}
  621.     .t tag bind y <Any-ButtonPress-1> {lappend x y-down}
  622.     .t tag bind y <Any-ButtonRelease-1> {lappend x y-up}
  623.     .t tag bind y <Leave> {lappend x y-leave}
  624.     event gen .t <Motion> -x 0 -y 0
  625.     set x {}
  626.     .t tag add x 2.0 2.4
  627.     .t tag add y 4.3
  628.     event gen .t <Motion> -x $x1 -y $y1
  629.     lappend x |
  630.     event gen .t <Button-1> -x $x1 -y $y1
  631.     lappend x |
  632.     event gen .t <Button-2> -x $x1 -y $y1 -state 0x100
  633.     lappend x |
  634.     event gen .t <Motion> -x $x3 -y $y3  -state 0x300
  635.     lappend x |
  636.     event gen .t <ButtonRelease-1> -x $x3 -y $y3 -state 0x300
  637.     lappend x |
  638.     event gen .t <ButtonRelease-2> -x $x3 -y $y3 -state 0x200
  639.     set x
  640. } {x-enter | x-down | | | x-up | x-leave y-enter}
  641. foreach tag [.t tag names] {
  642.     catch {.t tag delete $tag}
  643. }
  644. .t tag configure big -font $bigFont
  645. test textTag-16.1 {TkTextPickCurrent procedure} courier12 {
  646.     event gen .t <ButtonRelease-1> -state 0x100 -x $x1 -y $y1
  647.     set x [.t index current]
  648.     event gen .t <Motion> -x $x2 -y $y2
  649.     lappend x [.t index current]
  650.     event gen .t <Button-1> -x $x2 -y $y2
  651.     lappend x [.t index current]
  652.     event gen .t <Motion> -x $x3 -y $y3 -state 0x100
  653.     lappend x [.t index current]
  654.     event gen .t <Button-3> -state 0x100 -x $x3 -y $y3
  655.     lappend x [.t index current]
  656.     event gen .t <ButtonRelease-3> -state 0x300 -x $x3 -y $y3
  657.     lappend x [.t index current]
  658.     event gen .t <ButtonRelease-1> -state 0x100 -x $x3 -y $y3
  659.     lappend x [.t index current]
  660. } {2.1 3.2 3.2 3.2 3.2 3.2 4.3}
  661. test textTag-16.2 {TkTextPickCurrent procedure} courier12 {
  662.     event gen .t <ButtonRelease-1> -state 0x100 -x $x1 -y $y1
  663.     event gen .t <Motion> -x $x2 -y $y2
  664.     set x [.t index current]
  665.     .t tag add big 3.0
  666.     update
  667.     lappend x [.t index current]
  668. } {3.2 3.1}
  669. .t tag remove big 1.0 end
  670. foreach i {a b c d} {
  671.     .t tag bind $i <Enter> "lappend x enter-$i"
  672.     .t tag bind $i <Leave> "lappend x leave-$i"
  673. }
  674. test textTag-16.3 {TkTextPickCurrent procedure} courier12 {
  675.     foreach i {a b c d} {
  676. .t tag remove $i 1.0 end
  677.     }
  678.     .t tag lower b
  679.     .t tag lower a
  680.     set x {}
  681.     event gen .t <Motion> -x $x1 -y $y1
  682.     .t tag add a 2.1 3.3
  683.     .t tag add b 2.1
  684.     .t tag add c 3.2
  685.     update
  686.     lappend x |
  687.     event gen .t <Motion> -x $x2 -y $y2
  688.     lappend x |
  689.     event gen .t <Motion> -x $x3 -y $y3
  690.     set x
  691. } {enter-a enter-b | leave-b enter-c | leave-a leave-c}
  692. test textTag-16.4 {TkTextPickCurrent procedure} courier12 {
  693.     foreach i {a b c d} {
  694. .t tag remove $i 1.0 end
  695.     }
  696.     .t tag lower b
  697.     .t tag lower a
  698.     set x {}
  699.     event gen .t <Motion> -x $x1 -y $y1
  700.     .t tag add a 2.1 3.3
  701.     .t tag add b 2.1
  702.     .t tag add c 2.1
  703.     update
  704.     lappend x |
  705.     .t tag lower c
  706.     event gen .t <Motion> -x $x2 -y $y2
  707.     set x
  708. } {enter-a enter-b enter-c | leave-c leave-b}
  709. foreach i {a b c d} {
  710.     .t tag delete $i
  711. }
  712. test textTag-16.5 {TkTextPickCurrent procedure} courier12 {
  713.     foreach i {a b c d} {
  714. .t tag remove $i 1.0 end
  715.     }
  716.     event gen .t <Motion> -x $x1 -y $y1
  717.     .t tag bind a <Enter> {.t tag add big 3.0 3.2}
  718.     .t tag add a 3.2
  719.     event gen .t <Motion> -x $x2 -y $y2
  720.     .t index current
  721. } {3.2}
  722. test textTag-16.6 {TkTextPickCurrent procedure} courier12 {
  723.     foreach i {a b c d} {
  724. .t tag remove $i 1.0 end
  725.     }
  726.     event gen .t <Motion> -x $x1 -y $y1
  727.     .t tag bind a <Enter> {.t tag add big 3.0 3.2}
  728.     .t tag add a 3.2
  729.     event gen .t <Motion> -x $x2 -y $y2
  730.     update
  731.     .t index current
  732. } {3.1}
  733. test textTag-16.7 {TkTextPickCurrent procedure} courier12 {
  734.     foreach i {a b c d} {
  735. .t tag remove $i 1.0 end
  736.     }
  737.     event gen .t <Motion> -x $x1 -y $y1
  738.     .t tag bind a <Leave> {.t tag add big 3.0 3.2}
  739.     .t tag add a 2.1
  740.     event gen .t <Motion> -x $x2 -y $y2
  741.     .t index current
  742. } {3.1}
  743. catch {destroy .t}
  744. # cleanup
  745. ::tcltest::cleanupTests
  746. return