This is looking like good test coverage, but could you split it up into a set of smaller tests with names describing the specific situation you're testing each time?  That makes it easier for folks to read it at a glance.