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

Side by Side Diff: chrome/browser/ui/webui/options/preferences_browsertest.h

Issue 2919343005: Remove tests for deprecated Options UI (Closed)
Patch Set: and more Created 3 years, 6 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_PREFERENCES_BROWSERTEST_H_
6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_PREFERENCES_BROWSERTEST_H_
7
8 #include <memory>
9 #include <string>
10 #include <vector>
11
12 #include "base/compiler_specific.h"
13 #include "base/macros.h"
14 #include "chrome/test/base/in_process_browser_test.h"
15 #include "components/policy/core/common/mock_configuration_policy_provider.h"
16 #include "components/policy/core/common/policy_types.h"
17 #include "components/prefs/pref_change_registrar.h"
18 #include "components/prefs/pref_service.h"
19 #include "content/public/browser/notification_observer.h"
20 #include "testing/gmock/include/gmock/gmock.h"
21
22 namespace base {
23 class DictionaryValue;
24 class Value;
25 }
26
27 namespace content {
28 class RenderViewHost;
29 }
30
31 // Tests verifying that the JavaScript Preferences class, the underlying C++
32 // CoreOptionsHandler and the specialized classes handling Chrome OS device and
33 // proxy prefs behave correctly.
34 class PreferencesBrowserTest : public InProcessBrowserTest {
35 public:
36 PreferencesBrowserTest();
37 ~PreferencesBrowserTest() override;
38
39 // InProcessBrowserTest implementation:
40 void SetUpOnMainThread() override;
41 void TearDownOnMainThread() override;
42
43 void OnPreferenceChanged(const std::string& pref_name);
44
45 protected:
46 MOCK_METHOD1(OnCommit, void(const PrefService::Preference*));
47
48 // The pref service that holds the current pref values in the C++ backend.
49 PrefService* pref_service();
50
51 void SetUpPrefs();
52
53 // InProcessBrowserTest implementation:
54 void SetUpInProcessBrowserTestFixture() override;
55
56 // Sets user policies through the mock policy provider.
57 void SetUserPolicies(const std::vector<std::string>& names,
58 const std::vector<std::unique_ptr<base::Value>>& values,
59 policy::PolicyLevel level);
60 // Clears user policies.
61 void ClearUserPolicies();
62 // Set user-modified pref values directly in the C++ backend.
63 void SetUserValues(const std::vector<std::string>& names,
64 const std::vector<std::unique_ptr<base::Value>>& values);
65
66 // Verifies that a dictionary contains a (key, value) pair. Takes ownership of
67 // |expected|.
68 void VerifyKeyValue(const base::DictionaryValue& dict,
69 const std::string& key,
70 const base::Value& expected);
71 // Verifies that a dictionary contains a given pref and that its value has
72 // been decorated correctly.
73 void VerifyPref(const base::DictionaryValue* prefs,
74 const std::string& name,
75 const std::unique_ptr<base::Value>& value,
76 const std::string& controlledBy,
77 bool disabled,
78 bool uncommitted);
79 // Verifies that a notification received from the JavaScript Preferences
80 // class contains a given pref and that its value has been decorated
81 // correctly.
82 void VerifyObservedPref(const std::string& observed_json,
83 const std::string& name,
84 const std::unique_ptr<base::Value>& value,
85 const std::string& controlledBy,
86 bool disabled,
87 bool uncommitted);
88 // Verifies that notifications received from the JavaScript Preferences class
89 // contain the given prefs and that their values have been decorated
90 // correctly.
91 void VerifyObservedPrefs(
92 const std::string& observed_json,
93 const std::vector<std::string>& names,
94 const std::vector<std::unique_ptr<base::Value>>& values,
95 const std::string& controlledBy,
96 bool disabled,
97 bool uncommitted);
98
99 // Sets up the expectation that the JavaScript Preferences class will make no
100 // change to a user-modified pref value in the C++ backend.
101 void ExpectNoCommit(const std::string& name);
102 // Sets up the expectation that the JavaScript Preferences class will set a
103 // user-modified pref value in the C++ backend.
104 void ExpectSetCommit(const std::string& name,
105 const std::unique_ptr<base::Value>& value);
106 // Sets up the expectation that the JavaScript Preferences class will clear a
107 // user-modified pref value in the C++ backend.
108 void ExpectClearCommit(const std::string& name);
109 // Verifies that previously set expectations are met and clears them.
110 void VerifyAndClearExpectations();
111
112 // Sets up the JavaScript part of the test environment.
113 void SetupJavaScriptTestEnvironment(
114 const std::vector<std::string>& pref_names,
115 std::string* observed_json) const;
116
117 // Sets a value through the JavaScript Preferences class as if the user had
118 // modified it. Returns the observation which can be verified using the
119 // VerifyObserved* methods.
120 void SetPref(const std::string& name,
121 const std::string& type,
122 const std::unique_ptr<base::Value>& value,
123 bool commit,
124 std::string* observed_json);
125
126 // Verifies that setting a user-modified pref value through the JavaScript
127 // Preferences class fires the correct notification in JavaScript and commits
128 // the change to C++ if |commit| is true.
129 void VerifySetPref(const std::string& name,
130 const std::string& type,
131 const std::unique_ptr<base::Value>& value,
132 bool commit);
133 // Verifies that clearing a user-modified pref value through the JavaScript
134 // Preferences class fires the correct notification in JavaScript and does
135 // respectively does not cause the change to be committed to the C++ backend.
136 void VerifyClearPref(const std::string& name,
137 const std::unique_ptr<base::Value>& value,
138 bool commit);
139 // Verifies that committing a previously made change of a user-modified pref
140 // value through the JavaScript Preferences class fires the correct
141 // notification in JavaScript.
142 void VerifyCommit(const std::string& name,
143 const std::unique_ptr<base::Value>& value,
144 const std::string& controlledBy);
145 // Verifies that committing a previously set user-modified pref value through
146 // the JavaScript Preferences class fires the correct notification in
147 // JavaScript and causes the change to be committed to the C++ backend.
148 void VerifySetCommit(const std::string& name,
149 const std::unique_ptr<base::Value>& value);
150 // Verifies that committing the previously cleared user-modified pref value
151 // through the JavaScript Preferences class fires the correct notification in
152 // JavaScript and causes the change to be committed to the C++ backend.
153 void VerifyClearCommit(const std::string& name,
154 const std::unique_ptr<base::Value>& value);
155 // Verifies that rolling back a previously made change of a user-modified pref
156 // value through the JavaScript Preferences class fires the correct
157 // notification in JavaScript and does not cause the change to be committed to
158 // the C++ backend.
159 void VerifyRollback(const std::string& name,
160 const std::unique_ptr<base::Value>& value,
161 const std::string& controlledBy);
162 // Start observing notifications sent by the JavaScript Preferences class for
163 // pref values changes.
164 void StartObserving();
165 // Change the value of a sentinel pref in the C++ backend and finish observing
166 // notifications sent by the JavaScript Preferences class when the
167 // notification for this pref is received.
168 void FinishObserving(std::string* observed_json);
169
170 // Populate the lists of test prefs and corresponding policies with default
171 // values used by most tests.
172 void UseDefaultTestPrefs(bool includeListPref);
173
174 // The current tab's render view host, required to inject JavaScript code into
175 // the tab.
176 content::RenderViewHost* render_view_host_;
177
178 // Mock policy provider for both user and device policies.
179 policy::MockConfigurationPolicyProvider policy_provider_;
180
181 // Pref change registrar that detects changes to user-modified pref values
182 // made in the C++ backend by the JavaScript Preferences class.
183 std::unique_ptr<PrefChangeRegistrar> pref_change_registrar_;
184
185 // The prefs and corresponding policies used by the current test.
186 std::vector<std::string> types_;
187 std::vector<std::string> pref_names_;
188 std::vector<std::string> policy_names_;
189 std::vector<std::unique_ptr<base::Value>> default_values_;
190 std::vector<std::unique_ptr<base::Value>> non_default_values_;
191
192 private:
193 DISALLOW_COPY_AND_ASSIGN(PreferencesBrowserTest);
194 };
195
196 #endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_PREFERENCES_BROWSERTEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698