Split form into partials, added controller test

There's some repetition here. Refactor the partial :)