OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "components/variations/variations_seed_processor.h" | 5 #include "components/variations/variations_seed_processor.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/strings/string_split.h" | 10 #include "base/strings/string_split.h" |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 { "1.*", "2.3.4", false }, | 392 { "1.*", "2.3.4", false }, |
393 }; | 393 }; |
394 | 394 |
395 Study_Filter filter; | 395 Study_Filter filter; |
396 | 396 |
397 // Min/max version not set should result in true. | 397 // Min/max version not set should result in true. |
398 EXPECT_TRUE(seed_processor.CheckStudyVersion(filter, base::Version("1.2.3"))); | 398 EXPECT_TRUE(seed_processor.CheckStudyVersion(filter, base::Version("1.2.3"))); |
399 | 399 |
400 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(min_test_cases); ++i) { | 400 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(min_test_cases); ++i) { |
401 filter.set_min_version(min_test_cases[i].min_version); | 401 filter.set_min_version(min_test_cases[i].min_version); |
402 const bool result = | 402 const bool result = seed_processor.CheckStudyVersion( |
403 seed_processor.CheckStudyVersion(filter, | 403 filter, base::Version(min_test_cases[i].version)); |
404 Version(min_test_cases[i].version)); | |
405 EXPECT_EQ(min_test_cases[i].expected_result, result) << | 404 EXPECT_EQ(min_test_cases[i].expected_result, result) << |
406 "Min. version case " << i << " failed!"; | 405 "Min. version case " << i << " failed!"; |
407 } | 406 } |
408 filter.clear_min_version(); | 407 filter.clear_min_version(); |
409 | 408 |
410 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(max_test_cases); ++i) { | 409 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(max_test_cases); ++i) { |
411 filter.set_max_version(max_test_cases[i].max_version); | 410 filter.set_max_version(max_test_cases[i].max_version); |
412 const bool result = | 411 const bool result = seed_processor.CheckStudyVersion( |
413 seed_processor.CheckStudyVersion(filter, | 412 filter, base::Version(max_test_cases[i].version)); |
414 Version(max_test_cases[i].version)); | |
415 EXPECT_EQ(max_test_cases[i].expected_result, result) << | 413 EXPECT_EQ(max_test_cases[i].expected_result, result) << |
416 "Max version case " << i << " failed!"; | 414 "Max version case " << i << " failed!"; |
417 } | 415 } |
418 | 416 |
419 // Check intersection semantics. | 417 // Check intersection semantics. |
420 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(min_test_cases); ++i) { | 418 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(min_test_cases); ++i) { |
421 for (size_t j = 0; j < ARRAYSIZE_UNSAFE(max_test_cases); ++j) { | 419 for (size_t j = 0; j < ARRAYSIZE_UNSAFE(max_test_cases); ++j) { |
422 filter.set_min_version(min_test_cases[i].min_version); | 420 filter.set_min_version(min_test_cases[i].min_version); |
423 filter.set_max_version(max_test_cases[j].max_version); | 421 filter.set_max_version(max_test_cases[j].max_version); |
424 | 422 |
425 if (!min_test_cases[i].expected_result) { | 423 if (!min_test_cases[i].expected_result) { |
426 const bool result = | 424 const bool result = seed_processor.CheckStudyVersion( |
427 seed_processor.CheckStudyVersion( | 425 filter, base::Version(min_test_cases[i].version)); |
428 filter, Version(min_test_cases[i].version)); | |
429 EXPECT_FALSE(result) << "Case " << i << "," << j << " failed!"; | 426 EXPECT_FALSE(result) << "Case " << i << "," << j << " failed!"; |
430 } | 427 } |
431 | 428 |
432 if (!max_test_cases[j].expected_result) { | 429 if (!max_test_cases[j].expected_result) { |
433 const bool result = | 430 const bool result = seed_processor.CheckStudyVersion( |
434 seed_processor.CheckStudyVersion( | 431 filter, base::Version(max_test_cases[j].version)); |
435 filter, Version(max_test_cases[j].version)); | |
436 EXPECT_FALSE(result) << "Case " << i << "," << j << " failed!"; | 432 EXPECT_FALSE(result) << "Case " << i << "," << j << " failed!"; |
437 } | 433 } |
438 } | 434 } |
439 } | 435 } |
440 } | 436 } |
441 | 437 |
442 TEST_F(VariationsSeedProcessorTest, FilterAndValidateStudies) { | 438 TEST_F(VariationsSeedProcessorTest, FilterAndValidateStudies) { |
443 const std::string kTrial1Name = "A"; | 439 const std::string kTrial1Name = "A"; |
444 const std::string kGroup1Name = "Group1"; | 440 const std::string kGroup1Name = "Group1"; |
445 const std::string kTrial3Name = "B"; | 441 const std::string kTrial3Name = "B"; |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
736 EXPECT_EQ("BB", base::FieldTrialList::FindFullName("B")); | 732 EXPECT_EQ("BB", base::FieldTrialList::FindFullName("B")); |
737 EXPECT_EQ("CC", base::FieldTrialList::FindFullName("C")); | 733 EXPECT_EQ("CC", base::FieldTrialList::FindFullName("C")); |
738 | 734 |
739 // Now, all studies should be active. | 735 // Now, all studies should be active. |
740 EXPECT_TRUE(IsFieldTrialActive("A")); | 736 EXPECT_TRUE(IsFieldTrialActive("A")); |
741 EXPECT_TRUE(IsFieldTrialActive("B")); | 737 EXPECT_TRUE(IsFieldTrialActive("B")); |
742 EXPECT_TRUE(IsFieldTrialActive("C")); | 738 EXPECT_TRUE(IsFieldTrialActive("C")); |
743 } | 739 } |
744 | 740 |
745 } // namespace chrome_variations | 741 } // namespace chrome_variations |
OLD | NEW |