In TestCipher, it isn't clear how exactly encryption and decryption are happening. I think it would be more effective if the process were better displayed. For example, using key=zebra and plaintext=this is a test:
<pre>THIS IS A TEST
ZEBR AZ E BRAZ
SLJJ IR E UVSS
</pre>