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

Unified Diff: chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc

Issue 1839923002: Add tests for IME menu private APIs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 | « no previous file | chrome/test/data/extensions/api_test/input_method/ime_menu2/background.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
+}
« no previous file with comments | « no previous file | chrome/test/data/extensions/api_test/input_method/ime_menu2/background.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698