OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/common/variations/experiment_labels.h" | 5 #include "chrome/common/variations/experiment_labels.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/metrics/field_trial.h" | 12 #include "base/metrics/field_trial.h" |
13 #include "base/strings/string_split.h" | 13 #include "base/strings/string_split.h" |
14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
15 #include "components/variations/variations_associated_data.h" | 15 #include "components/variations/variations_associated_data.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
17 | 17 |
18 namespace chrome_variations { | 18 namespace chrome_variations { |
19 | 19 |
20 TEST(ExperimentLabelsTest, BuildGoogleUpdateExperimentLabel) { | 20 TEST(ExperimentLabelsTest, BuildGoogleUpdateExperimentLabel) { |
21 const VariationID TEST_VALUE_A = 3300200; | 21 const variations::VariationID TEST_VALUE_A = 3300200; |
22 const VariationID TEST_VALUE_B = 3300201; | 22 const variations::VariationID TEST_VALUE_B = 3300201; |
23 const VariationID TEST_VALUE_C = 3300202; | 23 const variations::VariationID TEST_VALUE_C = 3300202; |
24 const VariationID TEST_VALUE_D = 3300203; | 24 const variations::VariationID TEST_VALUE_D = 3300203; |
25 | 25 |
26 struct { | 26 struct { |
27 const char* active_group_pairs; | 27 const char* active_group_pairs; |
28 const char* expected_ids; | 28 const char* expected_ids; |
29 } test_cases[] = { | 29 } test_cases[] = { |
30 // Empty group. | 30 // Empty group. |
31 {"", ""}, | 31 {"", ""}, |
32 // Group of 1. | 32 // Group of 1. |
33 {"FieldTrialA#Default", "3300200"}, | 33 {"FieldTrialA#Default", "3300200"}, |
34 // Group of 1, doesn't have an associated ID. | 34 // Group of 1, doesn't have an associated ID. |
35 {"FieldTrialA#DoesNotExist", ""}, | 35 {"FieldTrialA#DoesNotExist", ""}, |
36 // Group of 3. | 36 // Group of 3. |
37 {"FieldTrialA#Default#FieldTrialB#Group1#FieldTrialC#Default", | 37 {"FieldTrialA#Default#FieldTrialB#Group1#FieldTrialC#Default", |
38 "3300200#3300201#3300202"}, | 38 "3300200#3300201#3300202"}, |
39 // Group of 3, one doesn't have an associated ID. | 39 // Group of 3, one doesn't have an associated ID. |
40 {"FieldTrialA#Default#FieldTrialB#DoesNotExist#FieldTrialC#Default", | 40 {"FieldTrialA#Default#FieldTrialB#DoesNotExist#FieldTrialC#Default", |
41 "3300200#3300202"}, | 41 "3300200#3300202"}, |
42 // Group of 3, all three don't have an associated ID. | 42 // Group of 3, all three don't have an associated ID. |
43 {"FieldTrialX#Default#FieldTrialB#DoesNotExist#FieldTrialC#Default", | 43 {"FieldTrialX#Default#FieldTrialB#DoesNotExist#FieldTrialC#Default", |
44 "3300202"}, | 44 "3300202"}, |
45 }; | 45 }; |
46 | 46 |
47 // Register a few VariationIDs. | 47 // Register a few VariationIDs. |
48 AssociateGoogleVariationID(GOOGLE_UPDATE_SERVICE, "FieldTrialA", "Default", | 48 AssociateGoogleVariationID(variations::GOOGLE_UPDATE_SERVICE, "FieldTrialA", |
49 TEST_VALUE_A); | 49 "Default", TEST_VALUE_A); |
50 AssociateGoogleVariationID(GOOGLE_UPDATE_SERVICE, "FieldTrialB", "Group1", | 50 AssociateGoogleVariationID(variations::GOOGLE_UPDATE_SERVICE, "FieldTrialB", |
51 TEST_VALUE_B); | 51 "Group1", TEST_VALUE_B); |
52 AssociateGoogleVariationID(GOOGLE_UPDATE_SERVICE, "FieldTrialC", "Default", | 52 AssociateGoogleVariationID(variations::GOOGLE_UPDATE_SERVICE, "FieldTrialC", |
53 TEST_VALUE_C); | 53 "Default", TEST_VALUE_C); |
54 AssociateGoogleVariationID(GOOGLE_UPDATE_SERVICE, "FieldTrialD", "Default", | 54 AssociateGoogleVariationID(variations::GOOGLE_UPDATE_SERVICE, "FieldTrialD", |
55 TEST_VALUE_D); // Not actually used. | 55 "Default", TEST_VALUE_D); // Not actually used. |
56 | 56 |
57 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 57 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { |
58 // Parse the input groups. | 58 // Parse the input groups. |
59 base::FieldTrial::ActiveGroups groups; | 59 base::FieldTrial::ActiveGroups groups; |
60 std::vector<std::string> group_data; | 60 std::vector<std::string> group_data; |
61 base::SplitString(test_cases[i].active_group_pairs, '#', &group_data); | 61 base::SplitString(test_cases[i].active_group_pairs, '#', &group_data); |
62 ASSERT_EQ(0U, group_data.size() % 2); | 62 ASSERT_EQ(0U, group_data.size() % 2); |
63 for (size_t j = 0; j < group_data.size(); j += 2) { | 63 for (size_t j = 0; j < group_data.size(); j += 2) { |
64 base::FieldTrial::ActiveGroup group; | 64 base::FieldTrial::ActiveGroup group; |
65 group.trial_name = group_data[j]; | 65 group.trial_name = group_data[j]; |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 | 184 |
185 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 185 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { |
186 std::string non_variation_labels = base::UTF16ToUTF8( | 186 std::string non_variation_labels = base::UTF16ToUTF8( |
187 ExtractNonVariationLabels( | 187 ExtractNonVariationLabels( |
188 base::ASCIIToUTF16(test_cases[i].input_label))); | 188 base::ASCIIToUTF16(test_cases[i].input_label))); |
189 EXPECT_EQ(test_cases[i].expected_output, non_variation_labels); | 189 EXPECT_EQ(test_cases[i].expected_output, non_variation_labels); |
190 } | 190 } |
191 } | 191 } |
192 | 192 |
193 } // namespace chrome_variations | 193 } // namespace chrome_variations |
OLD | NEW |