What are the cases for a test suite that verifies an app compiled to run on Mac/Unix/Windows10 does the job of copying files (not folders) from one place to another (not necessarily over a network). Not over WEB/FTP.
Note1: Copy between machines that are different O/S are not catered for, mainly interested in "local" type copy test cases.
Note2: The app is a GUI app, so has no command line, we are not testing the GUI, and not testing the API, but are testing the functionality and interaction.
Here is what I have so far:
- zero length file
- destination file has/must archive bit cleared after the copy (Windows)
- destination file is read-write
- source file has write locks open should prevent the copy process starting.
- program shall lock the file against writes
- destination file would exceed storage quota checks regularly
- destination file disappears while saving to it?
- source file contains file-streams (Windows Alternate Data Streams)
- source file is an executable (OS dependant outcomes??)
- source filename is case sensitive/filesystem case sensitive
- source file gets a (1) suffix if destination exists
- source filename with a “(1)” suffix gets renamed to “(1)(1)” if destination with (1) exists etc…
- destination file would exceed path length check
- source filename with no “filetype” (OS dependant treatment)
- source filename with multiple filetype “extensions” or suffixes handled
- source file contains virus signature (that may trigger a personal filesystem firewall??)
- source file conflicts when a destination folder of same name exists must append a (1) suffix. (OS dependant??)
- UTF8 (no BOM mark) and Unicode text files
- simultaneously transfer multiple files using the GUI
- cancel an individual file transfer
- stop all file transfers
- resume unsupported : Resuming a transfer is out of scope here, but any ideas are welcome.
I'm quite sure I have missed a good few interesting or valuable ones mainly because I am more familiar with Windows than the 'Unix' filesystems. Comments or answers are both equally welcome.