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

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

Issue 11734018: Revert 174880 due to compilation error in pdf_browsertest.cc (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1374/src/
Patch Set: Created 7 years, 11 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 | Annotate | Revision Log
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/ui/webui/options/preferences_browsertest.h" 5 #include "chrome/browser/ui/webui/options/preferences_browsertest.h"
6 6
7 #include <iostream> 7 #include <iostream>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 void PreferencesBrowserTest::SetUpOnMainThread() { 74 void PreferencesBrowserTest::SetUpOnMainThread() {
75 ui_test_utils::NavigateToURL(browser(), 75 ui_test_utils::NavigateToURL(browser(),
76 GURL(chrome::kChromeUISettingsFrameURL)); 76 GURL(chrome::kChromeUISettingsFrameURL));
77 content::WebContents* web_contents = chrome::GetActiveWebContents(browser()); 77 content::WebContents* web_contents = chrome::GetActiveWebContents(browser());
78 ASSERT_TRUE(web_contents); 78 ASSERT_TRUE(web_contents);
79 render_view_host_ = web_contents->GetRenderViewHost(); 79 render_view_host_ = web_contents->GetRenderViewHost();
80 ASSERT_TRUE(render_view_host_); 80 ASSERT_TRUE(render_view_host_);
81 pref_change_registrar_.Init( 81 pref_change_registrar_.Init(
82 PrefServiceBase::FromBrowserContext(browser()->profile())); 82 PrefServiceBase::FromBrowserContext(browser()->profile()));
83 pref_service_ = browser()->profile()->GetPrefs(); 83 pref_service_ = browser()->profile()->GetPrefs();
84 ASSERT_TRUE(content::ExecuteJavaScript(render_view_host_, 84 ASSERT_TRUE(content::ExecuteJavaScript(render_view_host_, L"",
85 "", 85 L"function TestEnv() {"
86 "function TestEnv() {" 86 L" this.sentinelName_ = 'download.prompt_for_download';"
87 " this.sentinelName_ = 'download.prompt_for_download';" 87 L" this.prefs_ = [];"
88 " this.prefs_ = [];" 88 L" TestEnv.instance_ = this;"
89 " TestEnv.instance_ = this;" 89 L"}"
90 "}" 90 L""
91 "" 91 L"TestEnv.handleEvent = function(event) {"
92 "TestEnv.handleEvent = function(event) {" 92 L" var env = TestEnv.instance_;"
93 " var env = TestEnv.instance_;" 93 L" var name = event.type;"
94 " var name = event.type;" 94 L" env.removePrefListener_(name);"
95 " env.removePrefListener_(name);" 95 L" if (name == TestEnv.sentinelName_)"
96 " if (name == TestEnv.sentinelName_)" 96 L" env.sentinelValue_ = event.value.value;"
97 " env.sentinelValue_ = event.value.value;" 97 L" else"
98 " else" 98 L" env.reply_[name] = event.value;"
99 " env.reply_[name] = event.value;" 99 L" if (env.fetching_ && !--env.fetching_ ||"
100 " if (env.fetching_ && !--env.fetching_ ||" 100 L" !env.fetching_ && name == env.sentinelName_) {"
101 " !env.fetching_ && name == env.sentinelName_) {" 101 L" env.removePrefListeners_();"
102 " env.removePrefListeners_();" 102 L" window.domAutomationController.send(JSON.stringify(env.reply_));"
103 " window.domAutomationController.send(JSON.stringify(env.reply_));" 103 L" delete env.reply_;"
104 " delete env.reply_;" 104 L" }"
105 " }" 105 L"};"
106 "};" 106 L""
107 "" 107 L"TestEnv.prototype = {"
108 "TestEnv.prototype = {" 108 L" addPrefListener_: function(name) {"
109 " addPrefListener_: function(name) {" 109 L" Preferences.getInstance().addEventListener(name,"
110 " Preferences.getInstance().addEventListener(name," 110 L" TestEnv.handleEvent);"
111 " TestEnv.handleEvent);" 111 L" },"
112 " }," 112 L""
113 "" 113 L" addPrefListeners_: function() {"
114 " addPrefListeners_: function() {" 114 L" for (var i in this.prefs_)"
115 " for (var i in this.prefs_)" 115 L" this.addPrefListener_(this.prefs_[i]);"
116 " this.addPrefListener_(this.prefs_[i]);" 116 L" },"
117 " }," 117 L""
118 "" 118 L" removePrefListener_: function(name) {"
119 " removePrefListener_: function(name) {" 119 L" Preferences.getInstance().removeEventListener(name,"
120 " Preferences.getInstance().removeEventListener(name," 120 L" TestEnv.handleEvent);"
121 " TestEnv.handleEvent);" 121 L" },"
122 " }," 122 L""
123 "" 123 L" removePrefListeners_: function() {"
124 " removePrefListeners_: function() {" 124 L" for (var i in this.prefs_)"
125 " for (var i in this.prefs_)" 125 L" this.removePrefListener_(this.prefs_[i]);"
126 " this.removePrefListener_(this.prefs_[i]);" 126 L" },"
127 " }," 127 L""
128 "" 128 L""
129 "" 129 L" addPref: function(name) {"
130 " addPref: function(name) {" 130 L" this.prefs_.push(name);"
131 " this.prefs_.push(name);" 131 L" },"
132 " }," 132 L""
133 "" 133 L" setupAndReply: function() {"
134 " setupAndReply: function() {" 134 L" this.reply_ = {};"
135 " this.reply_ = {};" 135 L" Preferences.instance_ = new Preferences();"
136 " Preferences.instance_ = new Preferences();" 136 L" this.addPref(this.sentinelName_);"
137 " this.addPref(this.sentinelName_);" 137 L" this.fetching_ = this.prefs_.length;"
138 " this.fetching_ = this.prefs_.length;" 138 L" this.addPrefListeners_();"
139 " this.addPrefListeners_();" 139 L" Preferences.getInstance().initialize();"
140 " Preferences.getInstance().initialize();" 140 L" },"
141 " }," 141 L""
142 "" 142 L" runAndReply: function(test) {"
143 " runAndReply: function(test) {" 143 L" this.reply_ = {};"
144 " this.reply_ = {};" 144 L" this.addPrefListeners_();"
145 " this.addPrefListeners_();" 145 L" test();"
146 " test();" 146 L" this.sentinelValue_ = !this.sentinelValue_;"
147 " this.sentinelValue_ = !this.sentinelValue_;" 147 L" Preferences.setBooleanPref(this.sentinelName_, this.sentinelValue_,"
148 " Preferences.setBooleanPref(this.sentinelName_, this.sentinelValue_," 148 L" true);"
149 " true);" 149 L" },"
150 " }," 150 L""
151 "" 151 L" startObserving: function() {"
152 " startObserving: function() {" 152 L" this.reply_ = {};"
153 " this.reply_ = {};" 153 L" this.addPrefListeners_();"
154 " this.addPrefListeners_();" 154 L" },"
155 " }," 155 L""
156 "" 156 L" finishObservingAndReply: function() {"
157 " finishObservingAndReply: function() {" 157 L" this.sentinelValue_ = !this.sentinelValue_;"
158 " this.sentinelValue_ = !this.sentinelValue_;" 158 L" Preferences.setBooleanPref(this.sentinelName_, this.sentinelValue_,"
159 " Preferences.setBooleanPref(this.sentinelName_, this.sentinelValue_," 159 L" true);"
160 " true);" 160 L" }"
161 " }" 161 L"};"));
162 "};"));
163 } 162 }
164 163
165 // Forwards notifications received when pref values change in the backend. 164 // Forwards notifications received when pref values change in the backend.
166 void PreferencesBrowserTest::OnPreferenceChanged(const std::string& pref_name) { 165 void PreferencesBrowserTest::OnPreferenceChanged(const std::string& pref_name) {
167 OnCommit(pref_service_->FindPreference(pref_name.c_str())); 166 OnCommit(pref_service_->FindPreference(pref_name.c_str()));
168 } 167 }
169 168
170 // Sets up a mock user policy provider. 169 // Sets up a mock user policy provider.
171 void PreferencesBrowserTest::SetUpInProcessBrowserTestFixture() { 170 void PreferencesBrowserTest::SetUpInProcessBrowserTestFixture() {
172 EXPECT_CALL(policy_provider_, IsInitializationComplete()) 171 EXPECT_CALL(policy_provider_, IsInitializationComplete())
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 } 296 }
298 297
299 void PreferencesBrowserTest::VerifyAndClearExpectations() { 298 void PreferencesBrowserTest::VerifyAndClearExpectations() {
300 Mock::VerifyAndClearExpectations(this); 299 Mock::VerifyAndClearExpectations(this);
301 pref_change_registrar_.RemoveAll(); 300 pref_change_registrar_.RemoveAll();
302 } 301 }
303 302
304 void PreferencesBrowserTest::SetupJavaScriptTestEnvironment( 303 void PreferencesBrowserTest::SetupJavaScriptTestEnvironment(
305 const std::vector<std::string>& pref_names, 304 const std::vector<std::string>& pref_names,
306 std::string* observed_json) const { 305 std::string* observed_json) const {
307 std::stringstream javascript; 306 std::wstringstream javascript;
308 javascript << "var testEnv = new TestEnv();"; 307 javascript << "var testEnv = new TestEnv();";
309 for (std::vector<std::string>::const_iterator name = pref_names.begin(); 308 for (std::vector<std::string>::const_iterator name = pref_names.begin();
310 name != pref_names.end(); ++name) 309 name != pref_names.end(); ++name)
311 javascript << "testEnv.addPref('" << name->c_str() << "');"; 310 javascript << "testEnv.addPref('" << name->c_str() << "');";
312 javascript << "testEnv.setupAndReply();"; 311 javascript << "testEnv.setupAndReply();";
313 std::string temp_observed_json; 312 std::string temp_observed_json;
314 if (!observed_json) 313 if (!observed_json)
315 observed_json = &temp_observed_json; 314 observed_json = &temp_observed_json;
316 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( 315 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
317 render_view_host_, "", javascript.str(), observed_json)); 316 render_view_host_, L"", javascript.str(), observed_json));
318 } 317 }
319 318
320 void PreferencesBrowserTest::VerifySetPref(const std::string& name, 319 void PreferencesBrowserTest::VerifySetPref(const std::string& name,
321 const std::string& type, 320 const std::string& type,
322 const base::Value* value, 321 const base::Value* value,
323 bool commit) { 322 bool commit) {
324 if (commit) 323 if (commit)
325 ExpectSetCommit(name, value); 324 ExpectSetCommit(name, value);
326 else 325 else
327 ExpectNoCommit(name); 326 ExpectNoCommit(name);
328 scoped_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit)); 327 scoped_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit));
329 std::string value_json; 328 std::string value_json;
330 std::string commit_json; 329 std::string commit_json;
331 base::JSONWriter::Write(value, &value_json); 330 base::JSONWriter::Write(value, &value_json);
332 base::JSONWriter::Write(commit_ptr.get(), &commit_json); 331 base::JSONWriter::Write(commit_ptr.get(), &commit_json);
333 std::stringstream javascript; 332 std::wstringstream javascript;
334 javascript << "testEnv.runAndReply(function() {" 333 javascript << "testEnv.runAndReply(function() {"
335 << " Preferences.set" << type.c_str() << "Pref(" 334 << " Preferences.set" << type.c_str() << "Pref("
336 << " '" << name.c_str() << "'," 335 << " '" << name.c_str() << "',"
337 << " " << value_json.c_str() << "," 336 << " " << value_json.c_str() << ","
338 << " " << commit_json.c_str() << ");});"; 337 << " " << commit_json.c_str() << ");});";
339 std::string observed_json; 338 std::string observed_json;
340 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( 339 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
341 render_view_host_, "", javascript.str(), &observed_json)); 340 render_view_host_, L"", javascript.str(), &observed_json));
342 VerifyObservedPref(observed_json, name, value, "", false, !commit); 341 VerifyObservedPref(observed_json, name, value, "", false, !commit);
343 VerifyAndClearExpectations(); 342 VerifyAndClearExpectations();
344 } 343 }
345 344
346 void PreferencesBrowserTest::VerifyClearPref(const std::string& name, 345 void PreferencesBrowserTest::VerifyClearPref(const std::string& name,
347 const base::Value* value, 346 const base::Value* value,
348 bool commit) { 347 bool commit) {
349 if (commit) 348 if (commit)
350 ExpectClearCommit(name); 349 ExpectClearCommit(name);
351 else 350 else
352 ExpectNoCommit(name); 351 ExpectNoCommit(name);
353 scoped_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit)); 352 scoped_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit));
354 std::string commit_json; 353 std::string commit_json;
355 base::JSONWriter::Write(commit_ptr.get(), &commit_json); 354 base::JSONWriter::Write(commit_ptr.get(), &commit_json);
356 std::stringstream javascript; 355 std::wstringstream javascript;
357 javascript << "testEnv.runAndReply(function() {" 356 javascript << "testEnv.runAndReply(function() {"
358 << " Preferences.clearPref(" 357 << " Preferences.clearPref("
359 << " '" << name.c_str() << "'," 358 << " '" << name.c_str() << "',"
360 << " " << commit_json.c_str() << ");});"; 359 << " " << commit_json.c_str() << ");});";
361 std::string observed_json; 360 std::string observed_json;
362 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( 361 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
363 render_view_host_, "", javascript.str(), &observed_json)); 362 render_view_host_, L"", javascript.str(), &observed_json));
364 VerifyObservedPref(observed_json, name, value, "recommended", false, !commit); 363 VerifyObservedPref(observed_json, name, value, "recommended", false, !commit);
365 VerifyAndClearExpectations(); 364 VerifyAndClearExpectations();
366 } 365 }
367 366
368 void PreferencesBrowserTest::VerifyCommit(const std::string& name, 367 void PreferencesBrowserTest::VerifyCommit(const std::string& name,
369 const base::Value* value, 368 const base::Value* value,
370 const std::string& controlledBy) { 369 const std::string& controlledBy) {
371 std::stringstream javascript; 370 std::wstringstream javascript;
372 javascript << "testEnv.runAndReply(function() {" 371 javascript << "testEnv.runAndReply(function() {"
373 << " Preferences.getInstance().commitPref(" 372 << " Preferences.getInstance().commitPref("
374 << " '" << name.c_str() << "');});"; 373 << " '" << name.c_str() << "');});";
375 std::string observed_json; 374 std::string observed_json;
376 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( 375 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
377 render_view_host_, "", javascript.str(), &observed_json)); 376 render_view_host_, L"", javascript.str(), &observed_json));
378 VerifyObservedPref(observed_json, name, value, controlledBy, false, false); 377 VerifyObservedPref(observed_json, name, value, controlledBy, false, false);
379 } 378 }
380 379
381 void PreferencesBrowserTest::VerifySetCommit(const std::string& name, 380 void PreferencesBrowserTest::VerifySetCommit(const std::string& name,
382 const base::Value* value) { 381 const base::Value* value) {
383 ExpectSetCommit(name, value); 382 ExpectSetCommit(name, value);
384 VerifyCommit(name, value, ""); 383 VerifyCommit(name, value, "");
385 VerifyAndClearExpectations(); 384 VerifyAndClearExpectations();
386 } 385 }
387 386
388 void PreferencesBrowserTest::VerifyClearCommit(const std::string& name, 387 void PreferencesBrowserTest::VerifyClearCommit(const std::string& name,
389 const base::Value* value) { 388 const base::Value* value) {
390 ExpectClearCommit(name); 389 ExpectClearCommit(name);
391 VerifyCommit(name, value, "recommended"); 390 VerifyCommit(name, value, "recommended");
392 VerifyAndClearExpectations(); 391 VerifyAndClearExpectations();
393 } 392 }
394 393
395 void PreferencesBrowserTest::VerifyRollback(const std::string& name, 394 void PreferencesBrowserTest::VerifyRollback(const std::string& name,
396 const base::Value* value, 395 const base::Value* value,
397 const std::string& controlledBy) { 396 const std::string& controlledBy) {
398 ExpectNoCommit(name); 397 ExpectNoCommit(name);
399 std::stringstream javascript; 398 std::wstringstream javascript;
400 javascript << "testEnv.runAndReply(function() {" 399 javascript << "testEnv.runAndReply(function() {"
401 << " Preferences.getInstance().rollbackPref(" 400 << " Preferences.getInstance().rollbackPref("
402 << " '" << name.c_str() << "');});"; 401 << " '" << name.c_str() << "');});";
403 std::string observed_json; 402 std::string observed_json;
404 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( 403 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
405 render_view_host_, "", javascript.str(), &observed_json)); 404 render_view_host_, L"", javascript.str(), &observed_json));
406 VerifyObservedPref(observed_json, name, value, controlledBy, false, true); 405 VerifyObservedPref(observed_json, name, value, controlledBy, false, true);
407 VerifyAndClearExpectations(); 406 VerifyAndClearExpectations();
408 } 407 }
409 408
410 void PreferencesBrowserTest::StartObserving() { 409 void PreferencesBrowserTest::StartObserving() {
411 ASSERT_TRUE(content::ExecuteJavaScript( 410 ASSERT_TRUE(content::ExecuteJavaScript(
412 render_view_host_, "", "testEnv.startObserving();")); 411 render_view_host_, L"", L"testEnv.startObserving();"));
413 } 412 }
414 413
415 void PreferencesBrowserTest::FinishObserving(std::string* observed_json) { 414 void PreferencesBrowserTest::FinishObserving(std::string* observed_json) {
416 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( 415 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
417 render_view_host_, 416 render_view_host_, L"", L"testEnv.finishObservingAndReply();",
418 "",
419 "testEnv.finishObservingAndReply();",
420 observed_json)); 417 observed_json));
421 } 418 }
422 419
423 void PreferencesBrowserTest::UseDefaultTestPrefs(bool includeListPref) { 420 void PreferencesBrowserTest::UseDefaultTestPrefs(bool includeListPref) {
424 // Boolean pref. 421 // Boolean pref.
425 types_.push_back("Boolean"); 422 types_.push_back("Boolean");
426 pref_names_.push_back(prefs::kAlternateErrorPagesEnabled); 423 pref_names_.push_back(prefs::kAlternateErrorPagesEnabled);
427 policy_names_.push_back(policy::key::kAlternateErrorPagesEnabled); 424 policy_names_.push_back(policy::key::kAlternateErrorPagesEnabled);
428 non_default_values_.push_back(new base::FundamentalValue(false)); 425 non_default_values_.push_back(new base::FundamentalValue(false));
429 426
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 // Do not set the Boolean pref. It will toogle automatically. 732 // Do not set the Boolean pref. It will toogle automatically.
736 for (size_t i = 1; i < pref_names_.size(); ++i) 733 for (size_t i = 1; i < pref_names_.size(); ++i)
737 chromeos::proxy_cros_settings_parser::SetProxyPrefValue( 734 chromeos::proxy_cros_settings_parser::SetProxyPrefValue(
738 profile, pref_names_[i], non_default_values_[i]->DeepCopy()); 735 profile, pref_names_[i], non_default_values_[i]->DeepCopy());
739 SetupJavaScriptTestEnvironment(pref_names_, &observed_json); 736 SetupJavaScriptTestEnvironment(pref_names_, &observed_json);
740 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_, 737 VerifyObservedPrefs(observed_json, pref_names_, non_default_values_,
741 "", false, false); 738 "", false, false);
742 } 739 }
743 740
744 #endif 741 #endif
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/options_ui_browsertest.cc ('k') | chrome/test/base/tracing_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698