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

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

Powered by Google App Engine
This is Rietveld 408576698