Add Shell tests

Replaces #97 as this pull request incorporates those changes.

@xl76: Please review.