Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2508)

Unified Diff: chrome/browser/chromeos/input_method/ibus_controller_impl_unittest.cc

Issue 23460003: Merge IBusContorllerBase into IBusControllerImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a line break per code review. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/input_method/ibus_controller_impl.cc ('k') | chrome/chrome_browser_chromeos.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « chrome/browser/chromeos/input_method/ibus_controller_impl.cc ('k') | chrome/chrome_browser_chromeos.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698