summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
diff options
context:
space:
mode:
authoryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-16 04:47:16 +0000
committeryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-16 04:47:16 +0000
commiteb21c1d6ec3dd475a7f9e0b1541c117d9041878a (patch)
treeebb41e6b8d396c433c63303fd1b3157a8b49a286 /chrome/browser/chromeos/input_method/input_method_util_unittest.cc
parent268b12fc0dfbb5e074e55c41c4b320d6c3825d94 (diff)
downloadchromium_src-eb21c1d6ec3dd475a7f9e0b1541c117d9041878a.zip
chromium_src-eb21c1d6ec3dd475a7f9e0b1541c117d9041878a.tar.gz
chromium_src-eb21c1d6ec3dd475a7f9e0b1541c117d9041878a.tar.bz2
Fix memory leaks caused by chrome/browser/chromeos/input_method/*.cc (part 1)
- Removed all global (and intentionally leaked) objects from InputMethodIdIsWhitelisted() and XkbLayoutIsSupported(). Instead, added Whitelist class. The duration of the whitelist object is managed by an IBusController object. - Moved CreateInputMethodDescriptor() from InputMethodDescriptor to IBusController since it needs to access the whitelist object. - Moved GetFallbackInputMethodDescriptor() and GetSupportedInputMethods() from InputMethodManager to InputMethodDescriptor. BUG=chromium:48130 TEST=ran unit_tests under valgrind (without suppressions) and confirmed that no leaks were reported. Review URL: http://codereview.chromium.org/7887032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101454 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/input_method/input_method_util_unittest.cc')
-rw-r--r--chrome/browser/chromeos/input_method/input_method_util_unittest.cc33
1 files changed, 15 insertions, 18 deletions
diff --git a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
index 38e21f09..c475b64 100644
--- a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
+++ b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
@@ -6,8 +6,9 @@
#include <string>
+#include "base/scoped_ptr.h"
#include "base/utf_string_conversions.h"
-#include "chrome/browser/chromeos/cros/cros_library.h"
+#include "chrome/browser/chromeos/input_method/ibus_controller.h"
#include "grit/generated_resources.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"
@@ -32,26 +33,21 @@ namespace chromeos {
namespace input_method {
namespace {
-InputMethodDescriptor GetDesc(const std::string& id,
+
+InputMethodDescriptor GetDesc(IBusController* controller,
+ const std::string& id,
const std::string& raw_layout,
const std::string& language_code) {
- return InputMethodDescriptor::CreateInputMethodDescriptor(
- id, raw_layout, language_code);
+ return controller->CreateInputMethodDescriptor(id, raw_layout, language_code);
}
+
} // namespace
class InputMethodUtilTest : public testing::Test {
public:
static void SetUpTestCase() {
- // Reload the internal maps before running tests, with the stub
- // libcros enabled, so that test data is loaded properly.
- ScopedStubCrosEnabler stub_cros_enabler;
ReloadInternalMaps();
}
-
- private:
- // Ensure we always use the stub libcros in each test.
- ScopedStubCrosEnabler stub_cros_enabler_;
};
TEST_F(InputMethodUtilTest, TestGetStringUTF8) {
@@ -100,20 +96,21 @@ TEST_F(InputMethodUtilTest, TestIsKeyboardLayout) {
}
TEST_F(InputMethodUtilTest, TestGetLanguageCodeFromDescriptor) {
+ scoped_ptr<IBusController> controller(IBusController::Create());
EXPECT_EQ("ja", GetLanguageCodeFromDescriptor(
- GetDesc("mozc", "us", "ja")));
+ GetDesc(controller.get(), "mozc", "us", "ja")));
EXPECT_EQ("zh-TW", GetLanguageCodeFromDescriptor(
- GetDesc("mozc-chewing", "us", "zh")));
+ GetDesc(controller.get(), "mozc-chewing", "us", "zh")));
EXPECT_EQ("zh-TW", GetLanguageCodeFromDescriptor(
- GetDesc("m17n:zh:cangjie", "us", "zh")));
+ GetDesc(controller.get(), "m17n:zh:cangjie", "us", "zh")));
EXPECT_EQ("zh-TW", GetLanguageCodeFromDescriptor(
- GetDesc("m17n:zh:quick", "us", "zh")));
+ GetDesc(controller.get(), "m17n:zh:quick", "us", "zh")));
EXPECT_EQ("zh-CN", GetLanguageCodeFromDescriptor(
- GetDesc("pinyin", "us", "zh")));
+ GetDesc(controller.get(), "pinyin", "us", "zh")));
EXPECT_EQ("en-US", GetLanguageCodeFromDescriptor(
- GetDesc("xkb:us::eng", "us", "eng")));
+ GetDesc(controller.get(), "xkb:us::eng", "us", "eng")));
EXPECT_EQ("en-UK", GetLanguageCodeFromDescriptor(
- GetDesc("xkb:uk::eng", "us", "eng")));
+ GetDesc(controller.get(), "xkb:uk::eng", "us", "eng")));
}
TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) {