#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
#include "chrome/browser/chromeos/input_method/input_method_engine_interface.h"
#include "chrome/browser/chromeos/input_method/mock_candidate_window_controller.h"
#include "chrome/browser/chromeos/input_method/mock_input_method_engine.h"
+#include "chrome/test/base/browser_with_test_window_test.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "chrome/test/base/testing_profile.h"
+#include "chrome/test/base/testing_profile_manager.h"
#include "chromeos/ime/extension_ime_util.h"
+#include "chromeos/ime/fake_ime_keyboard.h"
#include "chromeos/ime/fake_input_method_delegate.h"
-#include "chromeos/ime/fake_xkeyboard.h"
#include "chromeos/ime/mock_component_extension_ime_manager_delegate.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/ime/chromeos/mock_ime_engine_handler.h"
+#include "ui/base/ime/input_method_initializer.h"
#include "ui/events/keycodes/keyboard_codes.h"
namespace chromeos {
namespace input_method {
namespace {
-const char kNaclMozcUsId[] =
- "_comp_ime_fpfbhcjppmaeaijcidgiibchfbnhbeljnacl_mozc_us";
-const char kNaclMozcJpId[] =
- "_comp_ime_fpfbhcjppmaeaijcidgiibchfbnhbeljnacl_mozc_jp";
-const char kExt2Engine1Id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopext2_engine1_engine_id";
-const char kExt2Engine2Id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopext2_engine2_engine_id";
-const char kPinyinImeId[] =
- "_comp_ime_nmblnjkfdkabgdofidlkienfnnbjhnabzh-t-i0-pinyin";
-const char kXkbExtId[] =
-#if defined(OFFICIAL_BUILD)
- "jkghodnilhceideoidjikpgommlajknk";
-#else
- "fgoepimhcoialccpbmpnnblemnepkkao";
-#endif
+const char kNaclMozcUsId[] = "nacl_mozc_us";
+const char kNaclMozcJpId[] = "nacl_mozc_jp";
+const char kExt2Engine1Id[] = "ext2_engine1-t-i0-engine_id";
+const char kExt2Engine2Id[] = "ext2_engine2-t-i0-engine_id";
+const char kPinyinImeId[] = "zh-t-i0-pinyin";
// Returns true if |descriptors| contain |target|.
bool Contain(const InputMethodDescriptors& descriptors,
return false;
}
-std::string XkbId(const std::string& id) {
- return extension_ime_util::GetInputMethodIDByKeyboardLayout(id);
+std::string ImeIdFromEngineId(const std::string& id) {
+ return extension_ime_util::GetInputMethodIDByEngineID(id);
}
-class InputMethodManagerImplTest : public testing::Test {
+class TestObserver : public InputMethodManager::Observer,
+ public ash::ime::InputMethodMenuManager::Observer {
+ public:
+ TestObserver()
+ : input_method_changed_count_(0),
+ input_method_menu_item_changed_count_(0),
+ last_show_message_(false) {
+ }
+ virtual ~TestObserver() {}
+
+ virtual void InputMethodChanged(InputMethodManager* manager,
+ bool show_message) OVERRIDE {
+ ++input_method_changed_count_;
+ last_show_message_ = show_message;
+ }
+ virtual void InputMethodMenuItemChanged(
+ ash::ime::InputMethodMenuManager* manager) OVERRIDE {
+ ++input_method_menu_item_changed_count_;
+ }
+
+ int input_method_changed_count_;
+ int input_method_menu_item_changed_count_;
+ bool last_show_message_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TestObserver);
+};
+
+class TestCandidateWindowObserver
+ : public InputMethodManager::CandidateWindowObserver {
+ public:
+ TestCandidateWindowObserver()
+ : candidate_window_opened_count_(0),
+ candidate_window_closed_count_(0) {
+ }
+
+ virtual ~TestCandidateWindowObserver() {}
+
+ virtual void CandidateWindowOpened(InputMethodManager* manager) OVERRIDE {
+ ++candidate_window_opened_count_;
+ }
+ virtual void CandidateWindowClosed(InputMethodManager* manager) OVERRIDE {
+ ++candidate_window_closed_count_;
+ }
+
+ int candidate_window_opened_count_;
+ int candidate_window_closed_count_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TestCandidateWindowObserver);
+};
+} // namespace
+
+class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
public:
InputMethodManagerImplTest()
: delegate_(NULL),
candidate_window_controller_(NULL),
- xkeyboard_(NULL) {
+ keyboard_(NULL) {
}
virtual ~InputMethodManagerImplTest() {}
virtual void SetUp() OVERRIDE {
+ profile_manager_.reset(new TestingProfileManager(GetBrowserProcess()));
+ ASSERT_TRUE(profile_manager_->SetUp());
+
+ ui::InitializeInputMethodForTesting();
+
delegate_ = new FakeInputMethodDelegate();
manager_.reset(new InputMethodManagerImpl(
scoped_ptr<InputMethodDelegate>(delegate_)));
candidate_window_controller_ = new MockCandidateWindowController;
manager_->SetCandidateWindowControllerForTesting(
candidate_window_controller_);
- xkeyboard_ = new FakeXKeyboard;
- manager_->SetXKeyboardForTesting(xkeyboard_);
- mock_engine_handler_.reset(new MockIMEEngineHandler());
+ keyboard_ = new FakeImeKeyboard;
+ manager_->SetImeKeyboardForTesting(keyboard_);
+ mock_engine_handler_.reset(
+ new MockInputMethodEngine(InputMethodDescriptor()));
IMEBridge::Initialize();
IMEBridge::Get()->SetCurrentEngineHandler(mock_engine_handler_.get());
menu_manager_ = ash::ime::InputMethodMenuManager::GetInstance();
+ InitImeList();
+
+ BrowserWithTestWindowTest::SetUp();
+ }
+
+ virtual void TearDown() OVERRIDE {
+ BrowserWithTestWindowTest::TearDown();
+
+ ui::ShutdownInputMethodForTesting();
+
+ delegate_ = NULL;
+ candidate_window_controller_ = NULL;
+ keyboard_ = NULL;
+ manager_.reset();
+
+ profile_manager_.reset();
+ }
+
+ protected:
+ Profile* GetProfile() { return manager_->GetProfile(); }
+ // Helper function to initialize component extension stuff for testing.
+ void InitComponentExtension() {
+ mock_delegate_ = new MockComponentExtIMEManagerDelegate();
+ mock_delegate_->set_ime_list(ime_list_);
+ scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate(mock_delegate_);
+
+ // Note, for production, these SetEngineHandler are called when
+ // IMEEngineHandlerInterface is initialized via
+ // InitializeComponentextension.
+ manager_->AddInputMethodExtension(GetProfile(),
+ ImeIdFromEngineId(kNaclMozcUsId),
+ mock_engine_handler_.get());
+ manager_->AddInputMethodExtension(GetProfile(),
+ ImeIdFromEngineId(kNaclMozcJpId),
+ mock_engine_handler_.get());
+ manager_->AddInputMethodExtension(GetProfile(),
+ ImeIdFromEngineId(kExt2Engine1Id),
+ mock_engine_handler_.get());
+ manager_->AddInputMethodExtension(GetProfile(),
+ ImeIdFromEngineId(kExt2Engine2Id),
+ mock_engine_handler_.get());
+ manager_->InitializeComponentExtensionForTesting(delegate.Pass());
+ }
+
+ void InitImeList() {
ime_list_.clear();
ComponentExtensionIME ext_xkb;
- ext_xkb.id = kXkbExtId;
+ ext_xkb.id = extension_ime_util::kXkbExtensionId;
ext_xkb.description = "ext_xkb_description";
ext_xkb.path = base::FilePath("ext_xkb_file_path");
ime_list_.push_back(ext_xkb);
ComponentExtensionIME ext1;
- ext1.id = "fpfbhcjppmaeaijcidgiibchfbnhbelj";
+ ext1.id = extension_ime_util::kMozcExtensionId;
ext1.description = "ext1_description";
ext1.path = base::FilePath("ext1_file_path");
ime_list_.push_back(ext1);
ComponentExtensionIME ext2;
- ext2.id = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+ ext2.id = extension_ime_util::kT13nExtensionId;
ext2.description = "ext2_description";
ext2.path = base::FilePath("ext2_file_path");
ComponentExtensionEngine ext2_engine1;
- ext2_engine1.engine_id = "ext2_engine1_engine_id";
+ ext2_engine1.engine_id = kExt2Engine1Id;
ext2_engine1.display_name = "ext2_engine_1_display_name";
ext2_engine1.language_codes.push_back("en");
ext2_engine1.layouts.push_back("us");
ext2.engines.push_back(ext2_engine1);
ComponentExtensionEngine ext2_engine2;
- ext2_engine2.engine_id = "ext2_engine2_engine_id";
+ ext2_engine2.engine_id = kExt2Engine2Id;
ext2_engine2.display_name = "ext2_engine_2_display_name";
ext2_engine2.language_codes.push_back("en");
ext2_engine2.layouts.push_back("us(dvorak)");
ime_list_.push_back(ext2);
}
- virtual void TearDown() OVERRIDE {
- delegate_ = NULL;
- candidate_window_controller_ = NULL;
- xkeyboard_ = NULL;
- manager_.reset();
-
- IMEBridge::Get()->SetCurrentEngineHandler(NULL);
- IMEBridge::Shutdown();
- }
-
- protected:
- // Helper function to initialize component extension stuff for testing.
- void InitComponentExtension() {
- mock_delegate_ = new MockComponentExtIMEManagerDelegate();
- mock_delegate_->set_ime_list(ime_list_);
- scoped_ptr<ComponentExtensionIMEManagerDelegate> delegate(mock_delegate_);
- // Note, for production, these SetEngineHandler are called when
- // IMEEngineHandlerInterface is initialized via
- // InitializeComponentextension.
- IMEBridge::Get()->SetEngineHandler(kNaclMozcUsId,
- mock_engine_handler_.get());
- IMEBridge::Get()->SetEngineHandler(kNaclMozcJpId,
- mock_engine_handler_.get());
- IMEBridge::Get()->SetEngineHandler(kExt2Engine1Id,
- mock_engine_handler_.get());
- IMEBridge::Get()->SetEngineHandler(kExt2Engine2Id,
- mock_engine_handler_.get());
- manager_->InitializeComponentExtensionForTesting(delegate.Pass());
+ TestingBrowserProcess* GetBrowserProcess() {
+ return TestingBrowserProcess::GetGlobal();
}
+ scoped_ptr<TestingProfileManager> profile_manager_;
scoped_ptr<InputMethodManagerImpl> manager_;
FakeInputMethodDelegate* delegate_;
MockCandidateWindowController* candidate_window_controller_;
- scoped_ptr<MockIMEEngineHandler> mock_engine_handler_;
- FakeXKeyboard* xkeyboard_;
- base::MessageLoop message_loop_;
+ scoped_ptr<MockInputMethodEngine> mock_engine_handler_;
+ FakeImeKeyboard* keyboard_;
MockComponentExtIMEManagerDelegate* mock_delegate_;
std::vector<ComponentExtensionIME> ime_list_;
ash::ime::InputMethodMenuManager* menu_manager_;
DISALLOW_COPY_AND_ASSIGN(InputMethodManagerImplTest);
};
-class TestObserver : public InputMethodManager::Observer,
- public ash::ime::InputMethodMenuManager::Observer{
- public:
- TestObserver()
- : input_method_changed_count_(0),
- input_method_menu_item_changed_count_(0),
- last_show_message_(false) {
- }
- virtual ~TestObserver() {}
-
- virtual void InputMethodChanged(InputMethodManager* manager,
- bool show_message) OVERRIDE {
- ++input_method_changed_count_;
- last_show_message_ = show_message;
- }
- virtual void InputMethodMenuItemChanged(
- ash::ime::InputMethodMenuManager* manager) OVERRIDE {
- ++input_method_menu_item_changed_count_;
- }
-
- int input_method_changed_count_;
- int input_method_menu_item_changed_count_;
- bool last_show_message_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestObserver);
-};
-
-class TestCandidateWindowObserver
- : public InputMethodManager::CandidateWindowObserver {
- public:
- TestCandidateWindowObserver()
- : candidate_window_opened_count_(0),
- candidate_window_closed_count_(0) {
- }
- virtual ~TestCandidateWindowObserver() {}
-
- virtual void CandidateWindowOpened(InputMethodManager* manager) OVERRIDE {
- ++candidate_window_opened_count_;
- }
- virtual void CandidateWindowClosed(InputMethodManager* manager) OVERRIDE {
- ++candidate_window_closed_count_;
- }
-
- int candidate_window_opened_count_;
- int candidate_window_closed_count_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestCandidateWindowObserver);
-};
-} // namespace
-
-TEST_F(InputMethodManagerImplTest, TestGetXKeyboard) {
- EXPECT_TRUE(manager_->GetXKeyboard());
- EXPECT_EQ(xkeyboard_, manager_->GetXKeyboard());
+TEST_F(InputMethodManagerImplTest, TestGetImeKeyboard) {
+ EXPECT_TRUE(manager_->GetImeKeyboard());
+ EXPECT_EQ(keyboard_, manager_->GetImeKeyboard());
}
TEST_F(InputMethodManagerImplTest, TestCandidateWindowObserver) {
EXPECT_EQ(5U, manager_->GetActiveInputMethods()->size());
EXPECT_EQ(1, observer.input_method_changed_count_);
EXPECT_EQ(1, observer.input_method_menu_item_changed_count_);
- manager_->ChangeInputMethod(XkbId("xkb:us:dvorak:eng"));
+ manager_->ChangeInputMethod(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_FALSE(observer.last_show_message_);
EXPECT_EQ(2, observer.input_method_changed_count_);
EXPECT_EQ(2, observer.input_method_menu_item_changed_count_);
- manager_->ChangeInputMethod(XkbId("xkb:us:dvorak:eng"));
+ manager_->ChangeInputMethod(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_FALSE(observer.last_show_message_);
// The observer is always notified even when the same input method ID is
TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) {
InitComponentExtension();
InputMethodDescriptors methods;
- if (extension_ime_util::UseWrappedExtensionKeyboardLayouts()) {
- methods = manager_->GetComponentExtensionIMEManager()
- ->GetXkbIMEAsInputMethodDescriptor();
- } else {
- methods = *(manager_->GetSupportedInputMethods());
- }
+ methods = manager_->GetComponentExtensionIMEManager()
+ ->GetXkbIMEAsInputMethodDescriptor();
// Try to find random 4-5 layuts and IMEs to make sure the returned list is
// correct.
const InputMethodDescriptor* id_to_find =
manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- kNaclMozcUsId);
+ ImeIdFromEngineId(kNaclMozcUsId));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:us::eng"));
+ ImeIdFromEngineId("xkb:us::eng"));
EXPECT_TRUE(Contain(methods, *id_to_find));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:us:dvorak:eng"));
+ ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(Contain(methods, *id_to_find));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:fr::fra"));
+ ImeIdFromEngineId("xkb:fr::fra"));
EXPECT_TRUE(Contain(methods, *id_to_find));
}
TEST_F(InputMethodManagerImplTest, TestEnableLayoutsAndCurrentInputMethod) {
// For http://crbug.com/329061
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:se::swe"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:se::swe"));
InitComponentExtension();
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
const std::string im_id = manager_->GetCurrentInputMethod().id();
- EXPECT_EQ(XkbId("xkb:se::swe"), im_id);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:se::swe"), im_id);
}
TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) {
manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds());
// "xkb:us::eng" only.
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
manager_->GetActiveInputMethodIds().front());
}
EXPECT_EQ(2U, methods->size());
const InputMethodDescriptor* id_to_find =
manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:us::eng"));
+ ImeIdFromEngineId("xkb:us::eng"));
EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:jp::jpn"));
+ ImeIdFromEngineId("xkb:jp::jpn"));
EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find));
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(XkbId("xkb:us:colemak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
// Since all the IDs added avobe are keyboard layouts, Start() should not be
// called.
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin());
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), // colemak
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), // colemak
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(colemak)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(XkbId("xkb:us:colemak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Switch to Dvorak.
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin() + 1);
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(3, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), // US Qwerty
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), // US Qwerty
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Switch to Mozc
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Disable Mozc.
ids.erase(ids.begin() + 1);
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
}
TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme2) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin());
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[0]), // Mozc
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), // Mozc
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kExt2Engine1Id);
+ ids.push_back(ImeIdFromEngineId(kExt2Engine1Id));
ids.push_back("mozc-dv");
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Switch to Dvorak.
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Lock screen
manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[1]), // still Dvorak
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), // still Dvorak
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Switch back to Qwerty.
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Unlock screen. The original state, Dvorak, is restored.
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(kExt2Engine2Id);
- ids.push_back(kExt2Engine1Id);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId(kExt2Engine2Id));
+ ids.push_back(ImeIdFromEngineId(kExt2Engine1Id));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Switch to Mozc.
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Lock screen
manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); // Qwerty+Dvorak.
- EXPECT_EQ(XkbId("xkb:us:dvorak:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:dvorak:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(XkbId("xkb:us::eng"), // The hardware keyboard layout.
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), // The hardware keyboard layout.
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Unlock screen. The original state, pinyin-dv, is restored.
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); // Dvorak and 2 IMEs.
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(XkbId("xkb:us:colemak:eng"));
- ids.push_back(kNaclMozcJpId);
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcJpId));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(4U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(1, xkeyboard_->set_current_keyboard_layout_by_name_count_);
+ EXPECT_EQ(1, keyboard_->set_current_keyboard_layout_by_name_count_);
// See input_methods.txt for an expected XKB layout name.
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(2, xkeyboard_->set_current_keyboard_layout_by_name_count_);
- EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(2, keyboard_->set_current_keyboard_layout_by_name_count_);
+ EXPECT_EQ("us(colemak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(3, xkeyboard_->set_current_keyboard_layout_by_name_count_);
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(3, keyboard_->set_current_keyboard_layout_by_name_count_);
+ EXPECT_EQ("jp", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(4, xkeyboard_->set_current_keyboard_layout_by_name_count_);
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(4, keyboard_->set_current_keyboard_layout_by_name_count_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(5, xkeyboard_->set_current_keyboard_layout_by_name_count_);
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(5, keyboard_->set_current_keyboard_layout_by_name_count_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin());
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(6, xkeyboard_->set_current_keyboard_layout_by_name_count_);
- EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(6, keyboard_->set_current_keyboard_layout_by_name_count_);
+ EXPECT_EQ("us(colemak)", keyboard_->last_layout_);
}
TEST_F(InputMethodManagerImplTest, TestActivateInputMethodMenuItem) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty());
- manager_->ChangeInputMethod(kNaclMozcUsId);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId));
ash::ime::InputMethodMenuItemList current_property_list;
current_property_list.push_back(ash::ime::InputMethodMenuItem(
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kNaclMozcUsId); // Japanese
- ids.push_back(kExt2Engine1Id); // T-Chinese
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); // Japanese
+ ids.push_back(ImeIdFromEngineId(kExt2Engine1Id)); // T-Chinese
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty());
EXPECT_EQ("key-mozc",
menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key);
- manager_->ChangeInputMethod(kExt2Engine1Id);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kExt2Engine1Id));
// Since the IME is changed, the property for mozc Japanese should be hidden.
EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty());
manager_->AddObserver(&observer);
InitComponentExtension();
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
// For http://crbug.com/19655#c11 - (1)
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
EXPECT_EQ(5U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(intl)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(altgr-intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:dvorak:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:dvorak:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:colemak:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:colemak:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(colemak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(colemak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
keyup_accelerator.set_type(ui::ET_KEY_RELEASED);
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
EXPECT_EQ(5U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToNextInputMethod());
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToNextInputMethod());
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToNextInputMethod());
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(altgr-intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(altgr-intl)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
keyup_accelerator.set_type(ui::ET_KEY_RELEASED);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
}
TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithUsLayouts) {
- std::string expect_id = XkbId("xkb:us::eng");
+ std::string expect_id = ImeIdFromEngineId("xkb:us::eng");
TestObserver observer;
manager_->AddObserver(&observer);
InitComponentExtension();
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
EXPECT_EQ(5U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Henkan, Muhenkan, ZenkakuHankaku should be ignored when no Japanese IMEs
// and keyboards are enabled.
ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE)));
EXPECT_FALSE(observer.last_show_message_);
EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_FALSE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_FALSE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_FALSE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
keyup_accelerator.set_type(ui::ET_KEY_RELEASED);
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
manager_->EnableLoginLayouts("ja", keyboard_layouts);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
}
TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpIme) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:jp::jpn"));
- ids.push_back(kNaclMozcJpId);
+ ids.push_back(ImeIdFromEngineId("xkb:jp::jpn"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcJpId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
// Add Dvorak.
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("jp", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("jp", keyboard_->last_layout_);
}
TEST_F(InputMethodManagerImplTest, TestAddRemoveExtensionInputMethods) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]),
- manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Add two Extension IMEs.
std::vector<std::string> layouts;
GURL(),
GURL());
MockInputMethodEngine engine(descriptor1);
- manager_->AddInputMethodExtension(ext1_id, &engine);
+ manager_->AddInputMethodExtension(GetProfile(), ext1_id, &engine);
// Extension IMEs are not enabled by default.
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
GURL(),
GURL());
MockInputMethodEngine engine2(descriptor2);
- manager_->AddInputMethodExtension(ext2_id, &engine2);
+ manager_->AddInputMethodExtension(GetProfile(), ext2_id, &engine2);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
extension_ime_ids.push_back(ext2_id);
}
// Remove them.
- manager_->RemoveInputMethodExtension(ext1_id);
+ manager_->RemoveInputMethodExtension(GetProfile(), ext1_id);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- manager_->RemoveInputMethodExtension(ext2_id);
+ manager_->RemoveInputMethodExtension(GetProfile(), ext2_id);
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
}
manager_->AddObserver(&observer);
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Add an Extension IME.
std::vector<std::string> layouts;
GURL(),
GURL());
MockInputMethodEngine engine(descriptor);
- manager_->AddInputMethodExtension(ext_id, &engine);
+ manager_->AddInputMethodExtension(GetProfile(), ext_id, &engine);
// Extension IME is not enabled by default.
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
manager_->SwitchToNextInputMethod();
EXPECT_EQ(3, observer.input_method_changed_count_);
EXPECT_EQ(ext_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Lock the screen. This is for crosbug.com/27049.
manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN);
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); // Qwerty. No Ext. IME
- EXPECT_EQ(XkbId("xkb:us::eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us", xkeyboard_->last_layout_);
+ EXPECT_EQ("us", keyboard_->last_layout_);
// Unlock the screen.
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(ext_id, manager_->GetCurrentInputMethod().id());
- EXPECT_EQ("us(dvorak)", xkeyboard_->last_layout_);
+ EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
{
// This is for crosbug.com/27052.
scoped_ptr<InputMethodDescriptors> methods(
ChangeInputMethodBeforeComponentExtensionInitialization_OneIME) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- manager_->ChangeInputMethod(kNaclMozcUsId);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId));
InitComponentExtension();
- EXPECT_EQ(kNaclMozcUsId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcUsId),
+ manager_->GetCurrentInputMethod().id());
}
TEST_F(InputMethodManagerImplTest,
ChangeInputMethodBeforeComponentExtensionInitialization_TwoIME) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kNaclMozcUsId);
- ids.push_back(kNaclMozcJpId);
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcJpId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- manager_->ChangeInputMethod(kNaclMozcUsId);
- manager_->ChangeInputMethod(kNaclMozcJpId);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId));
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcJpId));
InitComponentExtension();
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
}
TEST_F(InputMethodManagerImplTest,
EXPECT_EQ(ext_id2, manager_->GetCurrentInputMethod().id());
}
-TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest_1) {
- extension_ime_util::ScopedUseExtensionKeyboardFlagForTesting
- scoped_flag(true);
-
+TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest) {
std::vector<std::string> input_method_ids;
input_method_ids.push_back("xkb:us::eng");
input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
+ input_method_ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
+ input_method_ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
input_method_ids.push_back("_comp_ime_asdf_pinyin");
- input_method_ids.push_back(kPinyinImeId);
+ input_method_ids.push_back(ImeIdFromEngineId(kPinyinImeId));
- manager_->MigrateXkbInputMethods(&input_method_ids);
+ manager_->MigrateInputMethods(&input_method_ids);
ASSERT_EQ(4U, input_method_ids.size());
- EXPECT_EQ(std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng",
- input_method_ids[0]);
- EXPECT_EQ(std::string("_comp_ime_") + kXkbExtId + "xkb:fr::fra",
- input_method_ids[1]);
- EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]);
- EXPECT_EQ("_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-pinyin",
- input_method_ids[3]);
-}
-
-TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest_2) {
- extension_ime_util::ScopedUseExtensionKeyboardFlagForTesting
- scoped_flag(false);
-
- std::vector<std::string> input_method_ids;
- input_method_ids.push_back("xkb:us::eng");
- input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
- input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
- input_method_ids.push_back("_comp_ime_asdf_pinyin");
-
- manager_->MigrateXkbInputMethods(&input_method_ids);
-
- ASSERT_EQ(3U, input_method_ids.size());
-
- EXPECT_EQ("xkb:us::eng", input_method_ids[0]);
- EXPECT_EQ("xkb:fr::fra", input_method_ids[1]);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), input_method_ids[0]);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:fr::fra"), input_method_ids[1]);
EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]);
+ EXPECT_EQ(ImeIdFromEngineId("zh-t-i0-pinyin"), input_method_ids[3]);
}
} // namespace input_method