| 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..da9afcf3009b268d62de4a6cd517a8d5b1bdbfd6 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,29 @@ 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() {
|
| + }
|
| +
|
| + 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 +72,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
|
|
|