| Index: components/variations/study_filtering_unittest.cc
|
| diff --git a/components/variations/study_filtering_unittest.cc b/components/variations/study_filtering_unittest.cc
|
| index 0c9dfa06e358860778445a887efa284da099c315..d8008cf26952d54416de820eae5180c6c402f594 100644
|
| --- a/components/variations/study_filtering_unittest.cc
|
| +++ b/components/variations/study_filtering_unittest.cc
|
| @@ -130,17 +130,27 @@ TEST(VariationsStudyFilteringTest, CheckStudyFormFactor) {
|
| TEST(VariationsStudyFilteringTest, CheckStudyLocale) {
|
| struct {
|
| const char* filter_locales;
|
| + const char* exclude_locales;
|
| bool en_us_result;
|
| bool en_ca_result;
|
| bool fr_result;
|
| } test_cases[] = {
|
| - {"en-US", true, false, false},
|
| - {"en-US,en-CA,fr", true, true, true},
|
| - {"en-US,en-CA,en-GB", true, true, false},
|
| - {"en-GB,en-CA,en-US", true, true, false},
|
| - {"ja,kr,vi", false, false, false},
|
| - {"fr-CA", false, false, false},
|
| - {"", true, true, true},
|
| + {"en-US", "", true, false, false},
|
| + // Tests that locale overrides exclude_locale, when both are given. This
|
| + // should not occur in practice though.
|
| + {"en-US", "en-US", true, false, false},
|
| + {"en-US,en-CA,fr", "", true, true, true},
|
| + {"en-US,en-CA,en-GB", "", true, true, false},
|
| + {"en-GB,en-CA,en-US", "", true, true, false},
|
| + {"ja,kr,vi", "", false, false, false},
|
| + {"fr-CA", "", false, false, false},
|
| + {"", "", true, true, true},
|
| + {"", "en-US", false, true, true},
|
| + {"", "en-US,en-CA,fr", false, false, false},
|
| + {"", "en-US,en-CA,en-GB", false, false, true},
|
| + {"", "en-GB,en-CA,en-US", false, false, true},
|
| + {"", "ja,kr,vi", true, true, true},
|
| + {"", "fr-CA", true, true, true},
|
| };
|
|
|
| for (size_t i = 0; i < arraysize(test_cases); ++i) {
|
| @@ -149,6 +159,10 @@ TEST(VariationsStudyFilteringTest, CheckStudyLocale) {
|
| test_cases[i].filter_locales, ",",
|
| base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL))
|
| filter.add_locale(locale);
|
| + for (const std::string& exclude_locale :
|
| + base::SplitString(test_cases[i].exclude_locales, ",",
|
| + base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL))
|
| + filter.add_exclude_locale(exclude_locale);
|
| EXPECT_EQ(test_cases[i].en_us_result,
|
| internal::CheckStudyLocale(filter, "en-US"));
|
| EXPECT_EQ(test_cases[i].en_ca_result,
|
|
|