Chromium Code Reviews| Index: chrome/browser/chromeos/input_method/ibus_controller_impl_unittest.cc |
| diff --git a/chrome/browser/chromeos/input_method/ibus_controller_impl_unittest.cc b/chrome/browser/chromeos/input_method/ibus_controller_impl_unittest.cc |
| index 2a251c88b7a6d3842ebcdeecec8bcffd5614877a..c5102894aae344a2801d635ecf5437f4ce25f900 100644 |
| --- a/chrome/browser/chromeos/input_method/ibus_controller_impl_unittest.cc |
| +++ b/chrome/browser/chromeos/input_method/ibus_controller_impl_unittest.cc |
| @@ -18,6 +18,28 @@ bool FindAndUpdateProperty(const InputMethodProperty& new_prop, |
| prop_list); |
| } |
| +// A mock class for testing AddObserver() and RemoveObserver() methods |
| +// in IBusControllerImpl. |
| +class TestIBusController : public IBusControllerImpl { |
| + public: |
| + TestIBusController() { |
| + } |
| + virtual ~TestIBusController() { |
|
Seigo Nonaka
2013/08/27 11:31:12
nit: please add one line break above.
Hiro Komatsu
2013/08/28 01:41:28
Done.
|
| + } |
| + |
| + bool HasObservers() const { |
| + return observers_.might_have_observers(); |
| + } |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(TestIBusController); |
| +}; |
| + |
| +class TestObserver : public IBusController::Observer { |
| + public: |
| + // IBusController::Observer overrides: |
| + virtual void PropertyChanged() OVERRIDE {} |
| +}; |
| } // namespace |
| TEST(IBusControllerImplTest, TestFindAndUpdateProperty) { |
| @@ -49,5 +71,38 @@ TEST(IBusControllerImplTest, TestFindAndUpdateProperty) { |
| properties[1]); |
| } |
| +TEST(IBusControllerImplTest, TestAddRemoveObserver) { |
| + IBusBridge::Initialize(); |
| + { |
| + TestIBusController controller; |
| + TestObserver observer1; |
| + TestObserver observer2; |
| + TestObserver observer3; |
| + EXPECT_FALSE(controller.HasObservers()); |
| + controller.AddObserver(&observer1); |
| + EXPECT_TRUE(controller.HasObservers()); |
| + controller.AddObserver(&observer2); |
| + EXPECT_TRUE(controller.HasObservers()); |
| + controller.RemoveObserver(&observer3); // nop |
| + EXPECT_TRUE(controller.HasObservers()); |
| + controller.RemoveObserver(&observer1); |
| + EXPECT_TRUE(controller.HasObservers()); |
| + controller.RemoveObserver(&observer1); // nop |
| + EXPECT_TRUE(controller.HasObservers()); |
| + controller.RemoveObserver(&observer2); |
| + EXPECT_FALSE(controller.HasObservers()); |
| + } |
| + IBusBridge::Shutdown(); |
| +} |
| + |
| +TEST(IBusControllerImplTest, TestGetCurrentProperties) { |
| + IBusBridge::Initialize(); |
| + { |
| + IBusControllerImpl controller; |
| + EXPECT_EQ(0U, controller.GetCurrentProperties().size()); |
| + } |
| + IBusBridge::Shutdown(); |
| +} |
| + |
| } // namespace input_method |
| } // namespace chromeos |