# # messages.test -- # nca-073-9 # # Copyright (c) 1996-2000 by Netcetera AG. # Copyright (c) 2001 by Apache Software Foundation. # All rights reserved. # # See the file "license.terms" for information on usage and # redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # @(#) $Id$ # # ----------------------------------------------------------------------------- # tcltest package # ----------------------------------------------------------------------------- if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import ::tcltest::* } web::request -reset web::tempfile -remove # ----------------------------------------------------------------------------- # errors # ----------------------------------------------------------------------------- test messages-1.1 {web::send wrong number of arguments} { catch {web::send} msg set msg } {wrong # args: should be "web::send channel cmdnr string ??#?flags?"} test messages-1.2 {web::send wrong number of arguments} { catch {web::send 1 2 3 4 5} msg set msg } {wrong # args: should be "web::send channel cmdnr string ??#?flags?"} test messages-1.3 {web::recv wrong number of arguments} { catch {web::recv} msg set msg } {wrong # args: should be "web::recv channel cmdvarname resvarname flagsvarname"} test messages-1.4 {web::recv wrong number of arguments} { catch {web::recv 1 2 3 4 5} msg set msg } {wrong # args: should be "web::recv channel cmdvarname resvarname flagsvarname"} test messages-1.5 {web::msgflag wrong number of arguments} { catch {web::msgflag 1 2 3 4 5} msg set msg } {wrong # args: should be "web::msgflag ?flags? ?testflags?"} test messages-1.6 {web::msgflag set unknown flag} { catch {set flag [web::msgflag gugus]} msg set msg } {unknown flag "gugus"} test messages-1.7 {web::msgflag test for unknown flag} { set flag [web::msgflag multiple] catch {set res [web::msgflag $flag gugus]} msg set msg } {unknown flag "gugus"} # ----------------------------------------------------------------------------- # normal operation # ----------------------------------------------------------------------------- test messages-2.1 {web::send and receive} { set curTim [clock clicks] set fileName [web::tempfile] set fileId [open $fileName "w"] set icmd 10011 set iflag 131072 set text "T E S T $curTim" web::send $fileId $icmd $text \#$iflag close $fileId set fileId [open $fileName "r"] web::recv $fileId ocmd res oflag set in "$icmd-$text-$iflag" set out "$ocmd-$res-$oflag" close $fileId set res [string compare $in $out] } {0} # problems with large messages on WIndows (don't know why) test messages-2.1b {web::send and receive large} {unixOnly} { set fileName [web::tempfile] set fileId [open $fileName "w"] set icmd 10011 set iflag 131072 set text [string repeat "Test" 100000] web::send $fileId $icmd $text \#$iflag close $fileId set fileId [open $fileName "r"] web::recv $fileId ocmd res oflag close $fileId set in "$icmd-$text-$iflag" set out "$ocmd-$res-$oflag" set res [string compare $in $out] } {0} test messages-2.1c {web::send and receive unicode} { set fileName [web::tempfile] set fileId [open $fileName "w"] set icmd 10011 set iflag 131072 set text "abc\u00c2defä1ö2ü3" web::send $fileId $icmd $text \#$iflag close $fileId set fileId [open $fileName "r"] set in "$icmd-$text-$iflag" web::recv $fileId ocmd res oflag set out "$ocmd-$res-$oflag" close $fileId set res [string compare $in $out] } {0} test messages-2.2 {web::msgflag no arg} { set res [web::msgflag] } {multiple} test messages-2.3 {web::msgflag set and test flag} { set flag [web::msgflag multiple] set res [web::msgflag $flag multiple] } {1} # cleanup ::tcltest::cleanupTests