| Index: chrome/browser/metrics/variations_service_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/metrics/variations_service_unittest.cc (revision 145458)
|
| +++ chrome/browser/metrics/variations_service_unittest.cc (working copy)
|
| @@ -130,6 +130,13 @@
|
| { "1.3.2", "1.2.3", false },
|
| { "2.1.2", "1.2.3", false },
|
| { "0.3.4", "1.2.3", true },
|
| + // Wildcards.
|
| + { "1.*", "1.2.3", true },
|
| + { "1.2.*", "1.2.3", true },
|
| + { "1.2.3.*", "1.2.3", true },
|
| + { "1.2.4.*", "1.2.3", false },
|
| + { "2.*", "1.2.3", false },
|
| + { "0.3.*", "1.2.3", true },
|
| };
|
|
|
| const struct {
|
| @@ -142,6 +149,15 @@
|
| { "1.2.4", "1.2.3", true },
|
| { "2.1.1", "1.2.3", true },
|
| { "2.1.1", "2.3.4", false },
|
| + // Wildcards
|
| + { "2.1.*", "2.3.4", false },
|
| + { "2.*", "2.3.4", true },
|
| + { "2.3.*", "2.3.4", true },
|
| + { "2.3.4.*", "2.3.4", true },
|
| + { "2.3.4.0.*", "2.3.4", true },
|
| + { "2.4.*", "2.3.4", true },
|
| + { "1.3.*", "2.3.4", false },
|
| + { "1.*", "2.3.4", false },
|
| };
|
|
|
| chrome_variations::Study_Filter filter;
|
| @@ -154,7 +170,7 @@
|
| const bool result =
|
| VariationsService::CheckStudyVersion(filter, min_test_cases[i].version);
|
| EXPECT_EQ(min_test_cases[i].expected_result, result) <<
|
| - "Case " << i << " failed!";
|
| + "Min. version case " << i << " failed!";
|
| }
|
| filter.clear_min_version();
|
|
|
| @@ -163,7 +179,7 @@
|
| const bool result =
|
| VariationsService::CheckStudyVersion(filter, max_test_cases[i].version);
|
| EXPECT_EQ(max_test_cases[i].expected_result, result) <<
|
| - "Case " << i << " failed!";
|
| + "Max version case " << i << " failed!";
|
| }
|
|
|
| // Check intersection semantics.
|
| @@ -189,20 +205,6 @@
|
| }
|
| }
|
|
|
| -// The current client logic does not handle version number strings containing
|
| -// wildcards. Check that any such values received from the server result in the
|
| -// study being disqualified.
|
| -TEST(VariationsServiceTest, CheckStudyVersionWildcards) {
|
| - chrome_variations::Study_Filter filter;
|
| -
|
| - filter.set_min_version("1.0.*");
|
| - EXPECT_FALSE(VariationsService::CheckStudyVersion(filter, "1.2.3"));
|
| -
|
| - filter.clear_min_version();
|
| - filter.set_max_version("2.0.*");
|
| - EXPECT_FALSE(VariationsService::CheckStudyVersion(filter, "1.2.3"));
|
| -}
|
| -
|
| TEST(VariationsServiceTest, CheckStudyStartDate) {
|
| const base::Time now = base::Time::Now();
|
| const base::TimeDelta delta = base::TimeDelta::FromHours(1);
|
| @@ -271,6 +273,34 @@
|
| EXPECT_TRUE(valid);
|
| EXPECT_EQ(300, total_probability);
|
|
|
| + // Min version checks.
|
| + study.mutable_filter()->set_min_version("1.2.3.*");
|
| + valid = VariationsService::ValidateStudyAndComputeTotalProbability(
|
| + study, &total_probability);
|
| + EXPECT_TRUE(valid);
|
| + study.mutable_filter()->set_min_version("1.*.3");
|
| + valid = VariationsService::ValidateStudyAndComputeTotalProbability(
|
| + study, &total_probability);
|
| + EXPECT_FALSE(valid);
|
| + study.mutable_filter()->set_min_version("1.2.3");
|
| + valid = VariationsService::ValidateStudyAndComputeTotalProbability(
|
| + study, &total_probability);
|
| + EXPECT_TRUE(valid);
|
| +
|
| + // Max version checks.
|
| + study.mutable_filter()->set_max_version("2.3.4.*");
|
| + valid = VariationsService::ValidateStudyAndComputeTotalProbability(
|
| + study, &total_probability);
|
| + EXPECT_TRUE(valid);
|
| + study.mutable_filter()->set_max_version("*.3");
|
| + valid = VariationsService::ValidateStudyAndComputeTotalProbability(
|
| + study, &total_probability);
|
| + EXPECT_FALSE(valid);
|
| + study.mutable_filter()->set_max_version("2.3.4");
|
| + valid = VariationsService::ValidateStudyAndComputeTotalProbability(
|
| + study, &total_probability);
|
| + EXPECT_TRUE(valid);
|
| +
|
| study.clear_default_experiment_name();
|
| valid = VariationsService::ValidateStudyAndComputeTotalProbability(study,
|
| &total_probability);
|
|
|