| OLD | NEW |
| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <iostream> | 9 #include <iostream> |
| 10 #include <memory> |
| 10 #include <sstream> | 11 #include <sstream> |
| 11 | 12 |
| 12 #include "base/callback.h" | 13 #include "base/callback.h" |
| 13 #include "base/json/json_reader.h" | 14 #include "base/json/json_reader.h" |
| 14 #include "base/json/json_writer.h" | 15 #include "base/json/json_writer.h" |
| 15 #include "base/memory/scoped_ptr.h" | |
| 16 #include "base/values.h" | 16 #include "base/values.h" |
| 17 #include "build/build_config.h" | 17 #include "build/build_config.h" |
| 18 #include "chrome/browser/chrome_notification_types.h" | 18 #include "chrome/browser/chrome_notification_types.h" |
| 19 #include "chrome/browser/profiles/profile.h" | 19 #include "chrome/browser/profiles/profile.h" |
| 20 #include "chrome/browser/ui/browser.h" | 20 #include "chrome/browser/ui/browser.h" |
| 21 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 21 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 22 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
| 23 #include "chrome/common/url_constants.h" | 23 #include "chrome/common/url_constants.h" |
| 24 #include "chrome/test/base/ui_test_utils.h" | 24 #include "chrome/test/base/ui_test_utils.h" |
| 25 #include "components/policy/core/browser/browser_policy_connector.h" | 25 #include "components/policy/core/browser/browser_policy_connector.h" |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 else if (dict->HasKey("uncommitted")) | 257 else if (dict->HasKey("uncommitted")) |
| 258 VerifyKeyValue(*dict, "uncommitted", base::FundamentalValue(false)); | 258 VerifyKeyValue(*dict, "uncommitted", base::FundamentalValue(false)); |
| 259 } | 259 } |
| 260 | 260 |
| 261 void PreferencesBrowserTest::VerifyObservedPref(const std::string& json, | 261 void PreferencesBrowserTest::VerifyObservedPref(const std::string& json, |
| 262 const std::string& name, | 262 const std::string& name, |
| 263 const base::Value* value, | 263 const base::Value* value, |
| 264 const std::string& controlledBy, | 264 const std::string& controlledBy, |
| 265 bool disabled, | 265 bool disabled, |
| 266 bool uncommitted) { | 266 bool uncommitted) { |
| 267 scoped_ptr<base::Value> observed_value_ptr = base::JSONReader::Read(json); | 267 std::unique_ptr<base::Value> observed_value_ptr = |
| 268 base::JSONReader::Read(json); |
| 268 const base::DictionaryValue* observed_dict; | 269 const base::DictionaryValue* observed_dict; |
| 269 ASSERT_TRUE(observed_value_ptr.get()); | 270 ASSERT_TRUE(observed_value_ptr.get()); |
| 270 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); | 271 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); |
| 271 VerifyPref(observed_dict, name, value, controlledBy, disabled, uncommitted); | 272 VerifyPref(observed_dict, name, value, controlledBy, disabled, uncommitted); |
| 272 } | 273 } |
| 273 | 274 |
| 274 void PreferencesBrowserTest::VerifyObservedPrefs( | 275 void PreferencesBrowserTest::VerifyObservedPrefs( |
| 275 const std::string& json, | 276 const std::string& json, |
| 276 const std::vector<std::string>& names, | 277 const std::vector<std::string>& names, |
| 277 const std::vector<base::Value*>& values, | 278 const std::vector<base::Value*>& values, |
| 278 const std::string& controlledBy, | 279 const std::string& controlledBy, |
| 279 bool disabled, | 280 bool disabled, |
| 280 bool uncommitted) { | 281 bool uncommitted) { |
| 281 scoped_ptr<base::Value> observed_value_ptr = base::JSONReader::Read(json); | 282 std::unique_ptr<base::Value> observed_value_ptr = |
| 283 base::JSONReader::Read(json); |
| 282 const base::DictionaryValue* observed_dict; | 284 const base::DictionaryValue* observed_dict; |
| 283 ASSERT_TRUE(observed_value_ptr.get()); | 285 ASSERT_TRUE(observed_value_ptr.get()); |
| 284 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); | 286 ASSERT_TRUE(observed_value_ptr->GetAsDictionary(&observed_dict)); |
| 285 for (size_t i = 0; i < names.size(); ++i) { | 287 for (size_t i = 0; i < names.size(); ++i) { |
| 286 VerifyPref(observed_dict, names[i], values[i], controlledBy, disabled, | 288 VerifyPref(observed_dict, names[i], values[i], controlledBy, disabled, |
| 287 uncommitted); | 289 uncommitted); |
| 288 } | 290 } |
| 289 } | 291 } |
| 290 | 292 |
| 291 void PreferencesBrowserTest::ExpectNoCommit(const std::string& name) { | 293 void PreferencesBrowserTest::ExpectNoCommit(const std::string& name) { |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 observed_json = &temp_observed_json; | 341 observed_json = &temp_observed_json; |
| 340 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 342 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 341 render_view_host_, javascript.str(), observed_json)); | 343 render_view_host_, javascript.str(), observed_json)); |
| 342 } | 344 } |
| 343 | 345 |
| 344 void PreferencesBrowserTest::SetPref(const std::string& name, | 346 void PreferencesBrowserTest::SetPref(const std::string& name, |
| 345 const std::string& type, | 347 const std::string& type, |
| 346 const base::Value* value, | 348 const base::Value* value, |
| 347 bool commit, | 349 bool commit, |
| 348 std::string* observed_json) { | 350 std::string* observed_json) { |
| 349 scoped_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit)); | 351 std::unique_ptr<base::Value> commit_ptr(new base::FundamentalValue(commit)); |
| 350 std::stringstream javascript; | 352 std::stringstream javascript; |
| 351 javascript << "testEnv.runAndReply(function() {" | 353 javascript << "testEnv.runAndReply(function() {" |
| 352 << " Preferences.set" << type << "Pref(" | 354 << " Preferences.set" << type << "Pref(" |
| 353 << " '" << name << "'," | 355 << " '" << name << "'," |
| 354 << " " << *value << "," | 356 << " " << *value << "," |
| 355 << " " << *commit_ptr << ");" | 357 << " " << *commit_ptr << ");" |
| 356 << "});"; | 358 << "});"; |
| 357 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 359 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
| 358 render_view_host_, javascript.str(), observed_json)); | 360 render_view_host_, javascript.str(), observed_json)); |
| 359 } | 361 } |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 VerifyObservedPrefs(observed_json, pref_names_, | 714 VerifyObservedPrefs(observed_json, pref_names_, |
| 713 decorated_non_default_values.get(), | 715 decorated_non_default_values.get(), |
| 714 std::string(), false, false); | 716 std::string(), false, false); |
| 715 } | 717 } |
| 716 | 718 |
| 717 class ManagedPreferencesBrowserTest : public PreferencesBrowserTest { | 719 class ManagedPreferencesBrowserTest : public PreferencesBrowserTest { |
| 718 protected: | 720 protected: |
| 719 // PreferencesBrowserTest implementation: | 721 // PreferencesBrowserTest implementation: |
| 720 void SetUpInProcessBrowserTestFixture() override { | 722 void SetUpInProcessBrowserTestFixture() override { |
| 721 // Set up fake install attributes. | 723 // Set up fake install attributes. |
| 722 scoped_ptr<policy::StubEnterpriseInstallAttributes> attributes( | 724 std::unique_ptr<policy::StubEnterpriseInstallAttributes> attributes( |
| 723 new policy::StubEnterpriseInstallAttributes()); | 725 new policy::StubEnterpriseInstallAttributes()); |
| 724 attributes->SetDomain("example.com"); | 726 attributes->SetDomain("example.com"); |
| 725 attributes->SetRegistrationUser("user@example.com"); | 727 attributes->SetRegistrationUser("user@example.com"); |
| 726 policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting( | 728 policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting( |
| 727 attributes.release()); | 729 attributes.release()); |
| 728 | 730 |
| 729 PreferencesBrowserTest::SetUpInProcessBrowserTestFixture(); | 731 PreferencesBrowserTest::SetUpInProcessBrowserTestFixture(); |
| 730 } | 732 } |
| 731 }; | 733 }; |
| 732 | 734 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 const char* kUserProfilePath = "user_profile"; | 814 const char* kUserProfilePath = "user_profile"; |
| 813 | 815 |
| 814 } // namespace | 816 } // namespace |
| 815 | 817 |
| 816 class ProxyPreferencesBrowserTest : public PreferencesBrowserTest { | 818 class ProxyPreferencesBrowserTest : public PreferencesBrowserTest { |
| 817 public: | 819 public: |
| 818 void SetUpOnMainThread() override { | 820 void SetUpOnMainThread() override { |
| 819 SetupNetworkEnvironment(); | 821 SetupNetworkEnvironment(); |
| 820 content::RunAllPendingInMessageLoop(); | 822 content::RunAllPendingInMessageLoop(); |
| 821 | 823 |
| 822 scoped_ptr<base::DictionaryValue> proxy_config_dict( | 824 std::unique_ptr<base::DictionaryValue> proxy_config_dict( |
| 823 ProxyConfigDictionary::CreateFixedServers("127.0.0.1:8080", | 825 ProxyConfigDictionary::CreateFixedServers("127.0.0.1:8080", |
| 824 "*.google.com, 1.2.3.4:22")); | 826 "*.google.com, 1.2.3.4:22")); |
| 825 | 827 |
| 826 ProxyConfigDictionary proxy_config(proxy_config_dict.get()); | 828 ProxyConfigDictionary proxy_config(proxy_config_dict.get()); |
| 827 | 829 |
| 828 const chromeos::NetworkState* network = GetDefaultNetwork(); | 830 const chromeos::NetworkState* network = GetDefaultNetwork(); |
| 829 ASSERT_TRUE(network); | 831 ASSERT_TRUE(network); |
| 830 chromeos::proxy_config::SetProxyConfigForNetwork(proxy_config, *network); | 832 chromeos::proxy_config::SetProxyConfigForNetwork(proxy_config, *network); |
| 831 | 833 |
| 832 std::string url = base::StringPrintf("%s?network=%s", | 834 std::string url = base::StringPrintf("%s?network=%s", |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 913 | 915 |
| 914 std::string observed_json; | 916 std::string observed_json; |
| 915 SetPref(name, type, &value, true, &observed_json); | 917 SetPref(name, type, &value, true, &observed_json); |
| 916 } | 918 } |
| 917 | 919 |
| 918 void VerifyCurrentProxyServer(const std::string& expected_server, | 920 void VerifyCurrentProxyServer(const std::string& expected_server, |
| 919 onc::ONCSource expected_source) { | 921 onc::ONCSource expected_source) { |
| 920 const chromeos::NetworkState* network = GetDefaultNetwork(); | 922 const chromeos::NetworkState* network = GetDefaultNetwork(); |
| 921 ASSERT_TRUE(network); | 923 ASSERT_TRUE(network); |
| 922 onc::ONCSource actual_source; | 924 onc::ONCSource actual_source; |
| 923 scoped_ptr<ProxyConfigDictionary> proxy_dict = | 925 std::unique_ptr<ProxyConfigDictionary> proxy_dict = |
| 924 chromeos::proxy_config::GetProxyConfigForNetwork( | 926 chromeos::proxy_config::GetProxyConfigForNetwork( |
| 925 pref_service_, | 927 pref_service_, g_browser_process->local_state(), *network, |
| 926 g_browser_process->local_state(), | |
| 927 *network, | |
| 928 &actual_source); | 928 &actual_source); |
| 929 ASSERT_TRUE(proxy_dict); | 929 ASSERT_TRUE(proxy_dict); |
| 930 std::string actual_proxy_server; | 930 std::string actual_proxy_server; |
| 931 EXPECT_TRUE(proxy_dict->GetProxyServer(&actual_proxy_server)); | 931 EXPECT_TRUE(proxy_dict->GetProxyServer(&actual_proxy_server)); |
| 932 EXPECT_EQ(expected_server, actual_proxy_server); | 932 EXPECT_EQ(expected_server, actual_proxy_server); |
| 933 EXPECT_EQ(expected_source, actual_source); | 933 EXPECT_EQ(expected_source, actual_source); |
| 934 } | 934 } |
| 935 }; | 935 }; |
| 936 | 936 |
| 937 // Verifies that proxy settings are correctly pushed to JavaScript during | 937 // Verifies that proxy settings are correctly pushed to JavaScript during |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1082 SetProxyPref(chromeos::kProxyHttpsPort, base::FundamentalValue(2)); | 1082 SetProxyPref(chromeos::kProxyHttpsPort, base::FundamentalValue(2)); |
| 1083 SetProxyPref(chromeos::kProxyFtpPort, base::FundamentalValue(3)); | 1083 SetProxyPref(chromeos::kProxyFtpPort, base::FundamentalValue(3)); |
| 1084 SetProxyPref(chromeos::kProxySocksPort, base::FundamentalValue(4)); | 1084 SetProxyPref(chromeos::kProxySocksPort, base::FundamentalValue(4)); |
| 1085 | 1085 |
| 1086 VerifyCurrentProxyServer( | 1086 VerifyCurrentProxyServer( |
| 1087 "http=a.com:1;https=4.3.2.1:2;ftp=c.com:3;socks=socks4://d.com:4", | 1087 "http=a.com:1;https=4.3.2.1:2;ftp=c.com:3;socks=socks4://d.com:4", |
| 1088 onc::ONC_SOURCE_NONE); | 1088 onc::ONC_SOURCE_NONE); |
| 1089 } | 1089 } |
| 1090 | 1090 |
| 1091 #endif | 1091 #endif |
| OLD | NEW |