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 3// found in the LICENSE file. 4 5#include "base/metrics/field_trial.h" 6#include "chrome/browser/extensions/api/experience_sampling_private/experience_sampling_private_api.h" 7#include "chrome/browser/extensions/extension_api_unittest.h" 8#include "chrome/browser/extensions/extension_function_test_utils.h" 9 10 11namespace utils = extension_function_test_utils; 12 13namespace extensions { 14 15typedef ExtensionApiUnittest ExperienceSamplingPrivateTest; 16 17// Tests that chrome.experienceSamplingPrivate.getBrowserInfo() returns expected 18// field trials and groups. 19TEST_F(ExperienceSamplingPrivateTest, GetBrowserInfoTest) { 20 // Start with an empty FieldTrialList. 21 scoped_ptr<base::FieldTrialList> trial_list(new base::FieldTrialList(NULL)); 22 scoped_ptr<base::DictionaryValue> result(RunFunctionAndReturnDictionary( 23 new ExperienceSamplingPrivateGetBrowserInfoFunction(), "[]")); 24 ASSERT_TRUE(result->HasKey("variations")); 25 std::string trials_string; 26 EXPECT_TRUE(result->GetStringWithoutPathExpansion("variations", 27 &trials_string)); 28 ASSERT_EQ("", trials_string); 29 30 // Set field trials using a string. 31 base::FieldTrialList::CreateTrialsFromString( 32 "Some name/Winner/xxx/yyyy/zzz/default/", 33 base::FieldTrialList::ACTIVATE_TRIALS, 34 std::set<std::string>()); 35 result = RunFunctionAndReturnDictionary( 36 new ExperienceSamplingPrivateGetBrowserInfoFunction(), "[]"); 37 ASSERT_TRUE(result->HasKey("variations")); 38 EXPECT_TRUE(result->GetStringWithoutPathExpansion("variations", 39 &trials_string)); 40 ASSERT_EQ("Some name/Winner/xxx/yyyy/zzz/default/", trials_string); 41} 42 43} // namespace extensions 44