sl@0: # This file tests the tclfCmd.c file. sl@0: # sl@0: # This file contains a collection of tests for one or more of the Tcl sl@0: # built-in commands. Sourcing this file into Tcl runs the tests and sl@0: # generates output for errors. No output means no errors were found. sl@0: # sl@0: # Copyright (c) 1997 Sun Microsystems, Inc. sl@0: # Copyright (c) 1998-1999 by Scriptics Corporation. sl@0: # sl@0: # See the file "license.terms" for information on usage and redistribution sl@0: # of this file, and for a DISCLAIMER OF ALL WARRANTIES. sl@0: # sl@0: # RCS: @(#) $Id: macFCmd.test,v 1.10 2002/07/05 10:38:43 dkf Exp $ sl@0: # sl@0: sl@0: if {[lsearch [namespace children] ::tcltest] == -1} { sl@0: package require tcltest sl@0: namespace import -force ::tcltest::* sl@0: } sl@0: sl@0: # These tests really need to be run from a writable directory, which sl@0: # it is assumed [temporaryDirectory] is. sl@0: set oldcwd [pwd] sl@0: cd [temporaryDirectory] sl@0: sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: if {[catch {file attributes foo.dir -readonly 1}]} { sl@0: set ::tcltest::testConstraints(fileSharing) 0 sl@0: set ::tcltest::testConstraints(notFileSharing) 1 sl@0: } else { sl@0: set ::tcltest::testConstraints(fileSharing) 1 sl@0: set ::tcltest::testConstraints(notFileSharing) 0 sl@0: } sl@0: file delete -force foo.dir sl@0: sl@0: test macFCmd-1.1 {GetFileFinderAttributes - no file} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: list [catch {file attributes foo.file -creator} msg] $msg sl@0: } {1 {could not read "foo.file": no such file or directory}} sl@0: test macFCmd-1.2 {GetFileFinderAttributes - creator} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: catch {close [open foo.file w]} sl@0: list [catch {file attributes foo.file -creator} msg] \ sl@0: [regexp {MPW |CWIE} $msg] [file delete -force foo.file] sl@0: } {0 1 {}} sl@0: test macFCmd-1.3 {GetFileFinderAttributes - type} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: catch {close [open foo.file w]} sl@0: list [catch {file attributes foo.file -type} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {0 TEXT {}} sl@0: test macFCmd-1.4 {GetFileFinderAttributes - not hidden} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: catch {close [open foo.file w]} sl@0: list [catch {file attributes foo.file -hidden} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {0 0 {}} sl@0: test macFCmd-1.5 {GetFileFinderAttributes - hidden} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: catch {close [open foo.file w]} sl@0: file attributes foo.file -hidden 1 sl@0: list [catch {file attributes foo.file -hidden} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {0 1 {}} sl@0: test macFCmd-1.6 {GetFileFinderAttributes - folder creator} {macOnly} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -creator} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {0 Fldr {}} sl@0: test macFCmd-1.7 {GetFileFinderAttributes - folder type} {macOnly} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -type} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {0 Fldr {}} sl@0: test macFCmd-1.8 {GetFileFinderAttributes - folder hidden} {macOnly} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -hidden} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {0 0 {}} sl@0: sl@0: test macFCmd-2.1 {GetFileReadOnly - bad file} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: list [catch {file attributes foo.file -readonly} msg] $msg sl@0: } {1 {could not read "foo.file": no such file or directory}} sl@0: test macFCmd-2.2 {GetFileReadOnly - file not read only} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -readonly} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {0 0 {}} sl@0: test macFCmd-2.3 {GetFileReadOnly - file read only} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: file attributes foo.file -readonly 1 sl@0: list [catch {file attributes foo.file -readonly} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {0 1 {}} sl@0: test macFCmd-2.4 {GetFileReadOnly - directory not read only} {macOnly} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -readonly} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {0 0 {}} sl@0: test macFCmd-2.5 {GetFileReadOnly - directory read only} {macOnly fileSharing} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: file attributes foo.dir -readonly 1 sl@0: list [catch {file attributes foo.dir -readonly} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {0 1 {}} sl@0: sl@0: test macFCmd-3.1 {SetFileFinderAttributes - bad file} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: list [catch {file attributes foo.file -creator FOOO} msg] $msg sl@0: } {1 {could not read "foo.file": no such file or directory}} sl@0: test macFCmd-3.2 {SetFileFinderAttributes - creator} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -creator FOOO} msg] $msg \ sl@0: [file attributes foo.file -creator] [file delete -force foo.file] sl@0: } {0 {} FOOO {}} sl@0: test macFCmd-3.3 {SetFileFinderAttributes - bad creator} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -creator 0} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {1 {expected Macintosh OS type but got "0"} {}} sl@0: test macFCmd-3.4 {SetFileFinderAttributes - hidden} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -hidden 1} msg] $msg \ sl@0: [file attributes foo.file -hidden] [file delete -force foo.file] sl@0: } {0 {} 1 {}} sl@0: test macFCmd-3.5 {SetFileFinderAttributes - type} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -type FOOO} msg] $msg \ sl@0: [file attributes foo.file -type] [file delete -force foo.file] sl@0: } {0 {} FOOO {}} sl@0: test macFCmd-3.6 {SetFileFinderAttributes - bad type} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -type 0} msg] $msg \ sl@0: [file delete -force foo.file] sl@0: } {1 {expected Macintosh OS type but got "0"} {}} sl@0: test macFCmd-3.7 {SetFileFinderAttributes - directory} {macOnly} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -creator FOOO} msg] \ sl@0: $msg [file delete -force foo.dir] sl@0: } {1 {cannot set -creator: "foo.dir" is a directory} {}} sl@0: sl@0: test macFCmd-4.1 {SetFileReadOnly - bad file} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: list [catch {file attributes foo.file -readonly 1} msg] $msg sl@0: } {1 {could not read "foo.file": no such file or directory}} sl@0: test macFCmd-4.2 {SetFileReadOnly - file not readonly} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -readonly 0} msg] \ sl@0: $msg [file attributes foo.file -readonly] [file delete -force foo.file] sl@0: } {0 {} 0 {}} sl@0: test macFCmd-4.3 {SetFileReadOnly - file readonly} {macOnly} { sl@0: catch {file delete -force foo.file} sl@0: close [open foo.file w] sl@0: list [catch {file attributes foo.file -readonly 1} msg] \ sl@0: $msg [file attributes foo.file -readonly] [file delete -force foo.file] sl@0: } {0 {} 1 {}} sl@0: test macFCmd-4.4 {SetFileReadOnly - directory not readonly} \ sl@0: {macOnly fileSharing} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -readonly 0} msg] \ sl@0: $msg [file attributes foo.dir -readonly] [file delete -force foo.dir] sl@0: } {0 {} 0 {}} sl@0: test macFCmd-4.5 {SetFileReadOnly - directory not readonly} \ sl@0: {macOnly notFileSharing} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -readonly 0} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {1 {cannot set a directory to read-only when File Sharing is turned off} {}} sl@0: test macFCmd-4.6 {SetFileReadOnly - directory readonly} {macOnly fileSharing} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -readonly 1} msg] $msg \ sl@0: [file attributes foo.dir -readonly] [file delete -force foo.dir] sl@0: } {0 {} 1 {}} sl@0: test macFCmd-4.7 {SetFileReadOnly - directory readonly} {macOnly notFileSharing} { sl@0: catch {file delete -force foo.dir} sl@0: file mkdir foo.dir sl@0: list [catch {file attributes foo.dir -readonly 1} msg] $msg \ sl@0: [file delete -force foo.dir] sl@0: } {1 {cannot set a directory to read-only when File Sharing is turned off} {}} sl@0: sl@0: # cleanup sl@0: cd $oldcwd sl@0: ::tcltest::cleanupTests sl@0: return