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

Side by Side Diff: components/variations/variations_associated_data_unittest.cc

Issue 1366673002: Introduce a new FieldTrialList::IsTrialActive() API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address nit. Created 5 years, 3 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 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_associated_data.h" 5 #include "components/variations/variations_associated_data.h"
6 6
7 #include "base/metrics/field_trial.h" 7 #include "base/metrics/field_trial.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace variations { 10 namespace variations {
11 11
12 namespace { 12 namespace {
13 13
14 const VariationID TEST_VALUE_A = 3300200; 14 const VariationID TEST_VALUE_A = 3300200;
15 const VariationID TEST_VALUE_B = 3300201; 15 const VariationID TEST_VALUE_B = 3300201;
16 16
17 // Convenience helper to retrieve the variations::VariationID for a FieldTrial. 17 // Convenience helper to retrieve the variations::VariationID for a FieldTrial.
18 // Note that this will do the group assignment in |trial| if not already done. 18 // Note that this will do the group assignment in |trial| if not already done.
19 VariationID GetIDForTrial(IDCollectionKey key, base::FieldTrial* trial) { 19 VariationID GetIDForTrial(IDCollectionKey key, base::FieldTrial* trial) {
20 return GetGoogleVariationID(key, trial->trial_name(), trial->group_name()); 20 return GetGoogleVariationID(key, trial->trial_name(), trial->group_name());
21 } 21 }
22 22
23 // Tests whether a field trial is active (i.e. group() has been called on it).
24 bool IsFieldTrialActive(const std::string& trial_name) {
25 base::FieldTrial::ActiveGroups active_groups;
26 base::FieldTrialList::GetActiveFieldTrialGroups(&active_groups);
27 for (size_t i = 0; i < active_groups.size(); ++i) {
28 if (active_groups[i].trial_name == trial_name)
29 return true;
30 }
31 return false;
32 }
33
34 // Call FieldTrialList::FactoryGetFieldTrial() with a future expiry date. 23 // Call FieldTrialList::FactoryGetFieldTrial() with a future expiry date.
35 scoped_refptr<base::FieldTrial> CreateFieldTrial( 24 scoped_refptr<base::FieldTrial> CreateFieldTrial(
36 const std::string& trial_name, 25 const std::string& trial_name,
37 int total_probability, 26 int total_probability,
38 const std::string& default_group_name, 27 const std::string& default_group_name,
39 int* default_group_number) { 28 int* default_group_number) {
40 return base::FieldTrialList::FactoryGetFieldTrial( 29 return base::FieldTrialList::FactoryGetFieldTrial(
41 trial_name, total_probability, default_group_name, 30 trial_name, total_probability, default_group_name,
42 base::FieldTrialList::kNoExpirationYear, 1, 1, 31 base::FieldTrialList::kNoExpirationYear, 1, 1,
43 base::FieldTrial::SESSION_RANDOMIZED, default_group_number); 32 base::FieldTrial::SESSION_RANDOMIZED, default_group_number);
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 std::map<std::string, std::string> params; 281 std::map<std::string, std::string> params;
293 params["a"] = "10"; 282 params["a"] = "10";
294 EXPECT_FALSE(AssociateVariationParams(kTrialName, "B", params)); 283 EXPECT_FALSE(AssociateVariationParams(kTrialName, "B", params));
295 EXPECT_FALSE(AssociateVariationParams(kTrialName, "A", params)); 284 EXPECT_FALSE(AssociateVariationParams(kTrialName, "A", params));
296 } 285 }
297 286
298 TEST_F(VariationsAssociatedDataTest, 287 TEST_F(VariationsAssociatedDataTest,
299 AssociateVariationParams_DoesntActivateTrial) { 288 AssociateVariationParams_DoesntActivateTrial) {
300 const std::string kTrialName = "AssociateVariationParams_DoesntActivateTrial"; 289 const std::string kTrialName = "AssociateVariationParams_DoesntActivateTrial";
301 290
302 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 291 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
303 scoped_refptr<base::FieldTrial> trial( 292 scoped_refptr<base::FieldTrial> trial(
304 CreateFieldTrial(kTrialName, 100, "A", NULL)); 293 CreateFieldTrial(kTrialName, 100, "A", NULL));
305 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 294 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
306 295
307 std::map<std::string, std::string> params; 296 std::map<std::string, std::string> params;
308 params["a"] = "10"; 297 params["a"] = "10";
309 EXPECT_TRUE(AssociateVariationParams(kTrialName, "A", params)); 298 EXPECT_TRUE(AssociateVariationParams(kTrialName, "A", params));
310 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 299 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
311 } 300 }
312 301
313 TEST_F(VariationsAssociatedDataTest, GetVariationParams_NoTrial) { 302 TEST_F(VariationsAssociatedDataTest, GetVariationParams_NoTrial) {
314 const std::string kTrialName = "GetVariationParams_NoParams"; 303 const std::string kTrialName = "GetVariationParams_NoParams";
315 304
316 std::map<std::string, std::string> params; 305 std::map<std::string, std::string> params;
317 EXPECT_FALSE(GetVariationParams(kTrialName, &params)); 306 EXPECT_FALSE(GetVariationParams(kTrialName, &params));
318 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "x")); 307 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "x"));
319 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "y")); 308 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "y"));
320 } 309 }
321 310
322 TEST_F(VariationsAssociatedDataTest, GetVariationParams_NoParams) { 311 TEST_F(VariationsAssociatedDataTest, GetVariationParams_NoParams) {
323 const std::string kTrialName = "GetVariationParams_NoParams"; 312 const std::string kTrialName = "GetVariationParams_NoParams";
324 313
325 base::FieldTrialList::CreateFieldTrial(kTrialName, "A"); 314 base::FieldTrialList::CreateFieldTrial(kTrialName, "A");
326 315
327 std::map<std::string, std::string> params; 316 std::map<std::string, std::string> params;
328 EXPECT_FALSE(GetVariationParams(kTrialName, &params)); 317 EXPECT_FALSE(GetVariationParams(kTrialName, &params));
329 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "x")); 318 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "x"));
330 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "y")); 319 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "y"));
331 } 320 }
332 321
333 TEST_F(VariationsAssociatedDataTest, GetVariationParams_ActivatesTrial) { 322 TEST_F(VariationsAssociatedDataTest, GetVariationParams_ActivatesTrial) {
334 const std::string kTrialName = "GetVariationParams_ActivatesTrial"; 323 const std::string kTrialName = "GetVariationParams_ActivatesTrial";
335 324
336 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 325 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
337 scoped_refptr<base::FieldTrial> trial( 326 scoped_refptr<base::FieldTrial> trial(
338 CreateFieldTrial(kTrialName, 100, "A", NULL)); 327 CreateFieldTrial(kTrialName, 100, "A", NULL));
339 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 328 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
340 329
341 std::map<std::string, std::string> params; 330 std::map<std::string, std::string> params;
342 EXPECT_FALSE(GetVariationParams(kTrialName, &params)); 331 EXPECT_FALSE(GetVariationParams(kTrialName, &params));
343 ASSERT_TRUE(IsFieldTrialActive(kTrialName)); 332 ASSERT_TRUE(base::FieldTrialList::IsTrialActive(kTrialName));
344 } 333 }
345 334
346 TEST_F(VariationsAssociatedDataTest, GetVariationParamValue_ActivatesTrial) { 335 TEST_F(VariationsAssociatedDataTest, GetVariationParamValue_ActivatesTrial) {
347 const std::string kTrialName = "GetVariationParamValue_ActivatesTrial"; 336 const std::string kTrialName = "GetVariationParamValue_ActivatesTrial";
348 337
349 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 338 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
350 scoped_refptr<base::FieldTrial> trial( 339 scoped_refptr<base::FieldTrial> trial(
351 CreateFieldTrial(kTrialName, 100, "A", NULL)); 340 CreateFieldTrial(kTrialName, 100, "A", NULL));
352 ASSERT_FALSE(IsFieldTrialActive(kTrialName)); 341 ASSERT_FALSE(base::FieldTrialList::IsTrialActive(kTrialName));
353 342
354 std::map<std::string, std::string> params; 343 std::map<std::string, std::string> params;
355 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "x")); 344 EXPECT_EQ(std::string(), GetVariationParamValue(kTrialName, "x"));
356 ASSERT_TRUE(IsFieldTrialActive(kTrialName)); 345 ASSERT_TRUE(base::FieldTrialList::IsTrialActive(kTrialName));
357 } 346 }
358 347
359 } // namespace variations 348 } // namespace variations
OLDNEW
« no previous file with comments | « components/variations/variations_associated_data.cc ('k') | components/variations/variations_seed_processor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698