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

Unified Diff: chrome/browser/omnibox/omnibox_field_trial_unittest.cc

Issue 20777006: Omnibox: Create Bundled Field Trial; Convert SearchHistory trial to it (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/omnibox/omnibox_field_trial.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/omnibox/omnibox_field_trial_unittest.cc
diff --git a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
index b40be13d9daaf55a1113e9a5c48a5d698b48c121..9ccb00f2fd4c6f03dbff947e78e97d4133687fa2 100644
--- a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
+++ b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
@@ -8,6 +8,7 @@
#include "base/metrics/field_trial.h"
#include "base/strings/string16.h"
#include "chrome/common/metrics/entropy_provider.h"
+#include "chrome/common/metrics/variations/variations_util.h"
#include "testing/gtest/include/gtest/gtest.h"
class OmniboxFieldTrialTest : public testing::Test {
@@ -129,3 +130,74 @@ TEST_F(OmniboxFieldTrialTest, ZeroSuggestFieldTrial) {
EXPECT_TRUE(OmniboxFieldTrial::InZeroSuggestFieldTrial());
}
}
+
+TEST_F(OmniboxFieldTrialTest, GetValueForRuleInContext) {
+ // Must be the same as kBundledExperimentFieldTrialName
+ // defined in omnibox_field_trial.cc.
+ const std::string kTrialName = "OmniboxBundledExperimentV1";
+ {
+ std::map<std::string, std::string> params;
+ // Rule 1 has some exact matches and a global fallback.
+ params["rule1:1"] = "rule1-1-value"; // NEW_TAB_PAGE
+ params["rule1:3"] = "rule1-3-value"; // HOMEPAGE
+ params["rule1:*"] = "rule1-*-value"; // global
+ // Rule 2 has no exact matches but has a global fallback.
+ params["rule2:*"] = "rule2-*-value"; // global
+ // Rule 3 has an exact match but no global fallback.
+ params["rule3:4"] = "rule3-4-value"; // OTHER
+ // Add a malformed rule to make sure it doesn't screw things up.
+ params["unrecognized"] = "unrecognized-value";
+ ASSERT_TRUE(chrome_variations::AssociateVariationParams(
+ kTrialName, "A", params));
+ }
+
+ base::FieldTrialList::CreateFieldTrial(kTrialName, "A");
+
+ // Tests for rule 1.
+ EXPECT_EQ(
+ "rule1-1-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::NEW_TAB_PAGE)); // exact match
+ EXPECT_EQ(
+ "rule1-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::BLANK)); // fallback to global
+ EXPECT_EQ(
+ "rule1-3-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::HOMEPAGE)); // exact match
+ EXPECT_EQ(
+ "rule1-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::OTHER)); // fallback to global
+
+ // Tests for rule 2.
+ EXPECT_EQ(
+ "rule2-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule2", AutocompleteInput::HOMEPAGE)); // fallback to global
+ EXPECT_EQ(
+ "rule2-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule2", AutocompleteInput::OTHER)); // fallback to global
+
+ // Tests for rule 3.
+ EXPECT_EQ(
+ "",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::BLANK)); // no global fallback
+ EXPECT_EQ(
+ "",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::HOMEPAGE)); // no global fallback
+ EXPECT_EQ(
+ "rule3-4-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::OTHER)); // exact match
+
+ // Tests for rule 4 (a missing rule).
+ EXPECT_EQ(
+ "",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule4", AutocompleteInput::OTHER)); // no rule at all
+}
« no previous file with comments | « chrome/browser/omnibox/omnibox_field_trial.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698