1# This file is a Tcl script to test out Tk's Windows specific 2# clipboard code. It is organized in the standard fashion for Tcl 3# tests. 4# 5# This file contains a collection of tests for one or more of the Tcl 6# built-in commands. Sourcing this file into Tcl runs the tests and 7# generates output for errors. No output means no errors were found. 8# 9# Copyright © 1997 Sun Microsystems, Inc. 10# Copyright © 1998-2000 Scriptics Corporation. 11# All rights reserved. 12 13package require tcltest 2.2 14eval tcltest::configure $argv 15tcltest::loadTestedCommands 16namespace import -force tcltest::test 17 18################################################################# 19# Note that some of these tests may fail if another application # 20# is grabbing the clipboard (e.g. an X server, or a VNC viewer) # 21################################################################# 22 23test winClipboard-1.1 {TkSelGetSelection} -constraints win -setup { 24 clipboard clear 25} -body { 26 selection get -selection CLIPBOARD 27} -cleanup { 28 clipboard clear 29} -returnCodes error -result {CLIPBOARD selection doesn't exist or form "STRING" not defined} 30 31test winClipboard-1.2 {TkSelGetSelection} -constraints { 32 win testclipboard 33} -setup { 34 clipboard clear 35} -body { 36 clipboard append {} 37 list [selection get -selection CLIPBOARD] [testclipboard] 38} -cleanup { 39 clipboard clear 40} -result {{} {}} 41 42test winClipboard-1.3 {TkSelGetSelection & TkWinClipboardRender} -constraints { 43 win testclipboard 44} -setup { 45 clipboard clear 46} -body { 47 clipboard append abcd 48 update 49 list [selection get -selection CLIPBOARD] [testclipboard] 50} -cleanup { 51 clipboard clear 52} -result {abcd abcd} 53 54test winClipboard-1.4 {TkSelGetSelection & TkWinClipboardRender} -constraints { 55 win testclipboard 56} -setup { 57 clipboard clear 58} -body { 59 set map [list "\r" "\\r" "\n" "\\n"] 60 clipboard append "line 1\nline 2" 61 list [string map $map [selection get -selection CLIPBOARD]]\ 62 [string map $map [testclipboard]] 63} -cleanup { 64 clipboard clear 65} -result [list "line 1\\nline 2" "line 1\\nline 2"] 66 67test winClipboard-1.5 {TkSelGetSelection & TkWinClipboardRender} -constraints { 68 win testclipboard 69} -setup { 70 clipboard clear 71} -body { 72 set map [list "\r" "\\r" "\n" "\\n"] 73 clipboard append "line 1Ç\nline 2" 74 list [string map $map [selection get -selection CLIPBOARD]]\ 75 [string map $map [testclipboard]] 76} -cleanup { 77 clipboard clear 78} -result [list "line 1Ç\\nline 2" "line 1Ç\\nline 2"] 79 80test winClipboard-1.6 {TkSelGetSelection & TkWinClipboardRender} -constraints { 81 win testclipboard 82} -setup { 83 clipboard clear 84} -body { 85 clipboard append "привет миф" 86 list [selection get -selection CLIPBOARD] [testclipboard] 87} -cleanup { 88 clipboard clear 89} -result [list "привет миф" "привет миф"] 90 91test winClipboard-2.1 {TkSelUpdateClipboard reentrancy problem} -constraints { 92 win testclipboard 93} -setup { 94 clipboard clear 95} -body { 96 clipboard append -type OUR_ACTION "action data" 97 clipboard append "string data" 98 update 99 list [selection get -selection CLIPBOARD -type OUR_ACTION] [testclipboard] 100} -cleanup { 101 clipboard clear 102} -result {{action data} {string data}} 103 104test winClipboard-2.2 {TkSelUpdateClipboard reentrancy problem} -constraints { 105 win testclipboard 106} -setup { 107 clipboard clear 108} -body { 109 clipboard append -type OUR_ACTION "new data" 110 clipboard append "more data in string" 111 update 112 list [testclipboard] [selection get -selection CLIPBOARD -type OUR_ACTION] 113} -cleanup { 114 clipboard clear 115} -result {{more data in string} {new data}} 116 117# cleanup 118cleanupTests 119return 120 121# Local variables: 122# mode: tcl 123# End: 124