
This should accept VCS-type and --crypto flags.
Then a shell script should run various combinations of VCS and crypters.

# Startup
* Create a repo (git, none)

# Test basic operations:
* As Alice:
  * initialize blackbox, add her keys to it, see that the usual files
    exist. See her name in bb-admins.txt
  * encrypt a file, see that the plaintext is deleted, see the file in bb-files.txt
  * decrypt the file, see the original plaintext is recovered.
  * Encrypt a file --noshred.
  * Decrypt the file, it should fail as the plaintext exists.
  * Remove the plaintext.
  * Decrypt the file, it should fail as the plaintext exists.

# Test hand-off from Alice to Bob.
* As Bob
    * add himself to the admins.
* As Alice
    * Update-all-files
    * Create a new file. Encrypt it.
* As Bob
    * Decrypt both files
    * Verify contents of the new file, and the file from previous.
    * Create a new file. Encrypt it.
* As Alice:
    * Decrypt all files.
    * Verify contents of the 3 plaintext files.

# Test a git-less directory
* Copy the old repo somewhere. Remove the .git directory.
* As Alice:
    * Decrypt all
    * Verify plaintext contents

# Test post-deploy with/without GID
* Back at the original repo:
* Shred all
* Run post-deploy. Verify.
* Shred all
* Run post-deploy with a custom GID. Verify.

# Test removing an admin
* As Bob:
    * removes Alice. (Verify)
    * Re-encrypt
    * Decrypt all & verify.
* As alice
    * Decrypting should fail.

# Test funny names and paths
    * my/path/to/relsecrets.txt
    * cwd=other/place ../../my/path/to/relsecrets.txt
    * !important!.txt
    * #andpounds.txt
    * stars*bars?.txt
    * space space.txt
* Do add/encrypt/decrypt
* Do blackbox_update_all_files
* Do remove them all

# When people start asking for commands to work with relative paths
# Test from outside the repo
* mkdir ../other/place
* cd    ../other/place
* decrypt ../../secret1.txt
* encrypt ../../secret1.txt

# Test specific commands:
# blackbox admins list
# blackbox file list
# blackbox status --name-only (create 1 of each "type")
# blackbox status --type=FOO

# These should all fail:
# blackbox file list --all
# blackbox file list blah
# blackbox shred list --all
# blackbox shred list blah



rm -rf /tmp/bbhome-* && BLACKBOX_DEBUG=true go test -verbose -long -nocleanup
rm -rf /tmp/bbhome-* && go test -long -nocleanup

( gbb && cd cmd/blackbox && go install ) && blackbox

cd /tmp && rm -rf /tmp/bbhome-* ; mkdir /tmp/bbhome-1 ; cd /tmp/bbhome-1 && git init ; gitmeWork ; ( gbb && cd cmd/blackbox && go install ) && blackbox init yes && gitmeWork ; git commit -mm -a ; blackbox admin add tlimoncelli ; git commit -mnewadmin -a ; echo secrt > secret.txt ; blackbox file add secret.txt
