Forum action cleanup

checkButtonEvents doesn't cover the functionality as deeply as I wanted.  Voting causes data to be updated in two places, and there's conditional logic based on the present state of that data, so I wanted tests to include that.