| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/profile_resetter/profile_resetter.h" | 5 #include "chrome/browser/profile_resetter/profile_resetter.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> |
| 8 | 9 |
| 9 #include "base/json/json_string_value_serializer.h" | 10 #include "base/json/json_string_value_serializer.h" |
| 10 #include "base/macros.h" | 11 #include "base/macros.h" |
| 11 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 14 #include "base/test/scoped_path_override.h" | 15 #include "base/test/scoped_path_override.h" |
| 15 #include "build/build_config.h" | 16 #include "build/build_config.h" |
| 16 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 17 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 17 #include "chrome/browser/extensions/extension_service.h" | 18 #include "chrome/browser/extensions/extension_service.h" |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 EXPECT_CALL(*this, Callback()); | 257 EXPECT_CALL(*this, Callback()); |
| 257 scoped_ptr<BrandcodeConfigFetcher> fetcher( | 258 scoped_ptr<BrandcodeConfigFetcher> fetcher( |
| 258 new BrandcodeConfigFetcher(base::Bind(&ConfigParserTest::Callback, | 259 new BrandcodeConfigFetcher(base::Bind(&ConfigParserTest::Callback, |
| 259 base::Unretained(this)), | 260 base::Unretained(this)), |
| 260 url, | 261 url, |
| 261 "ABCD")); | 262 "ABCD")); |
| 262 base::MessageLoop::current()->RunUntilIdle(); | 263 base::MessageLoop::current()->RunUntilIdle(); |
| 263 EXPECT_FALSE(fetcher->IsActive()); | 264 EXPECT_FALSE(fetcher->IsActive()); |
| 264 // Look for the brand code in the request. | 265 // Look for the brand code in the request. |
| 265 EXPECT_NE(std::string::npos, request_listener_.upload_data.find("ABCD")); | 266 EXPECT_NE(std::string::npos, request_listener_.upload_data.find("ABCD")); |
| 266 return fetcher.Pass(); | 267 return fetcher; |
| 267 } | 268 } |
| 268 | 269 |
| 269 scoped_ptr<net::FakeURLFetcher> ConfigParserTest::CreateFakeURLFetcher( | 270 scoped_ptr<net::FakeURLFetcher> ConfigParserTest::CreateFakeURLFetcher( |
| 270 const GURL& url, | 271 const GURL& url, |
| 271 net::URLFetcherDelegate* fetcher_delegate, | 272 net::URLFetcherDelegate* fetcher_delegate, |
| 272 const std::string& response_data, | 273 const std::string& response_data, |
| 273 net::HttpStatusCode response_code, | 274 net::HttpStatusCode response_code, |
| 274 net::URLRequestStatus::Status status) { | 275 net::URLRequestStatus::Status status) { |
| 275 request_listener_.real_delegate = fetcher_delegate; | 276 request_listener_.real_delegate = fetcher_delegate; |
| 276 scoped_ptr<net::FakeURLFetcher> fetcher( | 277 scoped_ptr<net::FakeURLFetcher> fetcher( |
| 277 new net::FakeURLFetcher( | 278 new net::FakeURLFetcher( |
| 278 url, &request_listener_, response_data, response_code, status)); | 279 url, &request_listener_, response_data, response_code, status)); |
| 279 scoped_refptr<net::HttpResponseHeaders> download_headers = | 280 scoped_refptr<net::HttpResponseHeaders> download_headers = |
| 280 new net::HttpResponseHeaders(""); | 281 new net::HttpResponseHeaders(""); |
| 281 download_headers->AddHeader("Content-Type: text/xml"); | 282 download_headers->AddHeader("Content-Type: text/xml"); |
| 282 fetcher->set_response_headers(download_headers); | 283 fetcher->set_response_headers(download_headers); |
| 283 return fetcher.Pass(); | 284 return fetcher; |
| 284 } | 285 } |
| 285 | 286 |
| 286 // A helper class to create/delete/check a Chrome desktop shortcut on Windows. | 287 // A helper class to create/delete/check a Chrome desktop shortcut on Windows. |
| 287 class ShortcutHandler { | 288 class ShortcutHandler { |
| 288 public: | 289 public: |
| 289 ShortcutHandler(); | 290 ShortcutHandler(); |
| 290 ~ShortcutHandler(); | 291 ~ShortcutHandler(); |
| 291 | 292 |
| 292 static bool IsSupported(); | 293 static bool IsSupported(); |
| 293 ShortcutCommand CreateWithArguments(const base::string16& name, | 294 ShortcutCommand CreateWithArguments(const base::string16& name, |
| (...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1030 report->enabled_extensions_size() > 0); | 1031 report->enabled_extensions_size() > 0); |
| 1031 EXPECT_EQ(!!(field_mask & ResettableSettingsSnapshot::SHORTCUTS) && | 1032 EXPECT_EQ(!!(field_mask & ResettableSettingsSnapshot::SHORTCUTS) && |
| 1032 ShortcutHandler::IsSupported(), | 1033 ShortcutHandler::IsSupported(), |
| 1033 report->shortcuts_size() > 0); | 1034 report->shortcuts_size() > 0); |
| 1034 } | 1035 } |
| 1035 } | 1036 } |
| 1036 | 1037 |
| 1037 struct FeedbackCapture { | 1038 struct FeedbackCapture { |
| 1038 void SetFeedback(Profile* profile, | 1039 void SetFeedback(Profile* profile, |
| 1039 const ResettableSettingsSnapshot& snapshot) { | 1040 const ResettableSettingsSnapshot& snapshot) { |
| 1040 list_ = GetReadableFeedbackForSnapshot(profile, snapshot).Pass(); | 1041 list_ = GetReadableFeedbackForSnapshot(profile, snapshot); |
| 1041 OnUpdatedList(); | 1042 OnUpdatedList(); |
| 1042 } | 1043 } |
| 1043 | 1044 |
| 1044 void Fail() { | 1045 void Fail() { |
| 1045 ADD_FAILURE() << "This method shouldn't be called."; | 1046 ADD_FAILURE() << "This method shouldn't be called."; |
| 1046 } | 1047 } |
| 1047 | 1048 |
| 1048 MOCK_METHOD0(OnUpdatedList, void(void)); | 1049 MOCK_METHOD0(OnUpdatedList, void(void)); |
| 1049 | 1050 |
| 1050 scoped_ptr<base::ListValue> list_; | 1051 scoped_ptr<base::ListValue> list_; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1083 ResettableSettingsSnapshot snapshot(profile()); | 1084 ResettableSettingsSnapshot snapshot(profile()); |
| 1084 snapshot.RequestShortcuts(base::Bind(&FeedbackCapture::SetFeedback, | 1085 snapshot.RequestShortcuts(base::Bind(&FeedbackCapture::SetFeedback, |
| 1085 base::Unretained(&capture), | 1086 base::Unretained(&capture), |
| 1086 profile(), | 1087 profile(), |
| 1087 base::ConstRef(snapshot))); | 1088 base::ConstRef(snapshot))); |
| 1088 // Let it enumerate shortcuts on the FILE thread. | 1089 // Let it enumerate shortcuts on the FILE thread. |
| 1089 base::MessageLoop::current()->RunUntilIdle(); | 1090 base::MessageLoop::current()->RunUntilIdle(); |
| 1090 ::testing::Mock::VerifyAndClearExpectations(&capture); | 1091 ::testing::Mock::VerifyAndClearExpectations(&capture); |
| 1091 // The homepage and the startup page are in punycode. They are unreadable. | 1092 // The homepage and the startup page are in punycode. They are unreadable. |
| 1092 // Trying to find the extension name. | 1093 // Trying to find the extension name. |
| 1093 scoped_ptr<base::ListValue> list = capture.list_.Pass(); | 1094 scoped_ptr<base::ListValue> list = std::move(capture.list_); |
| 1094 ASSERT_TRUE(list); | 1095 ASSERT_TRUE(list); |
| 1095 bool checked_extensions = false; | 1096 bool checked_extensions = false; |
| 1096 bool checked_shortcuts = false; | 1097 bool checked_shortcuts = false; |
| 1097 for (size_t i = 0; i < list->GetSize(); ++i) { | 1098 for (size_t i = 0; i < list->GetSize(); ++i) { |
| 1098 base::DictionaryValue* dict = NULL; | 1099 base::DictionaryValue* dict = NULL; |
| 1099 ASSERT_TRUE(list->GetDictionary(i, &dict)); | 1100 ASSERT_TRUE(list->GetDictionary(i, &dict)); |
| 1100 std::string value; | 1101 std::string value; |
| 1101 ASSERT_TRUE(dict->GetString("key", &value)); | 1102 ASSERT_TRUE(dict->GetString("key", &value)); |
| 1102 if (value == "Extensions") { | 1103 if (value == "Extensions") { |
| 1103 base::string16 extensions; | 1104 base::string16 extensions; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1122 new ResettableSettingsSnapshot(profile())); | 1123 new ResettableSettingsSnapshot(profile())); |
| 1123 deleted_snapshot->RequestShortcuts(base::Bind(&FeedbackCapture::Fail, | 1124 deleted_snapshot->RequestShortcuts(base::Bind(&FeedbackCapture::Fail, |
| 1124 base::Unretained(&capture))); | 1125 base::Unretained(&capture))); |
| 1125 deleted_snapshot.reset(); | 1126 deleted_snapshot.reset(); |
| 1126 // Running remaining tasks shouldn't trigger the callback to be called as | 1127 // Running remaining tasks shouldn't trigger the callback to be called as |
| 1127 // |deleted_snapshot| was deleted before it could run. | 1128 // |deleted_snapshot| was deleted before it could run. |
| 1128 base::MessageLoop::current()->RunUntilIdle(); | 1129 base::MessageLoop::current()->RunUntilIdle(); |
| 1129 } | 1130 } |
| 1130 | 1131 |
| 1131 } // namespace | 1132 } // namespace |
| OLD | NEW |