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

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

Issue 644413003: Replace MockStatisticsProvider with FakeStatisticsProvider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add clarifying comments. Created 6 years, 2 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/oobe_localization_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/customization_document.h" 5 #include "chrome/browser/chromeos/customization_document.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/prefs/testing_pref_service.h" 8 #include "base/prefs/testing_pref_service.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
11 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" 11 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
12 #include "chrome/browser/extensions/external_provider_impl.h" 12 #include "chrome/browser/extensions/external_provider_impl.h"
13 #include "chrome/browser/prefs/browser_prefs.h" 13 #include "chrome/browser/prefs/browser_prefs.h"
14 #include "chrome/browser/prefs/pref_service_mock_factory.h" 14 #include "chrome/browser/prefs/pref_service_mock_factory.h"
15 #include "chrome/browser/prefs/pref_service_syncable.h" 15 #include "chrome/browser/prefs/pref_service_syncable.h"
16 #include "chrome/browser/ui/app_list/app_list_syncable_service.h" 16 #include "chrome/browser/ui/app_list/app_list_syncable_service.h"
17 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" 17 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h"
18 #include "chrome/test/base/testing_browser_process.h" 18 #include "chrome/test/base/testing_browser_process.h"
19 #include "chrome/test/base/testing_profile.h" 19 #include "chrome/test/base/testing_profile.h"
20 #include "chromeos/dbus/dbus_thread_manager.h" 20 #include "chromeos/dbus/dbus_thread_manager.h"
21 #include "chromeos/network/network_handler.h" 21 #include "chromeos/network/network_handler.h"
22 #include "chromeos/network/network_state.h" 22 #include "chromeos/network/network_state.h"
23 #include "chromeos/network/network_state_handler.h" 23 #include "chromeos/network/network_state_handler.h"
24 #include "chromeos/system/mock_statistics_provider.h" 24 #include "chromeos/system/fake_statistics_provider.h"
25 #include "components/pref_registry/pref_registry_syncable.h" 25 #include "components/pref_registry/pref_registry_syncable.h"
26 #include "content/public/test/test_browser_thread_bundle.h" 26 #include "content/public/test/test_browser_thread_bundle.h"
27 #include "extensions/common/extension.h" 27 #include "extensions/common/extension.h"
28 #include "extensions/common/manifest.h" 28 #include "extensions/common/manifest.h"
29 #include "net/http/http_response_headers.h" 29 #include "net/http/http_response_headers.h"
30 #include "net/http/http_status_code.h" 30 #include "net/http/http_status_code.h"
31 #include "net/url_request/test_url_fetcher_factory.h" 31 #include "net/url_request/test_url_fetcher_factory.h"
32 #include "net/url_request/url_request_status.h" 32 #include "net/url_request/url_request_status.h"
33 #include "testing/gmock/include/gmock/gmock.h" 33 #include "testing/gmock/include/gmock/gmock.h"
34 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 " }\n" 94 " }\n"
95 " }\n" 95 " }\n"
96 "}"; 96 "}";
97 97
98 const char kDummyCustomizationID[] = "test-dummy"; 98 const char kDummyCustomizationID[] = "test-dummy";
99 99
100 } // anonymous namespace 100 } // anonymous namespace
101 101
102 namespace chromeos { 102 namespace chromeos {
103 103
104 using ::testing::_;
105 using ::testing::DoAll; 104 using ::testing::DoAll;
106 using ::testing::NotNull; 105 using ::testing::NotNull;
107 using ::testing::Return; 106 using ::testing::Return;
108 using ::testing::SetArgumentPointee; 107 using ::testing::SetArgumentPointee;
108 using ::testing::_;
109 109
110 TEST(StartupCustomizationDocumentTest, Basic) { 110 TEST(StartupCustomizationDocumentTest, Basic) {
111 system::MockStatisticsProvider mock_statistics_provider; 111 system::ScopedFakeStatisticsProvider fake_statistics_provider;
112 EXPECT_CALL(mock_statistics_provider, GetMachineStatistic(_, NotNull())) 112
113 .WillRepeatedly(Return(false)); 113 // hardware_class selects the appropriate entry in hwid_map in the manifest.
114 EXPECT_CALL(mock_statistics_provider, 114 fake_statistics_provider.SetMachineStatistic("hardware_class", "Mario 12345");
115 GetMachineStatistic(std::string("hardware_class"), NotNull())) 115 StartupCustomizationDocument customization(&fake_statistics_provider,
116 .WillOnce(DoAll(SetArgumentPointee<1>(std::string("Mario 12345")),
117 Return(true)));
118 StartupCustomizationDocument customization(&mock_statistics_provider,
119 kGoodStartupManifest); 116 kGoodStartupManifest);
120 EXPECT_EQ("ru-RU", customization.initial_locale()); 117 EXPECT_EQ("ru-RU", customization.initial_locale());
121 EXPECT_EQ("Europe/Moscow", customization.initial_timezone()); 118 EXPECT_EQ("Europe/Moscow", customization.initial_timezone());
122 EXPECT_EQ("xkb:ru::rus", customization.keyboard_layout()); 119 EXPECT_EQ("xkb:ru::rus", customization.keyboard_layout());
123 120
124 EXPECT_EQ("file:///opt/oem/eula/en-US/eula.html", 121 EXPECT_EQ("file:///opt/oem/eula/en-US/eula.html",
125 customization.GetEULAPage("en-US")); 122 customization.GetEULAPage("en-US"));
126 EXPECT_EQ("file:///opt/oem/eula/ru-RU/eula.html", 123 EXPECT_EQ("file:///opt/oem/eula/ru-RU/eula.html",
127 customization.GetEULAPage("ru-RU")); 124 customization.GetEULAPage("ru-RU"));
128 EXPECT_EQ("file:///opt/oem/eula/en/eula.html", 125 EXPECT_EQ("file:///opt/oem/eula/en/eula.html",
129 customization.GetEULAPage("ja")); 126 customization.GetEULAPage("ja"));
130 } 127 }
131 128
132 TEST(StartupCustomizationDocumentTest, VPD) { 129 TEST(StartupCustomizationDocumentTest, VPD) {
133 system::MockStatisticsProvider mock_statistics_provider; 130 system::ScopedFakeStatisticsProvider fake_statistics_provider;
134 EXPECT_CALL(mock_statistics_provider, 131
135 GetMachineStatistic(std::string("hardware_class"), NotNull())) 132 // hardware_class selects the appropriate entry in hwid_map in the manifest.
136 .WillOnce(DoAll(SetArgumentPointee<1>(std::string("Mario 12345")), 133 fake_statistics_provider.SetMachineStatistic("hardware_class", "Mario 12345");
137 Return(true))); 134 fake_statistics_provider.SetMachineStatistic("initial_locale", "ja");
138 EXPECT_CALL(mock_statistics_provider, 135 fake_statistics_provider.SetMachineStatistic("initial_timezone",
139 GetMachineStatistic(std::string("initial_locale"), NotNull())) 136 "Asia/Tokyo");
140 .WillOnce(DoAll(SetArgumentPointee<1>(std::string("ja")), 137 fake_statistics_provider.SetMachineStatistic("keyboard_layout", "mozc-jp");
141 Return(true))); 138 StartupCustomizationDocument customization(&fake_statistics_provider,
142 EXPECT_CALL(mock_statistics_provider,
143 GetMachineStatistic(std::string("initial_timezone"), NotNull()))
144 .WillOnce(DoAll(SetArgumentPointee<1>(std::string("Asia/Tokyo")),
145 Return(true)));
146 EXPECT_CALL(mock_statistics_provider,
147 GetMachineStatistic(std::string("keyboard_layout"), NotNull()))
148 .WillOnce(DoAll(SetArgumentPointee<1>(std::string("mozc-jp")),
149 Return(true)));
150 StartupCustomizationDocument customization(&mock_statistics_provider,
151 kGoodStartupManifest); 139 kGoodStartupManifest);
152 EXPECT_TRUE(customization.IsReady()); 140 EXPECT_TRUE(customization.IsReady());
153 EXPECT_EQ("ja", customization.initial_locale()); 141 EXPECT_EQ("ja", customization.initial_locale());
154 EXPECT_EQ("Asia/Tokyo", customization.initial_timezone()); 142 EXPECT_EQ("Asia/Tokyo", customization.initial_timezone());
155 EXPECT_EQ("mozc-jp", customization.keyboard_layout()); 143 EXPECT_EQ("mozc-jp", customization.keyboard_layout());
156 } 144 }
157 145
158 TEST(StartupCustomizationDocumentTest, BadManifest) { 146 TEST(StartupCustomizationDocumentTest, BadManifest) {
159 system::MockStatisticsProvider mock_statistics_provider; 147 system::ScopedFakeStatisticsProvider fake_statistics_provider;
160 StartupCustomizationDocument customization(&mock_statistics_provider, 148 StartupCustomizationDocument customization(&fake_statistics_provider,
161 kBadManifest); 149 kBadManifest);
162 EXPECT_FALSE(customization.IsReady()); 150 EXPECT_FALSE(customization.IsReady());
163 } 151 }
164 152
165 class TestURLFetcherCallback { 153 class TestURLFetcherCallback {
166 public: 154 public:
167 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher( 155 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher(
168 const GURL& url, 156 const GURL& url,
169 net::URLFetcherDelegate* d, 157 net::URLFetcherDelegate* d,
170 const std::string& response_data, 158 const std::string& response_data,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 ServicesCustomizationDocumentTest() 202 ServicesCustomizationDocumentTest()
215 : factory_(NULL, 203 : factory_(NULL,
216 base::Bind(&TestURLFetcherCallback::CreateURLFetcher, 204 base::Bind(&TestURLFetcherCallback::CreateURLFetcher,
217 base::Unretained(&url_callback_))) { 205 base::Unretained(&url_callback_))) {
218 } 206 }
219 207
220 // testing::Test: 208 // testing::Test:
221 virtual void SetUp() override { 209 virtual void SetUp() override {
222 ServicesCustomizationDocument::InitializeForTesting(); 210 ServicesCustomizationDocument::InitializeForTesting();
223 211
224 EXPECT_CALL(mock_statistics_provider_, GetMachineStatistic(_, NotNull()))
225 .WillRepeatedly(Return(false));
226 chromeos::system::StatisticsProvider::SetTestProvider(
227 &mock_statistics_provider_);
228
229 DBusThreadManager::Initialize(); 212 DBusThreadManager::Initialize();
230 NetworkHandler::Initialize(); 213 NetworkHandler::Initialize();
231 RunUntilIdle(); 214 RunUntilIdle();
232 const NetworkState* default_network = 215 const NetworkState* default_network =
233 NetworkHandler::Get()->network_state_handler()->DefaultNetwork(); 216 NetworkHandler::Get()->network_state_handler()->DefaultNetwork();
234 std::string default_network_path = 217 std::string default_network_path =
235 default_network ? default_network->path() : ""; 218 default_network ? default_network->path() : "";
236 219
237 NetworkPortalDetector::InitializeForTesting(&network_portal_detector_); 220 NetworkPortalDetector::InitializeForTesting(&network_portal_detector_);
238 NetworkPortalDetector::CaptivePortalState online_state; 221 NetworkPortalDetector::CaptivePortalState online_state;
239 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; 222 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE;
240 online_state.response_code = 204; 223 online_state.response_code = 204;
241 std::string guid = 224 std::string guid =
242 default_network ? default_network->guid() : std::string(); 225 default_network ? default_network->guid() : std::string();
243 network_portal_detector_.SetDefaultNetworkForTesting(guid); 226 network_portal_detector_.SetDefaultNetworkForTesting(guid);
244 if (!guid.empty()) { 227 if (!guid.empty()) {
245 network_portal_detector_.SetDetectionResultsForTesting( 228 network_portal_detector_.SetDetectionResultsForTesting(
246 guid, online_state); 229 guid, online_state);
247 } 230 }
248 231
249 TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_); 232 TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_);
250 ServicesCustomizationDocument::RegisterPrefs(local_state_.registry()); 233 ServicesCustomizationDocument::RegisterPrefs(local_state_.registry());
251 } 234 }
252 235
253 virtual void TearDown() override { 236 virtual void TearDown() override {
254 TestingBrowserProcess::GetGlobal()->SetLocalState(NULL); 237 TestingBrowserProcess::GetGlobal()->SetLocalState(NULL);
255 NetworkHandler::Shutdown(); 238 NetworkHandler::Shutdown();
256 DBusThreadManager::Shutdown(); 239 DBusThreadManager::Shutdown();
257 NetworkPortalDetector::InitializeForTesting(NULL); 240 NetworkPortalDetector::InitializeForTesting(NULL);
258 chromeos::system::StatisticsProvider::SetTestProvider(NULL);
259 241
260 ServicesCustomizationDocument::ShutdownForTesting(); 242 ServicesCustomizationDocument::ShutdownForTesting();
261 } 243 }
262 244
263 void RunUntilIdle() { 245 void RunUntilIdle() {
264 base::RunLoop().RunUntilIdle(); 246 base::RunLoop().RunUntilIdle();
265 } 247 }
266 248
267 void AddCustomizationIdToVp(const std::string& id) { 249 void AddCustomizationIdToVp(const std::string& id) {
268 EXPECT_CALL(mock_statistics_provider_, 250 fake_statistics_provider_.SetMachineStatistic(system::kCustomizationIdKey,
269 GetMachineStatistic(system::kCustomizationIdKey, NotNull())) 251 id);
270 .WillOnce(DoAll(SetArgumentPointee<1>(id),
271 Return(true)));
272 } 252 }
273 253
274 void AddExpectedManifest(const std::string& id, 254 void AddExpectedManifest(const std::string& id,
275 const std::string& manifest) { 255 const std::string& manifest) {
276 GURL url(base::StringPrintf(ServicesCustomizationDocument::kManifestUrl, 256 GURL url(base::StringPrintf(ServicesCustomizationDocument::kManifestUrl,
277 id.c_str())); 257 id.c_str()));
278 factory_.SetFakeResponse(url, 258 factory_.SetFakeResponse(url,
279 manifest, 259 manifest,
280 net::HTTP_OK, 260 net::HTTP_OK,
281 net::URLRequestStatus::SUCCESS); 261 net::URLRequestStatus::SUCCESS);
(...skipping 20 matching lines...) Expand all
302 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( 282 scoped_refptr<user_prefs::PrefRegistrySyncable> registry(
303 new user_prefs::PrefRegistrySyncable); 283 new user_prefs::PrefRegistrySyncable);
304 scoped_ptr<PrefServiceSyncable> prefs( 284 scoped_ptr<PrefServiceSyncable> prefs(
305 factory.CreateSyncable(registry.get())); 285 factory.CreateSyncable(registry.get()));
306 chrome::RegisterUserProfilePrefs(registry.get()); 286 chrome::RegisterUserProfilePrefs(registry.get());
307 profile_builder.SetPrefService(prefs.Pass()); 287 profile_builder.SetPrefService(prefs.Pass());
308 return profile_builder.Build(); 288 return profile_builder.Build();
309 } 289 }
310 290
311 private: 291 private:
312 system::MockStatisticsProvider mock_statistics_provider_; 292 system::ScopedFakeStatisticsProvider fake_statistics_provider_;
313 content::TestBrowserThreadBundle thread_bundle_; 293 content::TestBrowserThreadBundle thread_bundle_;
314 TestingPrefServiceSimple local_state_; 294 TestingPrefServiceSimple local_state_;
315 TestURLFetcherCallback url_callback_; 295 TestURLFetcherCallback url_callback_;
316 net::FakeURLFetcherFactory factory_; 296 net::FakeURLFetcherFactory factory_;
317 NetworkPortalDetectorTestImpl network_portal_detector_; 297 NetworkPortalDetectorTestImpl network_portal_detector_;
318 }; 298 };
319 299
320 TEST_F(ServicesCustomizationDocumentTest, Basic) { 300 TEST_F(ServicesCustomizationDocumentTest, Basic) {
321 AddCustomizationIdToVp(kDummyCustomizationID); 301 AddCustomizationIdToVp(kDummyCustomizationID);
322 AddExpectedManifest(kDummyCustomizationID, kGoodServicesManifest); 302 AddExpectedManifest(kDummyCustomizationID, kGoodServicesManifest);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _, _, _, _, _)) 456 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _, _, _, _, _))
477 .Times(0); 457 .Times(0);
478 EXPECT_CALL(visitor, OnExternalProviderReady(_)) 458 EXPECT_CALL(visitor, OnExternalProviderReady(_))
479 .Times(1); 459 .Times(1);
480 460
481 RunUntilIdle(); 461 RunUntilIdle();
482 EXPECT_TRUE(doc->IsReady()); 462 EXPECT_TRUE(doc->IsReady());
483 } 463 }
484 464
485 } // namespace chromeos 465 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/login/oobe_localization_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698