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

Side by Side Diff: components/variations/service/variations_service_unittest.cc

Issue 1917673002: Convert //components/[u-z]* from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Build fix Created 4 years, 7 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
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 "components/variations/service/variations_service.h" 5 #include "components/variations/service/variations_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8
8 #include <utility> 9 #include <utility>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/base64.h" 12 #include "base/base64.h"
12 #include "base/feature_list.h" 13 #include "base/feature_list.h"
13 #include "base/json/json_string_value_serializer.h" 14 #include "base/json/json_string_value_serializer.h"
14 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/memory/ptr_util.h"
15 #include "base/message_loop/message_loop.h" 17 #include "base/message_loop/message_loop.h"
16 #include "base/sha1.h" 18 #include "base/sha1.h"
17 #include "base/strings/string_number_conversions.h" 19 #include "base/strings/string_number_conversions.h"
18 #include "base/strings/string_split.h" 20 #include "base/strings/string_split.h"
19 #include "base/strings/string_util.h" 21 #include "base/strings/string_util.h"
20 #include "base/test/histogram_tester.h" 22 #include "base/test/histogram_tester.h"
21 #include "base/version.h" 23 #include "base/version.h"
22 #include "components/prefs/testing_pref_service.h" 24 #include "components/prefs/testing_pref_service.h"
23 #include "components/variations/pref_names.h" 25 #include "components/variations/pref_names.h"
24 #include "components/variations/proto/study.pb.h" 26 #include "components/variations/proto/study.pb.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 private: 72 private:
71 std::string restrict_parameter_; 73 std::string restrict_parameter_;
72 74
73 DISALLOW_COPY_AND_ASSIGN(TestVariationsServiceClient); 75 DISALLOW_COPY_AND_ASSIGN(TestVariationsServiceClient);
74 }; 76 };
75 77
76 // A test class used to validate expected functionality in VariationsService. 78 // A test class used to validate expected functionality in VariationsService.
77 class TestVariationsService : public VariationsService { 79 class TestVariationsService : public VariationsService {
78 public: 80 public:
79 TestVariationsService( 81 TestVariationsService(
80 scoped_ptr<web_resource::TestRequestAllowedNotifier> test_notifier, 82 std::unique_ptr<web_resource::TestRequestAllowedNotifier> test_notifier,
81 PrefService* local_state) 83 PrefService* local_state)
82 : VariationsService(make_scoped_ptr(new TestVariationsServiceClient()), 84 : VariationsService(base::WrapUnique(new TestVariationsServiceClient()),
83 std::move(test_notifier), 85 std::move(test_notifier),
84 local_state, 86 local_state,
85 NULL, 87 NULL,
86 UIStringOverrider()), 88 UIStringOverrider()),
87 intercepts_fetch_(true), 89 intercepts_fetch_(true),
88 fetch_attempted_(false), 90 fetch_attempted_(false),
89 seed_stored_(false), 91 seed_stored_(false),
90 delta_compressed_seed_(false), 92 delta_compressed_seed_(false),
91 gzip_compressed_seed_(false) { 93 gzip_compressed_seed_(false) {
92 // Set this so StartRepeatedVariationsSeedFetch can be called in tests. 94 // Set this so StartRepeatedVariationsSeedFetch can be called in tests.
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 261
260 DISALLOW_COPY_AND_ASSIGN(VariationsServiceTest); 262 DISALLOW_COPY_AND_ASSIGN(VariationsServiceTest);
261 }; 263 };
262 264
263 TEST_F(VariationsServiceTest, CreateTrialsFromSeed) { 265 TEST_F(VariationsServiceTest, CreateTrialsFromSeed) {
264 TestingPrefServiceSimple prefs; 266 TestingPrefServiceSimple prefs;
265 VariationsService::RegisterPrefs(prefs.registry()); 267 VariationsService::RegisterPrefs(prefs.registry());
266 268
267 // Setup base::FeatureList. 269 // Setup base::FeatureList.
268 base::FeatureList::ClearInstanceForTesting(); 270 base::FeatureList::ClearInstanceForTesting();
269 base::FeatureList::SetInstance(make_scoped_ptr(new base::FeatureList())); 271 base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList()));
270 272
271 // Create a local base::FieldTrialList, to hold the field trials created in 273 // Create a local base::FieldTrialList, to hold the field trials created in
272 // this test. 274 // this test.
273 base::FieldTrialList field_trial_list(nullptr); 275 base::FieldTrialList field_trial_list(nullptr);
274 276
275 // Create a variations service. 277 // Create a variations service.
276 TestVariationsService service( 278 TestVariationsService service(
277 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 279 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
278 &prefs); 280 &prefs);
279 service.SetCreateTrialsFromSeedCalledForTesting(false); 281 service.SetCreateTrialsFromSeedCalledForTesting(false);
280 282
281 // Store a seed. 283 // Store a seed.
282 service.StoreSeed(SerializeSeed(CreateTestSeed()), std::string(), 284 service.StoreSeed(SerializeSeed(CreateTestSeed()), std::string(),
283 std::string(), base::Time::Now(), false, false); 285 std::string(), base::Time::Now(), false, false);
284 prefs.SetInt64(prefs::kVariationsLastFetchTime, 286 prefs.SetInt64(prefs::kVariationsLastFetchTime,
285 base::Time::Now().ToInternalValue()); 287 base::Time::Now().ToInternalValue());
286 288
287 // Check that field trials are created from the seed. Since the test study has 289 // Check that field trials are created from the seed. Since the test study has
288 // only 1 experiment with 100% probability weight, we must be part of it. 290 // only 1 experiment with 100% probability weight, we must be part of it.
289 EXPECT_TRUE(service.CreateTrialsFromSeed(base::FeatureList::GetInstance())); 291 EXPECT_TRUE(service.CreateTrialsFromSeed(base::FeatureList::GetInstance()));
290 EXPECT_EQ(base::FieldTrialList::FindFullName(kTestSeedStudyName), 292 EXPECT_EQ(base::FieldTrialList::FindFullName(kTestSeedStudyName),
291 kTestSeedExperimentName); 293 kTestSeedExperimentName);
292 } 294 }
293 295
294 TEST_F(VariationsServiceTest, CreateTrialsFromSeedNoLastFetchTime) { 296 TEST_F(VariationsServiceTest, CreateTrialsFromSeedNoLastFetchTime) {
295 TestingPrefServiceSimple prefs; 297 TestingPrefServiceSimple prefs;
296 VariationsService::RegisterPrefs(prefs.registry()); 298 VariationsService::RegisterPrefs(prefs.registry());
297 299
298 // Setup base::FeatureList. 300 // Setup base::FeatureList.
299 base::FeatureList::ClearInstanceForTesting(); 301 base::FeatureList::ClearInstanceForTesting();
300 base::FeatureList::SetInstance(make_scoped_ptr(new base::FeatureList())); 302 base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList()));
301 303
302 // Create a local base::FieldTrialList, to hold the field trials created in 304 // Create a local base::FieldTrialList, to hold the field trials created in
303 // this test. 305 // this test.
304 base::FieldTrialList field_trial_list(nullptr); 306 base::FieldTrialList field_trial_list(nullptr);
305 307
306 // Create a variations service 308 // Create a variations service
307 TestVariationsService service( 309 TestVariationsService service(
308 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 310 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
309 &prefs); 311 &prefs);
310 service.SetCreateTrialsFromSeedCalledForTesting(false); 312 service.SetCreateTrialsFromSeedCalledForTesting(false);
311 313
312 // Store a seed. To simulate a first run, |prefs::kVariationsLastFetchTime| 314 // Store a seed. To simulate a first run, |prefs::kVariationsLastFetchTime|
313 // is left empty. 315 // is left empty.
314 service.StoreSeed(SerializeSeed(CreateTestSeed()), std::string(), 316 service.StoreSeed(SerializeSeed(CreateTestSeed()), std::string(),
315 std::string(), base::Time::Now(), false, false); 317 std::string(), base::Time::Now(), false, false);
316 EXPECT_EQ(0, prefs.GetInt64(prefs::kVariationsLastFetchTime)); 318 EXPECT_EQ(0, prefs.GetInt64(prefs::kVariationsLastFetchTime));
317 319
318 // Check that field trials are created from the seed. Since the test study has 320 // Check that field trials are created from the seed. Since the test study has
319 // only 1 experiment with 100% probability weight, we must be part of it. 321 // only 1 experiment with 100% probability weight, we must be part of it.
320 EXPECT_TRUE(service.CreateTrialsFromSeed(base::FeatureList::GetInstance())); 322 EXPECT_TRUE(service.CreateTrialsFromSeed(base::FeatureList::GetInstance()));
321 EXPECT_EQ(base::FieldTrialList::FindFullName(kTestSeedStudyName), 323 EXPECT_EQ(base::FieldTrialList::FindFullName(kTestSeedStudyName),
322 kTestSeedExperimentName); 324 kTestSeedExperimentName);
323 } 325 }
324 326
325 TEST_F(VariationsServiceTest, CreateTrialsFromOutdatedSeed) { 327 TEST_F(VariationsServiceTest, CreateTrialsFromOutdatedSeed) {
326 TestingPrefServiceSimple prefs; 328 TestingPrefServiceSimple prefs;
327 VariationsService::RegisterPrefs(prefs.registry()); 329 VariationsService::RegisterPrefs(prefs.registry());
328 330
329 // Setup base::FeatureList. 331 // Setup base::FeatureList.
330 base::FeatureList::ClearInstanceForTesting(); 332 base::FeatureList::ClearInstanceForTesting();
331 base::FeatureList::SetInstance(make_scoped_ptr(new base::FeatureList())); 333 base::FeatureList::SetInstance(base::WrapUnique(new base::FeatureList()));
332 334
333 // Create a local base::FieldTrialList, to hold the field trials created in 335 // Create a local base::FieldTrialList, to hold the field trials created in
334 // this test. 336 // this test.
335 base::FieldTrialList field_trial_list(nullptr); 337 base::FieldTrialList field_trial_list(nullptr);
336 338
337 // Create a variations service. 339 // Create a variations service.
338 TestVariationsService service( 340 TestVariationsService service(
339 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 341 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
340 &prefs); 342 &prefs);
341 service.SetCreateTrialsFromSeedCalledForTesting(false); 343 service.SetCreateTrialsFromSeedCalledForTesting(false);
342 344
343 // Store a seed, with a fetch time 31 days in the past. 345 // Store a seed, with a fetch time 31 days in the past.
344 const base::Time seed_date = 346 const base::Time seed_date =
345 base::Time::Now() - base::TimeDelta::FromDays(31); 347 base::Time::Now() - base::TimeDelta::FromDays(31);
346 service.StoreSeed(SerializeSeed(CreateTestSeed()), std::string(), 348 service.StoreSeed(SerializeSeed(CreateTestSeed()), std::string(),
347 std::string(), seed_date, false, false); 349 std::string(), seed_date, false, false);
348 prefs.SetInt64(prefs::kVariationsLastFetchTime, seed_date.ToInternalValue()); 350 prefs.SetInt64(prefs::kVariationsLastFetchTime, seed_date.ToInternalValue());
349 351
350 // Check that field trials are not created from the seed. 352 // Check that field trials are not created from the seed.
351 EXPECT_FALSE(service.CreateTrialsFromSeed(base::FeatureList::GetInstance())); 353 EXPECT_FALSE(service.CreateTrialsFromSeed(base::FeatureList::GetInstance()));
352 EXPECT_TRUE(base::FieldTrialList::FindFullName(kTestSeedStudyName).empty()); 354 EXPECT_TRUE(base::FieldTrialList::FindFullName(kTestSeedStudyName).empty());
353 } 355 }
354 356
355 TEST_F(VariationsServiceTest, GetVariationsServerURL) { 357 TEST_F(VariationsServiceTest, GetVariationsServerURL) {
356 TestingPrefServiceSimple prefs; 358 TestingPrefServiceSimple prefs;
357 VariationsService::RegisterPrefs(prefs.registry()); 359 VariationsService::RegisterPrefs(prefs.registry());
358 const std::string default_variations_url = 360 const std::string default_variations_url =
359 VariationsService::GetDefaultVariationsServerURLForTesting(); 361 VariationsService::GetDefaultVariationsServerURLForTesting();
360 362
361 std::string value; 363 std::string value;
362 scoped_ptr<TestVariationsServiceClient> client = 364 std::unique_ptr<TestVariationsServiceClient> client =
danakj 2016/04/25 18:32:58 include memory?
dcheng 2016/04/25 19:55:06 Done.
363 make_scoped_ptr(new TestVariationsServiceClient()); 365 base::WrapUnique(new TestVariationsServiceClient());
364 TestVariationsServiceClient* raw_client = client.get(); 366 TestVariationsServiceClient* raw_client = client.get();
365 VariationsService service( 367 VariationsService service(
366 std::move(client), 368 std::move(client),
367 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 369 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
368 &prefs, NULL, UIStringOverrider()); 370 &prefs, NULL, UIStringOverrider());
369 GURL url = service.GetVariationsServerURL(&prefs, std::string()); 371 GURL url = service.GetVariationsServerURL(&prefs, std::string());
370 EXPECT_TRUE(base::StartsWith(url.spec(), default_variations_url, 372 EXPECT_TRUE(base::StartsWith(url.spec(), default_variations_url,
371 base::CompareCase::SENSITIVE)); 373 base::CompareCase::SENSITIVE));
372 EXPECT_FALSE(net::GetValueForKeyInQuery(url, "restrict", &value)); 374 EXPECT_FALSE(net::GetValueForKeyInQuery(url, "restrict", &value));
373 375
374 prefs.SetString(prefs::kVariationsRestrictParameter, "restricted"); 376 prefs.SetString(prefs::kVariationsRestrictParameter, "restricted");
375 url = service.GetVariationsServerURL(&prefs, std::string()); 377 url = service.GetVariationsServerURL(&prefs, std::string());
376 EXPECT_TRUE(base::StartsWith(url.spec(), default_variations_url, 378 EXPECT_TRUE(base::StartsWith(url.spec(), default_variations_url,
377 base::CompareCase::SENSITIVE)); 379 base::CompareCase::SENSITIVE));
(...skipping 14 matching lines...) Expand all
392 EXPECT_TRUE(base::StartsWith(url.spec(), default_variations_url, 394 EXPECT_TRUE(base::StartsWith(url.spec(), default_variations_url,
393 base::CompareCase::SENSITIVE)); 395 base::CompareCase::SENSITIVE));
394 EXPECT_TRUE(net::GetValueForKeyInQuery(url, "restrict", &value)); 396 EXPECT_TRUE(net::GetValueForKeyInQuery(url, "restrict", &value));
395 EXPECT_EQ("override", value); 397 EXPECT_EQ("override", value);
396 } 398 }
397 399
398 TEST_F(VariationsServiceTest, VariationsURLHasOSNameParam) { 400 TEST_F(VariationsServiceTest, VariationsURLHasOSNameParam) {
399 TestingPrefServiceSimple prefs; 401 TestingPrefServiceSimple prefs;
400 VariationsService::RegisterPrefs(prefs.registry()); 402 VariationsService::RegisterPrefs(prefs.registry());
401 TestVariationsService service( 403 TestVariationsService service(
402 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 404 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
403 &prefs); 405 &prefs);
404 const GURL url = service.GetVariationsServerURL(&prefs, std::string()); 406 const GURL url = service.GetVariationsServerURL(&prefs, std::string());
405 407
406 std::string value; 408 std::string value;
407 EXPECT_TRUE(net::GetValueForKeyInQuery(url, "osname", &value)); 409 EXPECT_TRUE(net::GetValueForKeyInQuery(url, "osname", &value));
408 EXPECT_FALSE(value.empty()); 410 EXPECT_FALSE(value.empty());
409 } 411 }
410 412
411 TEST_F(VariationsServiceTest, RequestsInitiallyNotAllowed) { 413 TEST_F(VariationsServiceTest, RequestsInitiallyNotAllowed) {
412 TestingPrefServiceSimple prefs; 414 TestingPrefServiceSimple prefs;
413 VariationsService::RegisterPrefs(prefs.registry()); 415 VariationsService::RegisterPrefs(prefs.registry());
414 416
415 // Pass ownership to TestVariationsService, but keep a weak pointer to 417 // Pass ownership to TestVariationsService, but keep a weak pointer to
416 // manipulate it for this test. 418 // manipulate it for this test.
417 scoped_ptr<web_resource::TestRequestAllowedNotifier> test_notifier = 419 std::unique_ptr<web_resource::TestRequestAllowedNotifier> test_notifier =
418 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)); 420 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs));
419 web_resource::TestRequestAllowedNotifier* raw_notifier = test_notifier.get(); 421 web_resource::TestRequestAllowedNotifier* raw_notifier = test_notifier.get();
420 TestVariationsService test_service(std::move(test_notifier), &prefs); 422 TestVariationsService test_service(std::move(test_notifier), &prefs);
421 423
422 // Force the notifier to initially disallow requests. 424 // Force the notifier to initially disallow requests.
423 raw_notifier->SetRequestsAllowedOverride(false); 425 raw_notifier->SetRequestsAllowedOverride(false);
424 test_service.StartRepeatedVariationsSeedFetch(); 426 test_service.StartRepeatedVariationsSeedFetch();
425 EXPECT_FALSE(test_service.fetch_attempted()); 427 EXPECT_FALSE(test_service.fetch_attempted());
426 428
427 raw_notifier->NotifyObserver(); 429 raw_notifier->NotifyObserver();
428 EXPECT_TRUE(test_service.fetch_attempted()); 430 EXPECT_TRUE(test_service.fetch_attempted());
429 } 431 }
430 432
431 TEST_F(VariationsServiceTest, RequestsInitiallyAllowed) { 433 TEST_F(VariationsServiceTest, RequestsInitiallyAllowed) {
432 TestingPrefServiceSimple prefs; 434 TestingPrefServiceSimple prefs;
433 VariationsService::RegisterPrefs(prefs.registry()); 435 VariationsService::RegisterPrefs(prefs.registry());
434 436
435 // Pass ownership to TestVariationsService, but keep a weak pointer to 437 // Pass ownership to TestVariationsService, but keep a weak pointer to
436 // manipulate it for this test. 438 // manipulate it for this test.
437 scoped_ptr<web_resource::TestRequestAllowedNotifier> test_notifier = 439 std::unique_ptr<web_resource::TestRequestAllowedNotifier> test_notifier =
438 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)); 440 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs));
439 web_resource::TestRequestAllowedNotifier* raw_notifier = test_notifier.get(); 441 web_resource::TestRequestAllowedNotifier* raw_notifier = test_notifier.get();
440 TestVariationsService test_service(std::move(test_notifier), &prefs); 442 TestVariationsService test_service(std::move(test_notifier), &prefs);
441 443
442 raw_notifier->SetRequestsAllowedOverride(true); 444 raw_notifier->SetRequestsAllowedOverride(true);
443 test_service.StartRepeatedVariationsSeedFetch(); 445 test_service.StartRepeatedVariationsSeedFetch();
444 EXPECT_TRUE(test_service.fetch_attempted()); 446 EXPECT_TRUE(test_service.fetch_attempted());
445 } 447 }
446 448
447 TEST_F(VariationsServiceTest, SeedStoredWhenOKStatus) { 449 TEST_F(VariationsServiceTest, SeedStoredWhenOKStatus) {
448 TestingPrefServiceSimple prefs; 450 TestingPrefServiceSimple prefs;
449 VariationsService::RegisterPrefs(prefs.registry()); 451 VariationsService::RegisterPrefs(prefs.registry());
450 452
451 TestVariationsService service( 453 TestVariationsService service(
452 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 454 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
453 &prefs); 455 &prefs);
454 service.set_intercepts_fetch(false); 456 service.set_intercepts_fetch(false);
455 457
456 net::TestURLFetcherFactory factory; 458 net::TestURLFetcherFactory factory;
457 service.DoActualFetch(); 459 service.DoActualFetch();
458 460
459 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 461 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
460 SimulateServerResponse(net::HTTP_OK, fetcher); 462 SimulateServerResponse(net::HTTP_OK, fetcher);
461 fetcher->SetResponseString(SerializeSeed(CreateTestSeed())); 463 fetcher->SetResponseString(SerializeSeed(CreateTestSeed()));
462 464
463 EXPECT_FALSE(service.seed_stored()); 465 EXPECT_FALSE(service.seed_stored());
464 service.OnURLFetchComplete(fetcher); 466 service.OnURLFetchComplete(fetcher);
465 EXPECT_TRUE(service.seed_stored()); 467 EXPECT_TRUE(service.seed_stored());
466 } 468 }
467 469
468 TEST_F(VariationsServiceTest, SeedNotStoredWhenNonOKStatus) { 470 TEST_F(VariationsServiceTest, SeedNotStoredWhenNonOKStatus) {
469 const int non_ok_status_codes[] = { 471 const int non_ok_status_codes[] = {
470 net::HTTP_NO_CONTENT, 472 net::HTTP_NO_CONTENT,
471 net::HTTP_NOT_MODIFIED, 473 net::HTTP_NOT_MODIFIED,
472 net::HTTP_NOT_FOUND, 474 net::HTTP_NOT_FOUND,
473 net::HTTP_INTERNAL_SERVER_ERROR, 475 net::HTTP_INTERNAL_SERVER_ERROR,
474 net::HTTP_SERVICE_UNAVAILABLE, 476 net::HTTP_SERVICE_UNAVAILABLE,
475 }; 477 };
476 478
477 TestingPrefServiceSimple prefs; 479 TestingPrefServiceSimple prefs;
478 VariationsService::RegisterPrefs(prefs.registry()); 480 VariationsService::RegisterPrefs(prefs.registry());
479 481
480 TestVariationsService service( 482 TestVariationsService service(
481 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 483 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
482 &prefs); 484 &prefs);
483 service.set_intercepts_fetch(false); 485 service.set_intercepts_fetch(false);
484 for (size_t i = 0; i < arraysize(non_ok_status_codes); ++i) { 486 for (size_t i = 0; i < arraysize(non_ok_status_codes); ++i) {
485 net::TestURLFetcherFactory factory; 487 net::TestURLFetcherFactory factory;
486 service.DoActualFetch(); 488 service.DoActualFetch();
487 EXPECT_TRUE(prefs.FindPreference(prefs::kVariationsSeed)->IsDefaultValue()); 489 EXPECT_TRUE(prefs.FindPreference(prefs::kVariationsSeed)->IsDefaultValue());
488 490
489 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 491 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
490 SimulateServerResponse(non_ok_status_codes[i], fetcher); 492 SimulateServerResponse(non_ok_status_codes[i], fetcher);
491 service.OnURLFetchComplete(fetcher); 493 service.OnURLFetchComplete(fetcher);
492 494
493 EXPECT_TRUE(prefs.FindPreference(prefs::kVariationsSeed)->IsDefaultValue()); 495 EXPECT_TRUE(prefs.FindPreference(prefs::kVariationsSeed)->IsDefaultValue());
494 } 496 }
495 } 497 }
496 498
497 TEST_F(VariationsServiceTest, RequestGzipCompressedSeed) { 499 TEST_F(VariationsServiceTest, RequestGzipCompressedSeed) {
498 TestingPrefServiceSimple prefs; 500 TestingPrefServiceSimple prefs;
499 VariationsService::RegisterPrefs(prefs.registry()); 501 VariationsService::RegisterPrefs(prefs.registry());
500 net::TestURLFetcherFactory factory; 502 net::TestURLFetcherFactory factory;
501 503
502 TestVariationsService service( 504 TestVariationsService service(
503 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 505 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
504 &prefs); 506 &prefs);
505 service.set_intercepts_fetch(false); 507 service.set_intercepts_fetch(false);
506 service.DoActualFetch(); 508 service.DoActualFetch();
507 509
508 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 510 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
509 net::HttpRequestHeaders headers; 511 net::HttpRequestHeaders headers;
510 fetcher->GetExtraRequestHeaders(&headers); 512 fetcher->GetExtraRequestHeaders(&headers);
511 std::string field; 513 std::string field;
512 ASSERT_TRUE(headers.GetHeader("A-IM", &field)); 514 ASSERT_TRUE(headers.GetHeader("A-IM", &field));
513 EXPECT_EQ("gzip", field); 515 EXPECT_EQ("gzip", field);
(...skipping 15 matching lines...) Expand all
529 {"IM:deflate,x-bm,gzip", false, false, false}, 531 {"IM:deflate,x-bm,gzip", false, false, false},
530 }; 532 };
531 533
532 TestingPrefServiceSimple prefs; 534 TestingPrefServiceSimple prefs;
533 VariationsService::RegisterPrefs(prefs.registry()); 535 VariationsService::RegisterPrefs(prefs.registry());
534 std::string serialized_seed = SerializeSeed(CreateTestSeed()); 536 std::string serialized_seed = SerializeSeed(CreateTestSeed());
535 net::TestURLFetcherFactory factory; 537 net::TestURLFetcherFactory factory;
536 538
537 for (size_t i = 0; i < arraysize(cases); ++i) { 539 for (size_t i = 0; i < arraysize(cases); ++i) {
538 TestVariationsService service( 540 TestVariationsService service(
539 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 541 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
540 &prefs); 542 &prefs);
541 service.set_intercepts_fetch(false); 543 service.set_intercepts_fetch(false);
542 service.DoActualFetch(); 544 service.DoActualFetch();
543 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 545 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
544 546
545 if (cases[i].im.empty()) 547 if (cases[i].im.empty())
546 SimulateServerResponse(net::HTTP_OK, fetcher); 548 SimulateServerResponse(net::HTTP_OK, fetcher);
547 else 549 else
548 SimulateServerResponseWithHeader(net::HTTP_OK, fetcher, &cases[i].im); 550 SimulateServerResponseWithHeader(net::HTTP_OK, fetcher, &cases[i].im);
549 fetcher->SetResponseString(serialized_seed); 551 fetcher->SetResponseString(serialized_seed);
550 service.OnURLFetchComplete(fetcher); 552 service.OnURLFetchComplete(fetcher);
551 553
552 EXPECT_EQ(cases[i].seed_stored, service.seed_stored()); 554 EXPECT_EQ(cases[i].seed_stored, service.seed_stored());
553 EXPECT_EQ(cases[i].delta_compressed, service.delta_compressed_seed()); 555 EXPECT_EQ(cases[i].delta_compressed, service.delta_compressed_seed());
554 EXPECT_EQ(cases[i].gzip_compressed, service.gzip_compressed_seed()); 556 EXPECT_EQ(cases[i].gzip_compressed, service.gzip_compressed_seed());
555 } 557 }
556 } 558 }
557 559
558 TEST_F(VariationsServiceTest, CountryHeader) { 560 TEST_F(VariationsServiceTest, CountryHeader) {
559 TestingPrefServiceSimple prefs; 561 TestingPrefServiceSimple prefs;
560 VariationsService::RegisterPrefs(prefs.registry()); 562 VariationsService::RegisterPrefs(prefs.registry());
561 563
562 TestVariationsService service( 564 TestVariationsService service(
563 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 565 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
564 &prefs); 566 &prefs);
565 service.set_intercepts_fetch(false); 567 service.set_intercepts_fetch(false);
566 568
567 net::TestURLFetcherFactory factory; 569 net::TestURLFetcherFactory factory;
568 service.DoActualFetch(); 570 service.DoActualFetch();
569 571
570 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); 572 net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
571 scoped_refptr<net::HttpResponseHeaders> headers = 573 scoped_refptr<net::HttpResponseHeaders> headers =
572 SimulateServerResponse(net::HTTP_OK, fetcher); 574 SimulateServerResponse(net::HTTP_OK, fetcher);
573 headers->AddHeader("X-Country: test"); 575 headers->AddHeader("X-Country: test");
574 fetcher->SetResponseString(SerializeSeed(CreateTestSeed())); 576 fetcher->SetResponseString(SerializeSeed(CreateTestSeed()));
575 577
576 EXPECT_FALSE(service.seed_stored()); 578 EXPECT_FALSE(service.seed_stored());
577 service.OnURLFetchComplete(fetcher); 579 service.OnURLFetchComplete(fetcher);
578 EXPECT_TRUE(service.seed_stored()); 580 EXPECT_TRUE(service.seed_stored());
579 EXPECT_EQ("test", service.stored_country()); 581 EXPECT_EQ("test", service.stored_country());
580 } 582 }
581 583
582 TEST_F(VariationsServiceTest, Observer) { 584 TEST_F(VariationsServiceTest, Observer) {
583 TestingPrefServiceSimple prefs; 585 TestingPrefServiceSimple prefs;
584 VariationsService::RegisterPrefs(prefs.registry()); 586 VariationsService::RegisterPrefs(prefs.registry());
585 VariationsService service( 587 VariationsService service(
586 make_scoped_ptr(new TestVariationsServiceClient()), 588 base::WrapUnique(new TestVariationsServiceClient()),
587 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 589 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
588 &prefs, NULL, UIStringOverrider()); 590 &prefs, NULL, UIStringOverrider());
589 591
590 struct { 592 struct {
591 int normal_count; 593 int normal_count;
592 int best_effort_count; 594 int best_effort_count;
593 int critical_count; 595 int critical_count;
594 int expected_best_effort_notifications; 596 int expected_best_effort_notifications;
595 int expected_crtical_notifications; 597 int expected_crtical_notifications;
596 } cases[] = { 598 } cases[] = {
597 {0, 0, 0, 0, 0}, 599 {0, 0, 0, 0, 0},
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 {"badversion,ca", "20.0.0.0", "us", "20.0.0.0,us", "us", 678 {"badversion,ca", "20.0.0.0", "us", "20.0.0.0,us", "us",
677 VariationsService::LOAD_COUNTRY_INVALID_PREF_HAS_SEED}, 679 VariationsService::LOAD_COUNTRY_INVALID_PREF_HAS_SEED},
678 {"badversion,ca", "20.0.0.0", nullptr, "", "", 680 {"badversion,ca", "20.0.0.0", nullptr, "", "",
679 VariationsService::LOAD_COUNTRY_INVALID_PREF_NO_SEED}, 681 VariationsService::LOAD_COUNTRY_INVALID_PREF_NO_SEED},
680 }; 682 };
681 683
682 for (const auto& test : test_cases) { 684 for (const auto& test : test_cases) {
683 TestingPrefServiceSimple prefs; 685 TestingPrefServiceSimple prefs;
684 VariationsService::RegisterPrefs(prefs.registry()); 686 VariationsService::RegisterPrefs(prefs.registry());
685 VariationsService service( 687 VariationsService service(
686 make_scoped_ptr(new TestVariationsServiceClient()), 688 base::WrapUnique(new TestVariationsServiceClient()),
687 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 689 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
688 &prefs, NULL, UIStringOverrider()); 690 &prefs, NULL, UIStringOverrider());
689 691
690 if (test.pref_value_before) { 692 if (test.pref_value_before) {
691 base::ListValue list_value; 693 base::ListValue list_value;
692 for (const std::string& component : 694 for (const std::string& component :
693 base::SplitString(test.pref_value_before, ",", base::TRIM_WHITESPACE, 695 base::SplitString(test.pref_value_before, ",", base::TRIM_WHITESPACE,
694 base::SPLIT_WANT_ALL)) { 696 base::SPLIT_WANT_ALL)) {
695 list_value.AppendString(component); 697 list_value.AppendString(component);
696 } 698 }
697 prefs.Set(prefs::kVariationsPermanentConsistencyCountry, list_value); 699 prefs.Set(prefs::kVariationsPermanentConsistencyCountry, list_value);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 {"", "ca", kPrefCa, true}, 750 {"", "ca", kPrefCa, true},
749 {"", "", "", false}, 751 {"", "", "", false},
750 {"19.0.0.0,us", "ca", kPrefCa, true}, 752 {"19.0.0.0,us", "ca", kPrefCa, true},
751 {"19.0.0.0,us", "us", "19.0.0.0,us", false}, 753 {"19.0.0.0,us", "us", "19.0.0.0,us", false},
752 }; 754 };
753 755
754 for (const auto& test : test_cases) { 756 for (const auto& test : test_cases) {
755 TestingPrefServiceSimple prefs; 757 TestingPrefServiceSimple prefs;
756 VariationsService::RegisterPrefs(prefs.registry()); 758 VariationsService::RegisterPrefs(prefs.registry());
757 TestVariationsService service( 759 TestVariationsService service(
758 make_scoped_ptr(new web_resource::TestRequestAllowedNotifier(&prefs)), 760 base::WrapUnique(new web_resource::TestRequestAllowedNotifier(&prefs)),
759 &prefs); 761 &prefs);
760 762
761 if (!test.pref_value_before.empty()) { 763 if (!test.pref_value_before.empty()) {
762 base::ListValue list_value; 764 base::ListValue list_value;
763 for (const std::string& component : 765 for (const std::string& component :
764 base::SplitString(test.pref_value_before, ",", base::TRIM_WHITESPACE, 766 base::SplitString(test.pref_value_before, ",", base::TRIM_WHITESPACE,
765 base::SPLIT_WANT_ALL)) { 767 base::SPLIT_WANT_ALL)) {
766 list_value.AppendString(component); 768 list_value.AppendString(component);
767 } 769 }
768 prefs.Set(prefs::kVariationsPermanentConsistencyCountry, list_value); 770 prefs.Set(prefs::kVariationsPermanentConsistencyCountry, list_value);
(...skipping 13 matching lines...) Expand all
782 } 784 }
783 const base::ListValue* pref_value = 785 const base::ListValue* pref_value =
784 prefs.GetList(prefs::kVariationsPermanentConsistencyCountry); 786 prefs.GetList(prefs::kVariationsPermanentConsistencyCountry);
785 EXPECT_EQ(ListValueToString(expected_list_value), 787 EXPECT_EQ(ListValueToString(expected_list_value),
786 ListValueToString(*pref_value)) 788 ListValueToString(*pref_value))
787 << test.pref_value_before << ", " << test.country_code_override; 789 << test.pref_value_before << ", " << test.country_code_override;
788 } 790 }
789 } 791 }
790 792
791 } // namespace variations 793 } // namespace variations
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698