diff options
Diffstat (limited to 'ash/ime/input_method_menu_manager_unittest.cc')
-rw-r--r-- | ash/ime/input_method_menu_manager_unittest.cc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/ash/ime/input_method_menu_manager_unittest.cc b/ash/ime/input_method_menu_manager_unittest.cc new file mode 100644 index 0000000..ba92001 --- /dev/null +++ b/ash/ime/input_method_menu_manager_unittest.cc @@ -0,0 +1,76 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/ime/input_method_menu_manager.h" + +#include "base/logging.h" +#include "base/memory/scoped_ptr.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash { +namespace ime { + +TEST(InputMethodMenuManagerTest, TestGetSingleton) { + EXPECT_TRUE(InputMethodMenuManager::GetInstance()); +} + +class MockObserver : public InputMethodMenuManager::Observer { + public: + MockObserver() : input_method_menu_item_changed_count_(0) {} + virtual ~MockObserver() {} + + // Called when the list of menu items is changed. + virtual void InputMethodMenuItemChanged( + InputMethodMenuManager* manager) OVERRIDE { + input_method_menu_item_changed_count_++; + } + int input_method_menu_item_changed_count_; +}; + +class InputMethodMenuManagerStatefulTest : public testing::Test{ + public: + InputMethodMenuManagerStatefulTest() + : observer_(new MockObserver()) {} + virtual ~InputMethodMenuManagerStatefulTest() {} + virtual void SetUp() OVERRIDE { + menu_manager_ = InputMethodMenuManager::GetInstance(); + menu_manager_->AddObserver(observer_.get()); + } + + virtual void TearDown() OVERRIDE { + menu_manager_->RemoveObserver(observer_.get()); + } + + InputMethodMenuManager* menu_manager_; + scoped_ptr<MockObserver> observer_; +}; + +TEST_F(InputMethodMenuManagerStatefulTest, AddAndObserve) { + EXPECT_EQ(observer_->input_method_menu_item_changed_count_, 0); + menu_manager_->SetCurrentInputMethodMenuItemList(InputMethodMenuItemList()); + EXPECT_EQ(observer_->input_method_menu_item_changed_count_, 1); +} + +TEST_F(InputMethodMenuManagerStatefulTest, AddAndCheckExists) { + InputMethodMenuItemList list; + list.push_back(InputMethodMenuItem("key1", "label1", false, false)); + list.push_back(InputMethodMenuItem("key2", "label2", false, false)); + menu_manager_->SetCurrentInputMethodMenuItemList(list); + EXPECT_EQ(menu_manager_->GetCurrentInputMethodMenuItemList().size(), 2U); + EXPECT_EQ( + menu_manager_->GetCurrentInputMethodMenuItemList().at(0).ToString(), + "key=key1, label=label1, " + "is_selection_item=0, is_selection_item_checked=0"); + EXPECT_EQ( + menu_manager_->GetCurrentInputMethodMenuItemList().at(1).ToString(), + "key=key2, label=label2, " + "is_selection_item=0, is_selection_item_checked=0"); + + EXPECT_TRUE(menu_manager_->HasInputMethodMenuItemForKey("key1")); + EXPECT_TRUE(menu_manager_->HasInputMethodMenuItemForKey("key2")); + EXPECT_FALSE(menu_manager_->HasInputMethodMenuItemForKey("key-not-exist")); +} + +} // namespace ime +} // namespace ash |