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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test the code in the file tkTextMark.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 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: textMark.test,v 1.5 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.   
  25. # The statements below reset the main window;  it's needed if the window
  26. # manager is mwm to make mwm forget about a previous minimum size setting.
  27. wm withdraw .
  28. wm minsize . 1 1
  29. wm positionfrom . user
  30. wm deiconify .
  31. entry .t.e
  32. .t insert 1.0 "Line 1
  33. abcdefghijklm
  34. 12345
  35. Line 4
  36. bOy GIrl .#@? x_yz
  37. !@#$%
  38. Line 7"
  39. test textMark-1.1 {TkTextMarkCmd - missing option} courier12 {
  40.     list [catch {.t mark} msg] $msg
  41. } {1 {wrong # args: should be ".t mark option ?arg arg ...?"}}
  42. test textMark-1.2 {TkTextMarkCmd - bogus option} courier12 {
  43.     list [catch {.t mark gorp} msg] $msg
  44. } {1 {bad mark option "gorp": must be gravity, names, next, previous, set, or unset}}
  45. test textMark-1.3 {TkTextMarkCmd - "gravity" option} courier12 {
  46.     list [catch {.t mark gravity foo} msg] $msg
  47. } {1 {there is no mark named "foo"}}
  48. test textMark-1.4 {TkTextMarkCmd - "gravity" option} courier12 {
  49.     .t mark unset x
  50.     .t mark set x 1.3
  51.     .t insert 1.3 x
  52.     list [.t mark gravity x] [.t index x]
  53. } {right 1.4}
  54. test textMark-1.5 {TkTextMarkCmd - "gravity" option} courier12 {
  55.     .t mark unset x
  56.     .t mark set x 1.3
  57.     .t mark g x left
  58.     .t insert 1.3 x
  59.     list [.t mark gravity x] [.t index x]
  60. } {left 1.3}
  61. test textMark-1.6 {TkTextMarkCmd - "gravity" option} courier12 {
  62.     .t mark unset x
  63.     .t mark set x 1.3
  64.     .t mark gravity x right
  65.     .t insert 1.3 x
  66.     list [.t mark gravity x] [.t index x]
  67. } {right 1.4}
  68. test textMark-1.7 {TkTextMarkCmd - "gravity" option} courier12 {
  69.     list [catch {.t mark gravity x gorp} msg] $msg
  70. } {1 {bad mark gravity "gorp": must be left or right}}
  71. test textMark-1.8 {TkTextMarkCmd - "gravity" option} courier12 {
  72.     list [catch {.t mark gravity} msg] $msg
  73. } {1 {wrong # args: should be ".t mark gravity markName ?gravity?"}}
  74. test textMark-2.1 {TkTextMarkCmd - "names" option} courier12 {
  75.     list [catch {.t mark names 2} msg] $msg
  76. } {1 {wrong # args: should be ".t mark names"}}
  77. .t mark unset x
  78. test textMark-2.2 {TkTextMarkCmd - "names" option} courier12 {
  79.     lsort [.t mark n]
  80. } {current insert}
  81. test textMark-2.3 {TkTextMarkCmd - "names" option} courier12 {
  82.     .t mark set a 1.1
  83.     .t mark set "b c" 2.3
  84.     lsort [.t mark names]
  85. } {a {b c} current insert}
  86. test textMark-3.1 {TkTextMarkCmd - "set" option} courier12 {
  87.     list [catch {.t mark set a} msg] $msg
  88. } {1 {wrong # args: should be ".t mark set markName index"}}
  89. test textMark-3.2 {TkTextMarkCmd - "set" option} courier12 {
  90.     list [catch {.t mark s a b c} msg] $msg
  91. } {1 {wrong # args: should be ".t mark set markName index"}}
  92. test textMark-3.3 {TkTextMarkCmd - "set" option} courier12 {
  93.     list [catch {.t mark set a @x} msg] $msg
  94. } {1 {bad text index "@x"}}
  95. test textMark-3.4 {TkTextMarkCmd - "set" option} courier12 {
  96.     .t mark set a 1.2
  97.     .t index a
  98. } 1.2
  99. test textMark-3.5 {TkTextMarkCmd - "set" option} courier12 {
  100.     .t mark set a end
  101.     .t index a
  102. } {8.0}
  103. test textMark-4.1 {TkTextMarkCmd - "unset" option} courier12 {
  104.     list [catch {.t mark unset} msg] $msg
  105. } {0 {}}
  106. test textMark-4.2 {TkTextMarkCmd - "unset" option} courier12 {
  107.     .t mark set a 1.2
  108.     .t mark set b 2.3
  109.     .t mark unset a b
  110.         list [catch {.t index a} msg] $msg [catch {.t index b} msg2] $msg2
  111. } {1 {bad text index "a"} 1 {bad text index "b"}}
  112. test textMark-4.3 {TkTextMarkCmd - "unset" option} courier12 {
  113.     .t mark set a 1.2
  114.     .t mark set b 2.3
  115.     .t mark set 49ers 3.1
  116.     eval .t mark unset [.t mark names]
  117.     lsort [.t mark names]
  118. } {current insert}
  119. test textMark-5.1 {TkTextMarkCmd - miscellaneous} courier12 {
  120.     list [catch {.t mark} msg] $msg
  121. } {1 {wrong # args: should be ".t mark option ?arg arg ...?"}}
  122. test textMark-5.2 {TkTextMarkCmd - miscellaneous} courier12 {
  123.     list [catch {.t mark foo} msg] $msg
  124. } {1 {bad mark option "foo": must be gravity, names, next, previous, set, or unset}}
  125. test textMark-6.1 {TkTextMarkSegToIndex} courier12 {
  126.     .t mark set a 1.2
  127.     .t mark set b 1.2
  128.     .t mark set c 1.2
  129.     .t mark set d 1.4
  130.     list [.t index a] [.t index b] [.t index c ] [.t index d]
  131. } {1.2 1.2 1.2 1.4}
  132. catch {eval {.t mark unset} [.t mark names]}
  133. test textMark-7.1 {MarkFindNext - invalid mark name} courier12 {
  134.     catch {.t mark next bogus} x
  135.     set x
  136. } {bad text index "bogus"}
  137. test textMark-7.2 {MarkFindNext - marks at same location} courier12 {
  138.     .t mark set insert 2.0
  139.     .t mark set current 2.0
  140.     .t mark next current
  141. } {insert}
  142. test textMark-7.3 {MarkFindNext - numerical starting mark} courier12 {
  143.     .t mark set current 1.0
  144.     .t mark set insert 1.0
  145.     .t mark next 1.0
  146. } {insert}
  147. test textMark-7.4 {MarkFindNext - mark on the same line} courier12 {
  148.     .t mark set current 1.0
  149.     .t mark set insert 1.1
  150.     .t mark next current
  151. } {insert}
  152. test textMark-7.5 {MarkFindNext - mark on the next line} courier12 {
  153.     .t mark set current 1.end
  154.     .t mark set insert 2.0
  155.     .t mark next current
  156. } {insert}
  157. test textMark-7.6 {MarkFindNext - mark far away} courier12 {
  158.     .t mark set current 1.2
  159.     .t mark set insert 7.0
  160.     .t mark next current
  161. } {insert}
  162. test textMark-7.7 {MarkFindNext - mark on top of end} courier12 {
  163.     .t mark set current end
  164.     .t mark next end
  165. } {current}
  166. test textMark-7.8 {MarkFindNext - no next mark} courier12 {
  167.     .t mark set current 1.0
  168.     .t mark set insert 3.0
  169.     .t mark next insert
  170. } {}
  171. test textMark-8.1 {MarkFindPrev - invalid mark name} courier12 {
  172.     catch {.t mark prev bogus} x
  173.     set x
  174. } {bad text index "bogus"}
  175. test textMark-8.2 {MarkFindPrev - marks at same location} courier12 {
  176.     .t mark set insert 2.0
  177.     .t mark set current 2.0
  178.     .t mark prev insert
  179. } {current}
  180. test textMark-8.3 {MarkFindPrev - numerical starting mark} courier12 {
  181.     .t mark set current 1.0
  182.     .t mark set insert 1.0
  183.     .t mark prev 1.1
  184. } {current}
  185. test textMark-8.4 {MarkFindPrev - mark on the same line} courier12 {
  186.     .t mark set current 1.0
  187.     .t mark set insert 1.1
  188.     .t mark prev insert
  189. } {current}
  190. test textMark-8.5 {MarkFindPrev - mark on the previous line} courier12 {
  191.     .t mark set current 1.end
  192.     .t mark set insert 2.0
  193.     .t mark prev insert
  194. } {current}
  195. test textMark-8.6 {MarkFindPrev - mark far away} courier12 {
  196.     .t mark set current 1.2
  197.     .t mark set insert 7.0
  198.     .t mark prev insert
  199. } {current}
  200. test textMark-8.7 {MarkFindPrev - mark on top of end} courier12 {
  201.     .t mark set insert 3.0
  202.     .t mark set current end
  203.     .t mark prev end
  204. } {insert}
  205. test textMark-8.8 {MarkFindPrev - no previous mark} courier12 {
  206.     .t mark set current 1.0
  207.     .t mark set insert 3.0
  208.     .t mark prev current
  209. } {}
  210. catch {destroy .t}
  211. # cleanup
  212. ::tcltest::cleanupTests
  213. return