| Index: chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
|
| diff --git a/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc b/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
|
| index 454129a2d869c4d4a87525e316bd737650bc0334..e954bd582444e32184bf4aa31e3f204afe47cec4 100644
|
| --- a/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
|
| +++ b/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
|
| @@ -27,6 +27,7 @@
|
| #include "ui/base/ime/chromeos/extension_ime_util.h"
|
| #include "ui/base/ime/chromeos/input_method_manager.h"
|
| #include "ui/base/ime/chromeos/input_method_whitelist.h"
|
| +#include "ui/base/ime/ime_bridge.h"
|
|
|
| using namespace chromeos::input_method;
|
|
|
| @@ -35,6 +36,8 @@ namespace {
|
| const char kLoginScreenUILanguage[] = "fr";
|
| const char kInitialInputMethodOnLoginScreen[] = "xkb:us::eng";
|
| const char kBackgroundReady[] = "ready";
|
| +const char kTestIMEID[] = "_ext_ime_ilanclmaeigfpnmdlgelmhkpkegdioiptest";
|
| +const char kTestIMEID2[] = "_ext_ime_ilanclmaeigfpnmdlgelmhkpkegdioiptest2";
|
|
|
| // Class that listens for the JS message.
|
| class TestListener : public content::NotificationObserver {
|
| @@ -112,3 +115,39 @@ IN_PROC_BROWSER_TEST_F(ExtensionInputMethodApiTest, ImeMenuActivation) {
|
| // Test that the extension gets the IME activation change event properly.
|
| ASSERT_TRUE(event_listener.WaitUntilSatisfied()) << message_;
|
| }
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ExtensionInputMethodApiTest, ImeMenuAPITest) {
|
| + ExtensionTestMessageListener activated_listener("activated", false);
|
| + ExtensionTestMessageListener menu_listener("get_menu_update", false);
|
| + ExtensionTestMessageListener item_activated_listenter("get_menu_activated",
|
| + false);
|
| + ExtensionTestMessageListener list_listenter("list_change", false);
|
| + browser()->profile()->GetPrefs()->SetBoolean(prefs::kLanguageImeMenuActivated,
|
| + true);
|
| + ASSERT_TRUE(
|
| + LoadExtension(test_data_dir_.AppendASCII("input_method/ime_menu2")));
|
| +
|
| + std::vector<std::string> extension_ime_ids;
|
| + extension_ime_ids.push_back(kTestIMEID);
|
| + extension_ime_ids.push_back(kTestIMEID2);
|
| + InputMethodManager::Get()->GetActiveIMEState()->SetEnabledExtensionImes(
|
| + &extension_ime_ids);
|
| + InputMethodDescriptors extension_imes;
|
| + InputMethodManager::Get()->GetActiveIMEState()->GetInputMethodExtensions(
|
| + &extension_imes);
|
| + InputMethodManager::Get()->GetActiveIMEState()->ChangeInputMethod(
|
| + kTestIMEID, false /* show_message */);
|
| + ui::IMEEngineHandlerInterface* engine_handler =
|
| + ui::IMEBridge::Get()->GetCurrentEngineHandler();
|
| + ASSERT_TRUE(engine_handler);
|
| + engine_handler->Enable("test");
|
| +
|
| + ASSERT_TRUE(activated_listener.WaitUntilSatisfied()) << message_;
|
| + ASSERT_TRUE(menu_listener.WaitUntilSatisfied()) << message_;
|
| + ASSERT_TRUE(item_activated_listenter.WaitUntilSatisfied()) << message_;
|
| +
|
| + InputMethodManager::Get()->GetActiveIMEState()->ChangeInputMethod(
|
| + kTestIMEID2, false /* show_message */);
|
| + engine_handler->Enable("test2");
|
| + ASSERT_TRUE(list_listenter.WaitUntilSatisfied()) << message_;
|
| +}
|
|
|