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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out procedures to write postscript
  2. # for canvases to files and channels. It exercises the procedure
  3. # TkCanvPostscriptCmd in generic/tkCanvPs.c
  4. #
  5. # Copyright (c) 1995 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: canvPs.test,v 1.5.2.2 2006/03/14 04:59:44 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. namespace import -force tcltest::makeFile
  17. namespace import -force tcltest::removeFile
  18. canvas .c -width 400 -height 300 -bd 2 -relief sunken
  19. .c create rectangle 20 20 80 80 -fill red
  20. pack .c
  21. update
  22. test canvPs-1.1 {test writing to a file} {unixOrPc} {
  23.     removeFile foo.ps
  24.     .c postscript -file foo.ps
  25.     file exists foo.ps
  26. } 1
  27. test canvPs-1.2 {test writing to a file, idempotency} {unixOrPc} {
  28.     removeFile foo.ps
  29.     removeFile bar.ps
  30.     .c postscript -file foo.ps
  31.     .c postscript -file bar.ps
  32.     set status ok
  33.     if {[file size bar.ps] != [file size foo.ps]} {
  34. set status broken
  35.     }
  36.     set status
  37. } ok
  38. test canvPs-2.1 {test writing to a channel} {unixOrPc} {
  39.     removeFile foo.ps
  40.     set chan [open foo.ps w]
  41.     fconfigure $chan -translation lf
  42.     .c postscript -channel $chan
  43.     close $chan
  44.     file exists foo.ps
  45. } 1
  46. test canvPs-2.2 {test writing to channel, idempotency} {unixOrPc} {
  47.     removeFile foo.ps
  48.     removeFile bar.ps
  49.     set c1 [open foo.ps w]
  50.     set c2 [open bar.ps w]
  51.     fconfigure $c1 -translation lf
  52.     fconfigure $c2 -translation lf
  53.     .c postscript -channel $c1
  54.     .c postscript -channel $c2
  55.     close $c1
  56.     close $c2
  57.     set status ok
  58.     if {[file size bar.ps] != [file size foo.ps]} {
  59. set status broken
  60.     }
  61.     set status
  62. } ok
  63. test canvPs-2.3 {test writing to channel and file, same output} {unixOnly} {
  64.     removeFile foo.ps
  65.     removeFile bar.ps
  66.     set c1 [open foo.ps w]
  67.     fconfigure $c1 -translation lf
  68.     .c postscript -channel $c1
  69.     close $c1
  70.     .c postscript -file bar.ps
  71.     set status ok
  72.     if {[file size foo.ps] != [file size bar.ps]} {
  73. set status broken
  74.     }
  75.     set status
  76. } ok
  77. test canvPs-2.4 {test writing to channel and file, same output} {pcOnly} {
  78.     removeFile foo.ps
  79.     removeFile bar.ps
  80.     set c1 [open foo.ps w]
  81.     fconfigure $c1 -translation crlf
  82.     .c postscript -channel $c1
  83.     close $c1
  84.     .c postscript -file bar.ps
  85.     set status ok
  86.     if {[file size foo.ps] != [file size bar.ps]} {
  87. set status broken
  88.     }
  89.     set status
  90. } ok
  91. test canvPs-3.1 {test ps generation with an embedded window} {notAqua} {
  92.     removeFile bar.ps
  93.     destroy .c
  94.     pack [canvas .c -width 200 -height 200 -background white]
  95.     .c create rect 20 20 150 150 -tags rect0 -dash . -width 2
  96.     .c create arc 0 50 200 200 -tags arc0 
  97.     -dash {4 4} -stipple question -outline red -fill green
  98.     image create photo logo 
  99.     -file [file join $tk_library images pwrdLogo150.gif]
  100.     .c create image 200 50 -image logo -anchor nw
  101.     entry .c.e -background pink -foreground blue -width 14
  102.     .c.e insert 0 "we gonna be postscripted"
  103.     .c create window 50 180 -anchor nw -window .c.e
  104.     update
  105.     .c postscript -file bar.ps
  106.     file exists bar.ps
  107. } 1
  108. test canvPs-3.2 {test ps generation with an embedded window not mapped} {} {
  109.     removeFile bar.ps
  110.     destroy .c
  111.     pack [canvas .c -width 200 -height 200 -background white]
  112.     entry .c.e -background pink -foreground blue -width 14
  113.     .c.e insert 0 "we gonna be postscripted"
  114.     .c create window 50 180 -anchor nw -window .c.e
  115.     .c postscript -file bar.ps
  116.     file exists bar.ps
  117. } 1
  118. test canvPs-4.1 {test ps generation with single-point uncolored poly, bug 734498} {} {
  119.     destroy .c
  120.     pack [canvas .c]
  121.     .c create poly 10 20 10 20
  122.     catch {.c postscript}
  123. } 0
  124. # cleanup
  125. removeFile foo.ps
  126. removeFile bar.ps
  127. deleteWindows
  128. ::tcltest::cleanupTests
  129. return