Refactor specs, use shared contexts

@rimian would appreciate any feedback you have on the test structure. 
be_true is deprecated in rspec 3. I would try running these specs on rspec 2.99.