diff options
author | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-16 04:47:16 +0000 |
---|---|---|
committer | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-16 04:47:16 +0000 |
commit | eb21c1d6ec3dd475a7f9e0b1541c117d9041878a (patch) | |
tree | ebb41e6b8d396c433c63303fd1b3157a8b49a286 /chrome/browser/chromeos/input_method/input_method_util_unittest.cc | |
parent | 268b12fc0dfbb5e074e55c41c4b320d6c3825d94 (diff) | |
download | chromium_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.cc | 33 |
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) { |