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

Side by Side Diff: chrome/browser/chromeos/preferences_unittest.cc

Issue 419293002: IME refactoring: ChromeOS introduce input methods State. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unit test fixed. Re-sorted methods of StateImpl and IMM. Created 6 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/preferences.h" 5 #include "chrome/browser/chromeos/preferences.h"
6 6
7 #include "base/prefs/pref_member.h" 7 #include "base/prefs/pref_member.h"
8 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" 8 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h"
9 #include "chrome/browser/chromeos/login/users/fake_user_manager.h" 9 #include "chrome/browser/chromeos/login/users/fake_user_manager.h"
10 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" 10 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
11 #include "chrome/browser/download/download_prefs.h" 11 #include "chrome/browser/download/download_prefs.h"
12 #include "chrome/common/pref_names.h" 12 #include "chrome/common/pref_names.h"
13 #include "chrome/test/base/testing_pref_service_syncable.h" 13 #include "chrome/test/base/testing_pref_service_syncable.h"
14 #include "components/pref_registry/pref_registry_syncable.h" 14 #include "components/pref_registry/pref_registry_syncable.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace chromeos { 17 namespace chromeos {
18 namespace { 18 namespace {
19 19
20 class MyMockInputMethodManager : public input_method::MockInputMethodManager { 20 class MyMockInputMethodManager : public input_method::MockInputMethodManager {
21 public: 21 public:
22 class State : public MockInputMethodManager::State {
23 public:
24 explicit State(MyMockInputMethodManager* manager)
25 : MockInputMethodManager::State(manager), manager_(manager) {};
26
27 virtual void ChangeInputMethod(const std::string& input_method_id,
28 bool show_message) OVERRIDE {
29 manager_->last_input_method_id_ = input_method_id;
30 // Do the same thing as BrowserStateMonitor::UpdateUserPreferences.
31 const std::string current_input_method_on_pref =
32 manager_->current_->GetValue();
33 if (current_input_method_on_pref == input_method_id)
34 return;
35 manager_->previous_->SetValue(current_input_method_on_pref);
36 manager_->current_->SetValue(input_method_id);
37 }
38
39 protected:
40 virtual ~State() {};
41
42 private:
43 MyMockInputMethodManager* const manager_;
44 };
45
22 MyMockInputMethodManager(StringPrefMember* previous, 46 MyMockInputMethodManager(StringPrefMember* previous,
23 StringPrefMember* current) 47 StringPrefMember* current)
24 : previous_(previous), 48 : previous_(previous),
25 current_(current) { 49 current_(current) {
26 } 50 state_ = new State(this);
27 virtual ~MyMockInputMethodManager() {
28 } 51 }
29 52
30 virtual void ChangeInputMethod(const std::string& input_method_id) OVERRIDE { 53 virtual ~MyMockInputMethodManager() {}
31 last_input_method_id_ = input_method_id;
32 // Do the same thing as BrowserStateMonitor::UpdateUserPreferences.
33 const std::string current_input_method_on_pref = current_->GetValue();
34 if (current_input_method_on_pref == input_method_id)
35 return;
36 previous_->SetValue(current_input_method_on_pref);
37 current_->SetValue(input_method_id);
38 }
39 54
40 std::string last_input_method_id_; 55 std::string last_input_method_id_;
41 56
42 private: 57 private:
43 StringPrefMember* previous_; 58 StringPrefMember* previous_;
44 StringPrefMember* current_; 59 StringPrefMember* current_;
45 }; 60 };
46 61
47 } // anonymous namespace 62 } // anonymous namespace
48 63
(...skipping 16 matching lines...) Expand all
65 80
66 StringPrefMember previous; 81 StringPrefMember previous;
67 previous.Init(prefs::kLanguagePreviousInputMethod, &prefs); 82 previous.Init(prefs::kLanguagePreviousInputMethod, &prefs);
68 previous.SetValue("KeyboardA"); 83 previous.SetValue("KeyboardA");
69 StringPrefMember current; 84 StringPrefMember current;
70 current.Init(prefs::kLanguageCurrentInputMethod, &prefs); 85 current.Init(prefs::kLanguageCurrentInputMethod, &prefs);
71 current.SetValue("KeyboardB"); 86 current.SetValue("KeyboardB");
72 87
73 MyMockInputMethodManager mock_manager(&previous, &current); 88 MyMockInputMethodManager mock_manager(&previous, &current);
74 Preferences testee(&mock_manager); 89 Preferences testee(&mock_manager);
75 testee.InitUserPrefsForTesting(&prefs, test_user); 90 testee.InitUserPrefsForTesting(
91 &prefs, test_user, mock_manager.GetActiveIMEState());
76 testee.SetInputMethodListForTesting(); 92 testee.SetInputMethodListForTesting();
77 93
78 // Confirm they're unchanged. 94 // Confirm they're unchanged.
79 EXPECT_EQ("KeyboardA", previous.GetValue()); 95 EXPECT_EQ("KeyboardA", previous.GetValue());
80 EXPECT_EQ("KeyboardB", current.GetValue()); 96 EXPECT_EQ("KeyboardB", current.GetValue());
81 EXPECT_EQ("KeyboardB", mock_manager.last_input_method_id_); 97 EXPECT_EQ("KeyboardB", mock_manager.last_input_method_id_);
82 } 98 }
83 99
84 } // namespace chromeos 100 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/preferences_browsertest.cc ('k') | chrome/browser/extensions/api/input_ime/input_ime_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698