Commit 321bfa35 authored by Darren Shen's avatar Darren Shen Committed by Commit Bot

ime: Modernize NativeInputMethodEngine browser tests.

Use ScopedObservation and fix up some style.

Bug: 1148157
Change-Id: I56ec7fe2db2ab768c7af37c85fff76670db03c51
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2537254
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: default avatarJing Wang <jiwan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828572}
parent 7193e821
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/chromeos/input_method/native_input_method_engine.h" #include "chrome/browser/chromeos/input_method/native_input_method_engine.h"
#include "base/guid.h" #include "base/guid.h"
#include "base/scoped_observation.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/test/metrics/histogram_tester.h" #include "base/test/metrics/histogram_tester.h"
#include "base/test/metrics/user_action_tester.h" #include "base/test/metrics/user_action_tester.h"
...@@ -54,6 +55,8 @@ class TestObserver : public InputMethodEngineBase::Observer { ...@@ -54,6 +55,8 @@ class TestObserver : public InputMethodEngineBase::Observer {
public: public:
TestObserver() = default; TestObserver() = default;
~TestObserver() override = default; ~TestObserver() override = default;
TestObserver(const TestObserver&) = delete;
TestObserver& operator=(const TestObserver&) = delete;
void OnActivate(const std::string& engine_id) override {} void OnActivate(const std::string& engine_id) override {}
void OnDeactivated(const std::string& engine_id) override {} void OnDeactivated(const std::string& engine_id) override {}
...@@ -89,36 +92,34 @@ class TestObserver : public InputMethodEngineBase::Observer { ...@@ -89,36 +92,34 @@ class TestObserver : public InputMethodEngineBase::Observer {
changed_engine_id_ = engine_id; changed_engine_id_ = engine_id;
} }
void ClearChangedEngineId() { changed_engine_id_ = ""; } void ClearChangedEngineId() { changed_engine_id_ = ""; }
std::string GetChangedEngineId() { return changed_engine_id_; } const std::string& changed_engine_id() const { return changed_engine_id_; }
private: private:
std::string changed_engine_id_ = ""; std::string changed_engine_id_;
DISALLOW_COPY_AND_ASSIGN(TestObserver);
}; };
class TestPersonalDataManagerObserver class TestPersonalDataManagerObserver
: public autofill::PersonalDataManagerObserver { : public autofill::PersonalDataManagerObserver {
public: public:
explicit TestPersonalDataManagerObserver(Profile* profile) explicit TestPersonalDataManagerObserver(Profile* profile) {
: profile_(profile) { observed_personal_data_manager_.Observe(
autofill::PersonalDataManagerFactory::GetForProfile(profile_)->AddObserver( autofill::PersonalDataManagerFactory::GetForProfile(profile));
this);
} }
~TestPersonalDataManagerObserver() override = default; ~TestPersonalDataManagerObserver() override = default;
// Waits for the PersonalDataManager's list of profiles to be updated. // Waits for the PersonalDataManager's list of profiles to be updated.
void Wait() { void Wait() {
run_loop_.Run(); run_loop_.Run();
autofill::PersonalDataManagerFactory::GetForProfile(profile_)
->RemoveObserver(this);
} }
// PersonalDataManagerObserver: // PersonalDataManagerObserver:
void OnPersonalDataChanged() override { run_loop_.Quit(); } void OnPersonalDataChanged() override { run_loop_.Quit(); }
private: private:
Profile* profile_;
base::RunLoop run_loop_; base::RunLoop run_loop_;
base::ScopedObservation<autofill::PersonalDataManager,
autofill::PersonalDataManagerObserver>
observed_personal_data_manager_{this};
}; };
class KeyProcessingWaiter { class KeyProcessingWaiter {
...@@ -166,7 +167,7 @@ class NativeInputMethodEngineTest : public InProcessBrowserTest, ...@@ -166,7 +167,7 @@ class NativeInputMethodEngineTest : public InProcessBrowserTest,
prefs_ = profile_->GetPrefs(); prefs_ = profile_->GetPrefs();
prefs_->Set(::prefs::kLanguageInputMethodSpecificSettings, prefs_->Set(::prefs::kLanguageInputMethodSpecificSettings,
base::DictionaryValue()); base::DictionaryValue());
engine_.Initialize(std::move(observer), "", profile_); engine_.Initialize(std::move(observer), /*extension_id=*/"", profile_);
engine_.get_assistive_suggester_for_testing() engine_.get_assistive_suggester_for_testing()
->get_emoji_suggester_for_testing() ->get_emoji_suggester_for_testing()
->LoadEmojiMapForTesting(kEmojiData); ->LoadEmojiMapForTesting(kEmojiData);
...@@ -616,7 +617,7 @@ IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineTest, ...@@ -616,7 +617,7 @@ IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineTest,
pinyin1.SetBoolKey("foo", true); pinyin1.SetBoolKey("foo", true);
settings.SetPath("pinyin", std::move(pinyin1)); settings.SetPath("pinyin", std::move(pinyin1));
prefs_->Set(::prefs::kLanguageInputMethodSpecificSettings, settings); prefs_->Set(::prefs::kLanguageInputMethodSpecificSettings, settings);
EXPECT_EQ(observer_->GetChangedEngineId(), "pinyin"); EXPECT_EQ(observer_->changed_engine_id(), "pinyin");
observer_->ClearChangedEngineId(); observer_->ClearChangedEngineId();
// Change key will trigger event. // Change key will trigger event.
...@@ -624,7 +625,7 @@ IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineTest, ...@@ -624,7 +625,7 @@ IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineTest,
pinyin2.SetBoolKey("foo", false); pinyin2.SetBoolKey("foo", false);
settings.SetPath("pinyin", std::move(pinyin2)); settings.SetPath("pinyin", std::move(pinyin2));
prefs_->Set(::prefs::kLanguageInputMethodSpecificSettings, settings); prefs_->Set(::prefs::kLanguageInputMethodSpecificSettings, settings);
EXPECT_EQ(observer_->GetChangedEngineId(), "pinyin"); EXPECT_EQ(observer_->changed_engine_id(), "pinyin");
} }
IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineTest, DestroyProfile) { IN_PROC_BROWSER_TEST_F(NativeInputMethodEngineTest, DestroyProfile) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment