add test cases for ButtonController